Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یک بررسی کلی از معماری .NET Core از Rick Strahl. در این مقاله به بررسی معماری کلی نسخه جدید .Net پرداخته شده‌است. در این مقاله به برنامه بلند مدتی که برای همگرا شدن با تکنولوژی‌های Xamarin وجود دارد نیز اشاره شده‌است. در این مقاله اشاره شده که پروژه‌های .Net Core و Mono به سمتی می‌روند که ممکن است بعد از مدتی انقدر شبیه هم شوند که پیدا کردن تفاوت‌هایشان سخت باشد!
همچنین در این مقاله اشاره شده است که این تکنولوژی‌ها هنوز Bleeding Edge هستند و برای پروژه‌های Big Production زود است که از این تکنولوژی‌ها استفاده شود.

https://weblog.west-wind.com/posts/2016/Jun/13/ASPNET-Core-and-NET-Core-Overview

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy



___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پروژه یا محصول؟ مدیر پروژه یا مدیر محصول؟

نمی توان گفت دلیل عدم موفقیت برخی از شرکت ها پاسخ ندادن به سوالات فوق است اما می توان ادعا کرد که دلیل عدم موفقیت،ممکن است عدم طرح شدن سوالات فوق باشد. پروژه به یک تلاش موقت برای خلق یک خروجی یکتا گفته می شود اما محصول هر موجودیتی است که شما برای برآورده کردن نیاز یا خواسته وارد بازار می کنید. مدیر پروژه مسئول برآورده کردن اهداف از پیش تعیین شده با استفاده از تیم توسعه است و مدیر محصول، مسئول برآورده شدن تمامی نیازیها مشتریان، سود اقتصادی سازمان و مزیت‌های رقابتی پایدار محصول است.

شما در حال توسعه کدام یک هستید؟ محصول یا پروژه؟

https://www.brainmates.com.au/brainrants/project-manager-vs-product-manager

#کاروان_جافی

لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027

کانال تلگرام:
@SoftwarePhilosophy



___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تایپ پیش‌فرض Entity Framework برای نوع تاریخ در دیتابیس datetime است. این تایپ توانایی نگهداری زمانهایی بیشتر از «1/1/1753» را دارد. از طرفی در زبان C# مقدار پیش‌فرض برای DateTime مقدار «1/1/0001» می‌باشد. به همین دلیل اگر یک Property از این نوع داشته باشید هنگام ذخیره در دیتابیس خطا رخ می‌دهد. برای رفع این مشکل یا باید نوع این ستون را به datetime2 تغییر دهید و یا از نوع Nullable یا «DateTime?» استفاده کنید.

لینک زیر این مشکل را به طور خلاصه و فقط در چند خط توضیح می‌دهد.

http://codemeek.blogspot.com/2013/07/resolve-entity-framework-error.html

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy



___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
نحوه آموزش یک زبان برنامه‌نویسی و یا یک تکنولوژی معمولا در محبوبیت آن نقش مهمی دارند. معمولا تکنولوژی‌ها و پلتفرم‌هایی محبوب می‌شوند که روش یادگیری آنها ساده‌تر و مستند تر باشد. سایت زیر برای یادگیری زبان C# روش جالبی را برگزیده است. در این سایت شما می‌توانید زبان برنامه‌نویسی که قبلا با آن کار می‌کرده‌اید مانند VB6 یا C++ را انتخاب کنید. محتوی آموزشی این سایت بر اساس تجربه قبلی شما تغییر می‌کند تا با بازدهی بیشتری آموزش انجام شود.

https://www.microsoft.com/net/tutorials/csharp/getting-started


#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
مصورسازی داده در واقع نمایش گرافیکی خلاصه‌ی اطلاعات به منظور ایجاد ارتباط و انتقال حسی خاص است. حتما بارها و بارها شنیده‌اید که می گویند:"یک عکس خوب بهتر از صدها جمله است."، اما زمانی بهتراست یک مطلب به صورت گرافیکی نمایش داده شود که خوب طراحی شده باشد.
مقاله زیر 20 ابزار و کتابخانه مناسب برای مصورسازی داده در صفحه وب معرفی و خلاصه ای از آن را ارائه کرده است.

http://www.creativebloq.com/web-design/top-data-visualisation-tools-9122832

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from فلسفه دیزاین
به چشمان خود اعتماد کنیم،
مروری بر تناقض‌های تراز بصری

در انتخاب مطالب «هَم دیزاین» سعی میشه که تا حد امکان خاص، ناب و هیجان‌انگیز باشن. یکی از دلایل فاصله‌های گهگاه طولانی بین مطالب، همین موضوع است.
مطلب امروز هم به نحوی با همین وسواس انتخاب شده.

بعیده که اپلیکیشن یا وب‌سایتی طراحی کرده باشید و برایتان پیش نیامده باشد که چند آیکن کنار هم چیده و با وجود اینکه اندازه همه آن‌ها را عددی یکسان در نظر گرفته‌اید، آیکون‌ها از نظر بصری هم‌اندازه دیده نشوند.
مطلب امروز این موضوع رو به چالش می‌کشه که آیا ملاک طراحی رو ویژگی‌های محاسباتی شکل‌ها قرار بدیم یا به چشمان خود اعتماد کنیم.
یکی از بارزترین مثال‌های این ناهماهنگی‌های بصری و محاسباتی، دکمه Play است. همین حالا می‌تونید امتحان کنید. یک آیکن مثلثی رو داخل یک شکل دایره‌ای قرارداده و مرکز آن‌ها رو بصورت محاسباتی روی هم منطبق کنید. آیکن نهایی اشتباه به نظر می‌رسه، درسته؟
این موضوع به قدری واضح به نظر می‌رسه که گاهی فراموش می‌کنیم درستی اون رو در طراحی‌هامون بررسی کنیم.
مطلب امروز، این تناقض رو در قالب چند بخش (تراز بصری، رنگ، ابعاد، تایپوگرافی و …) مطرح می‌کنه و برای هر بخش مثال بصری درستی ارائه می‌کنه.

به خوندن این مقاله هیجان‌انگیز دعوتتون می‌کنم.
https://blog.marvelapp.com/optical-adjustment-logic-vs-designers/

(زمان حدودی مطالعه ۱۰ دقیقه)

پ. ن.
به نظر میرسه که این مشکلِ عدم رعایت وزن بصری، در چیدمان آیکن‌های صفحه اطلاعات یک محصول، در نسخه اخیر (۱.۱.۱) اپلیکیشن iOS دیجی‌کالا هم قابل مشاهده‌ست.
آیکن قلب (افزودن به لیست مورد علاقه) بزرگتر از بقیه آیکن‌ها دیده میشه.

#تکنیک #طراحی_بصری #چالش
@HamDesign هَم دیزاین
Forwarded from Iran .Net
اجرای کد های دات نت در SQL Server

یکی از قابلیت های اعجاب آور و البته کمتر شناخته شده SQL Server آن می باشد که توانایی اجرای کد های دات نت را دارا می باشد. به این ویژگی SQL CLR گفته می شود که از نسخه SQL Server 2005 پشتیبانی می شود.
شما برای پیاده سازی منطق های پیچیده نیازی به استفاده از T-SQL نخواهید داشت تا ماحصل تلاش تان کدهای کثیف، ناخوانا، بدقیافه و طولانی T-SQL باشد. به راحتی می توانید Store Procedure، Function، Trigger و موارد متعدد دیگری را در قلب SQL Server توسط زبان پرقدرت سی شارپ اجرا کنید.
در SQL CLR می توانید از تمام کتابخانه های دات نت استفاده کنید و از آن ها برای پیاده سازی منطق خود بهره بگیرید. می توانید به راحتی ایمیل ارسال کنید، وب سرویسی را صدا بزنید، با فایل ها کار کنید، با سیستم عامل تعامل کنید، در صورت لزوم از الگوریتم های رمزنگاری استفاده کنید و غیره. با سی شارپ می توانید کدی با ساختارِ خوانا و قابل نگهداری داشته باشید و آن را به راحتی توسط Visual Studio دیباگ کنید و به راحتی کد های تان در پایگاه داده مورد نظر خود مستقر (Deploy) کنید.
مزیت SQL CLR آن می باشد که کارایی اش تفاوت بسیار جزیی با T-SQL دارد و حتی در سناریو های پیچیده دارایِ کارایی بهتری می باشد.

*برای توسعه این نوع از پروژه ها نیاز به نصب SQL Server Data Tools
می باشد.

* فعال سازی اجرای SQL CLR در SQL Server
https://msdn.microsoft.com/en-us/library/ms131048.aspx?f=255&MSPPError=-2147217396

* مزایای SQL CLR
https://msdn.microsoft.com/en-us/library/k2e1fb36%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396

* آشنایی مقدماتی
http://www.codeproject.com/Tips/841439/Create-Run-Debug-and-Deploy-SQL-CLR-Function-with

* کمی فنی تر
http://www.sqlservercentral.com/articles/Stairway+Series/119429/

و

http://www.sqlservercentral.com/articles/SQLCLR/138154/

در این زمینه نکات ریز و درشت متعددی برای یادگیری وجود دارد که حتما بر حسب نیازتان می توانید به راحتی جستجو کره و بیاموزید.

@irandotnet
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
با ظهور تکنولوژی Roslyn شما می‌توانید از زبان C# به عنوان زبان اسکریپتینگ در برنامه‌های خود استفاد کنید. این مفهوم به این معنی است که شما برای مثال قسمتی از کد سی‌شارپ مورد نیاز برنامه‌تان را از طریق یک TextBox از کاربر بگیرید و در واقع به کاربران (پیاده‌سازان نرم‌افزار) بدون نیاز به تغییر کد اجازه شخصی‌سازی کد دهید. لینک زیر که از سری لینک‌های اموزشی Josh Vatry در این زمینه است می‌تواند دید خیلی خوبی در مورد امکانات اسکریپتینگ توسط Roslyn به طراحان بدهد.

https://joshvarty.wordpress.com/2015/10/15/learn-roslyn-now-part-14-intro-to-the-noscripting-api

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
Forwarded from Iran .Net
توابعی جهت آسان سازی تبدیلات تاریخ میلادی به شمسی در SQL Server

در پست قبل توضیح دادیم که می توانیم توسط زبان سی شارپ به توسعه Function ها و Store Procedure ها در SQL Server دست بزنیم.

پروژه SQL CLR Jalali Date Utility شامل توابعی است که توسط SQL CLR توسعه داده شده اند و امکانات به نسبت خوب و البته ساده ای را جهت تبدیلات تاریخ میلادی به شمسی فراهم می کند. توضیحات کامل در مورد این پروژه در صفحه گیت هاب اش قابل رویت می باشد.

مزیت این پروژه به نسبت باقی کارهای مشابه آن است که از فرمت های مختلف جهت نمایش تاریخ ها پیشتبانی می کند و چون توسط سی شارپ توسعه داده شده است، به راحتی می توانید مطابق میل و نیاز خود آن را تغییر دهید.

https://github.com/mirsaeedi/SQLCLR-Jalali-Date-Utility

@irandotnet
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مدیریت کردن برنامه نویس ها از بسیاری جهات شبیه مدیریت کردن دیگر افراد است. آن ها می خواهند که در حل مسائل فنی و منطق برنامه به آن ها کمک شود، از سیاست های غیر ضروری سازمان دور باشند و به دغدغه های شخصی آنها توجه شود. اما مدیریت کردن آن ها به مراتب سخت تر است. در این مقاله پنج نکته درباره اداره کردن تیم های نرم افزاری که محصولات بزرگی را با موفقت ارائه کرده اند توسط یکی از بزرگان این صنعت ذکر شده است.

http://www.cio.com/article/2436015/enterprise-architecture/5-things-grady-booch-has-learned-about-complex-software-systems.html

#کاروان_جافی

لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
دیتابیس‌های NoSQL امروزه در معماری‌های نوین نرم‌افزار جایگاه ویژه‌ای پیدا کرده‌اند. در سال‌های قبل از این نوع دیتابیس‌ها فقط در پروژه‌های خاصی استفاده می‌شد ولی به مرور نقش این نوع دیتابیس‌ها با ظهورمعماری‌های نوین یا مفاهیمی مانند CQRS پر رنگ تر شده‌است. مفاهیم این دیتابیس‌ها به طور کلی با مدل فکری دیتابیس‌های رابطه‌ای یا Relational متفاوت است.

http://www.c-sharpcorner.com/article/introduction-to-no-sql-and-working-with-mongodb-part-one/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اصطلاح Full Stack Developer عبارتی است که در چند سال اخیر بسیار رایج شده‌است. این برنامه‌نویسان معمولا درک خوبی از برنامه‌نویسی، زیرساخت، طراحی و حتی فهم بیزنس‌ها دارند. چند سالی هم هست که «متخصص UX» به عنوان یک تخصص مهم در تیم‌ها جا افتاده است. مقاله زیر اصطلاح جدیدی را با عنوان Full Stack UXer را معرفی می‌کند و نشان می‌دهد که این نقش و تخصص در یک تیم چقدر می‌تواند به موفقیت کمک کند. در این مقاله تخصص‌هایی که از یک Full Stack UXer انتظار می‌رود توضیح داده شده است. در این تعریف معمولا این فرد بیشتر درگیر تخصص‌های زیادی خواهد بود که از Gamification تا حتی برنامه‌نویسی را شامل می‌شود.

مقاله زیر تجربه تعریف و استفاده از نقش توضیح داده شده است.

http://uxmag.com/articles/the-full-stack-uxer

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy



___
Forwarded from LiTuX


- معرفی ابزار برنامه سازی: ویرایشگر متن (vim)

ابزار vim در واقع یک Clone از ویرایشگر یونیکسی vi بوده و توانایی و کارایی آن فراتر از یک ویرایشگر عادی متن است.
آن در دو حالت متنی (CLI) و گرافیکی (GUI) قابل استفاده است. مانند ویرایشگر vi رابط کاربری vim بر اساس Menu و Toolbar نبوده و در حالت متنی عمل میکند. پوسته gvim رابط گرافیکی کاربری را به آن میدهد اما همچنان همه توان عملکرد آن در حالت متنی است.
همچنین در طراحی و پیاده سازی vim دستیابی به حداکثر سرعت و دقت در تایپ (از طریق حفظ گرایش انگشتان بر موضع سطر خانگی بر روی صفحه کلید) در نظر گرفته شده است.
این ابزار جهت سهولت کار کاربران در شروع بکار با آن، از طریق خط فرمان (فرمان vimtutor) دفترچه راهنمای آن را که بصورت بر خط (On-Line) نیز در دسترس می‌باشد را فراهم نموده است.
همچنین راهنمای (Help) آن از طریق خط فرمان (فرمان help:) در دسترس است.
قدرت و انعطاف عمده vim در شخصی سازی آن در ویرایشگری است. همچنین افزونه های (Plugins) بسیاری جهت افزایش دامنه کارایی آن در دسترس است.
این اسکریپتهای پیچیده در حقیقت با زبان اسکریپتی درونی vim نوشته شده‌اند. همچنین در این رابطه vim از زبانهای اسکریپتی زیر پشتیبانی می‌کند:
Perl, Python, Racket, Ruby & TCL

- سبکی و چالاکی نسبت به رقبای انحصاری که موجب کوتاه شدن زمان بالا آمدن نرم‌افزار (Startup)، ذخیره شدن فضای دیسک، کارایی (Performance) بهینه تر در زمان اجرا می‌گردد.
- پشتیبانی از Unicode
- تکمیل کننده کد
- مقایسه کننده و ترکیب کننده فایلها
- پشتیبانی کامل از Regexp پیشرفته (و البته زبان Perl)
- پشتیبانی از عملیات مربوط به فایلها از طریق پروتکلهای شبکه مانند:
SSH, FTP & HTTP
- پشتیبانی از Spell Checking
...

پوسته gvim این ابزار بر پایه کتابخانه GTK ساخته شده است.

در سیستم‌های بر پایه دبیان، در مخازن رسمی در دسترس بوده و با دستور زیر در ترمینال نصب می‌شود:

$ sudo apt install vim

#Development_Tools
#vi
#vim

👁‍🗨👁‍🗨👁‍🗨
+ @Litux (Reference applications of GNU/Linux)