Software Philosophy
3.46K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
یک مقاله جذاب از Dino Esposito یکی از معماران با تجربه نرم‌افزار که تخصصش معماری نرم‌افزارهای Large Scale و Enterprise است.
در این مقاله توضیح داده شده که چطور مفهوم IQueryable<T> و LINQ در معماری CQRS استفاده می‌شود و چگونه مفهوم Deffered Execution باعث معجزه در معماری نرم‌افزار می‌شود.


https://msdn.microsoft.com/en-us/magazine/mt683793


@SoftwarePhilosophy


___
یک پروژه برای تحلیل جهان هستی!
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکان‌ها رو با جزئیات بالا نگه می‌داره و به روز می‌شه. این مقاله نشون می‌ده که چطور اطلاعات کهکشان‌ها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیس‌ها و سخت‌افزار آنها چطور طراحی شده.

https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/


@SoftwarePhilosophy


___
یکپارچی بیشتر در تجربه کاربری استفاده از گیت در ویژوال استودیو. امکان وصل کردن ورک‌آیتم‌ها و تغییرات در برنچ‌ها. این مقاله رو بخونین تا ببینین چقدر کار کردن با گیت در ویژوال استودیو لذت بخش شده.

https://blogs.msdn.microsoft.com/visualstudioalm/2016/03/02/linking-work-items-to-git-branches-commits-and-pull-requests/



@SoftwarePhilosophy


___
امکاناتی که در Update 2 به TFS 2015 اضافه شده. به طور خلاصه، امکانات مربوط به داشبورد، امکانات مربوط به کار با گیت و یکپارچگی بیشتر با ابزارهای تست جاوا از ویژگی‌های جذاب اضافه شده در این نسخه هستند.

https://www.visualstudio.com/news/tfs2015-update2-vs


@SoftwarePhilosophy


___
در این پست توضیح داده شده که چرا استفاده از git به عنوان سورس کنترل بهتر از TFVC است. در سالهای اخیر استفاده از گیت به قدری محبوب شده‌است که حتی در TFS نیز از هر دو حالت سورس کنترل پشتیبانی می‌شود و شما می‌توانید از یک git repository به عنوان سورس کنترل در TFS استفاده کنید.

https://www.linkedin.com/pulse/why-should-you-use-git-over-tfs-has-altaiar?trk=hp-feed-article-title-share


@SoftwarePhilosophy


___
یه کتابخانه جدید که امکانات LINQ رو به TypeScript اضافه می‌کنه.

https://github.com/kutyel/linq


@SoftwarePhilosophy


___
برای افرادی که برنامه نویسی IoT علاقه دارند، Raspberry Pi 3 یک سخت افزار هیجان انگیز به حساب می‌آید. مهمترین ویژگی این مدل نسبت به مدل‌های قبلی وجود Builtin WiFi در آن می‌باشد. در این مقاله از Scott Hanselman‌ نشان داده شده که چطور با استفاده از زبان JavaScript و VS Code می‌توان روی این سخت‌افزار کد نوشت.

https://www.hanselman.com/blog/BuildingVisualStudioCodeOnARaspberryPi3.aspx


@SoftwarePhilosophy


___
در این مقاله، چند Design Pattern‌ مهم که هنگام کار با NodeJS باید از آنها استفاده کنید توضیح داده شده‌است. خواندن این مقاله از آن جهت جالب است که برخی از این الگوها بسیار کاربردی هستند و در معماری‌های جدید بسیار استفاده می‌شوند. برای مثال مفهوم Middleware، مفهومی است که در Owin‌ نیز استفاده شده و معماری asp.net core نیز بر اساس همین مفهوم بنا شده.

https://webapplog.com/node-patterns-from-callbacks-to-observer/#post-1804


@SoftwarePhilosophy


___
این مقاله جالب توضیح می‌دهد که چطور تنبلی در کد نویسی باعث می‌شود ماژول‌های بیش از حد کوچک ساخته شود. در این مقاله دو ماژول npm معرفی شده‌اند که چند خط بیشتر ندارند. برای مثال در npm یک تابع به نام isArray وجود دارد که فقط یک خط است و تا به حال ۱۸ میلیون دانلود داشته. نویسنده این مقاله توضیح داده است که چرا برنامه نویسان به این سمت رفته‌اند و توابعی به این سادگی را نیز به صورت پکیج تعریف کرده‌اند.

https://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program/


@SoftwarePhilosophy


___
اگر از Entity Framework Code First استفاده می‌کنید، یکی از ویژگی‌های قدرتمند آن Migrations است. این قابلیت کمک می‌کند تا به روز رسانی دیتابیس در هنگام ارائه نسخه جدید نرم‌افزار بسیار راحت و امن و بدون خطا صورت گیرد. پیشنهاد می‌کنم حتمن آن را یاد بگیرید تا بتوانید از قدرت آن در پروژه‌ها استفاده کنید. ولی با توجه به اینکه ذاتا ماهیت Migration مفهوم پیچیده‌ای است، قبل از شروع کار با این قابلیت به اندازه کافی مطالعه کنید. به هیچ وجه زودتر از زمانی که کاملن به آن مسلط نشده‌اید از آن را در یک پروژه عملیاتی استفاده نکنید. ولی وقتی بر آن مسلط شدید ابزاری فوق‌العاده قدرتمند خواهد بود.
مقاله که توسط کسی نوشته شده که کاملا به صورت حرفه‌ای با آن کار کرده، به طور خلاطه ۹ نکته‌ای که حتمن هنگام کار با EF Migrations باید بدانید را شرح داده.


https://elegantcode.com/2012/04/12/entity-framework-migrations-tips/



@SoftwarePhilosophy


___
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
یکی از مباحثی که همیشه در تشکیل تیم‌های نرم‌افزاری مطرح است، انتخاب زبان برنامه‌نویسی و یا تکنولوژی‌های مورد استفاده است. مقایسه محصولات موفق و نا موفق نشان می‌دهد هیچکدام از آنها صرفا با یک تکنولوژی و یا یک زبان خاص نوشته نشده‌اند. برای مثال سیستم‌های موفق زیادی وجود دارند که با Java و یا C# نوشته شده‌اند. همچنین سیستم‌های بی کیفیت زیادی نیز وجود دارد که با Java و یا C# نوشته شده‌اند. این حقیقت نشان می‌دهد دلیل موفقیت یا شکست سیستم‌ها نمی‌تواند زبان برنامه‌نویسی باشد. مقاله زیر توضیح می‌دهد که چطور طرز فکر برنامه‌نویس‌ها موفقیت و یا شکست یک سیستم را رقم می‌زند.

https://mehrandvd.me/2015/10/15/software-quality-comes-from-people-not-languages/

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


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

___
استفاده نکردن از الگوهای شناخته‌شده UX ممکن است محصول شما را با ریسک شکست مواجه کند.
مقاله زیر توضیح می‌دهد که استفاده نکردن از الگوهایی که کاربران از قبل به آنها عادت کرده‌اند چطور می‌تواند باعث خستگی کاربران شود و در نتیجه محصول شما را رها کنند.

https://uxmag.com/articles/the-price-of-not-using-ux-patterns

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


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

___
یکی از مهمترین پارامترهای یک کد خوب، نامگذاری صحیح متغییر‌ها، متدها، کلاس‌ها و سایر اجزای برنامه‌نویسی است. در هر زبان برنامه نویسی معمولا Convention هایی وجود دارد که رعایت آنها باعث می‌شود کد شما برای سایر برنامه‌نویسان آن زبان نیز خوانا باشد. اگر شما با زبان‌هایی مانند C# یا VB.NET برنامه می‌نویسید، مستند زیر استاندارد نامگذاری رعایت شده در .NET Framework را نشان می‌دهد. این مستند که به FDG یا Framework Design Guidelines معروف است، مستند استانداردی است که قبل ساخته شدن .Net Framework توسط یک تیم خبره نوشته شد و تمام تیم‌های برنامه نویسی داخل شرکت مایکروسافت موظف به رعایت آن هستند. این مستند هم به صورت کتابی به همین نام منتشر شده و هم همیشه آخرین نسخه آن از طریق لینک زیر قابل مطالعه و دسترسی است.

https://msdn.microsoft.com/en-us/library/ms229002%28v=vs.110%29.aspx

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


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


___
Forwarded from SQL Server
با سلام و عرض ادب خدمت دوستان گرامی.
پیرو مبحث Internet Of Things پیشنهاد میکنم حتما فیلم زیر رو مشاهده کنید که در Channel9 توسط مایکروسافت قرارداده شده است.
برای خودم جالب هست که چطور میشه کارهای خودمون رو با این موضوع پیوند بزنیم.به عنوان مثال ارتباط سرورها و دیتابیس ها با DBA ها یا موارد دیگر.خوشحال میشم پیشنهادات شما رو هم بشنوم . شاید بشه بعضی از ایده ها رو پیاده سازی کرد و درآمدهای قابل توجهی رو کسب کرد.


ارادتمند شما
#حمیدرضا_صادقیان
@Hamidreza_Sadeghian

https://channel9.msdn.com/Events/FutureDecoded/Future-Decoded-2015-UK/3
تجربه مدیر توسعه سیستم SimplyDesk پس از ۳ سال کار تیمی روی این محصول. اسد صفری تجربیات خود را در این پروژه در بلاگش نوشته‌است که بسیاری از آنها می‌تواند برای سایر تیم‌های نرم‌افزاری نیز مفید باشد. چالش‌های کار تیمی، ارتباط با مشتری برای فهمیدن نیاز‌های واقعی از جمله مطالب این پست است.

https://blog.scrum.ir/2016/03/report-of-an-agile-project-simplydesk/

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


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


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


https://mehrandvd.me/2015/07/16/goalkeepers-vs-leaders-2/

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


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


___
در کنفرانس BUILD 2016 امکان اجرای کامندهای Bash و باینری‌های Ubuntu Linux روی ویندوز ۱۰ نمایش داده شد. طبق مطالب گفته شده در کنفرانس که توسط Kevin Gall ارائه شد، این کامندها مستقیما روی سیستم عامل اجرا خواهد شد و ماشین مجازی (VM) در میان نخواهد بود.
کامندهای Bash ابزاری معادل Command یا PowerShell در سیستم عامل لینوکس است که بسیار قدرتمند و محبوب است. لینک توضیحات بیشتری را در مورد این قابلیت می‌دهد.

https://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx

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


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


___
مایکروسافت کیت برنامه نویسی HoloLens را منتشر کرد. همچنین کد یک برنامه به نام Galaxy Explorer که به کاربران اجازه می‌دهد به وسیله HoloLens در واقعیت مجازی در کهکشان حرکت کنند در اختیار برنامه نویسان قرار داده شده‌است. برنامه‌نویسان می‌توانند هم این کد را تغییر دهند و هم از هر قسمتی از این کد در نرم‌افزارهای خود استفاده کنند. در لینک زیر ویدئویی که برای کهکشان ساخته شده را می‌توانید ببینید.
https://www.theverge.com/2016/3/30/11319882/microsoft-hololens-shipping-build-2016

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


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


___
اگر با فریم‌ورکهای سی‌اس‌اس مانند Bootstrap و یا Foundation کار کرده‌اید، این فریم‌ورک هم حتمن برایتان جذاب است. این فریم‌ورک که از Material Design که توسط شرکت گوگل طراحی شده‌است استفاده می‌کند و به نظر پروژه جالبی می‌رسد.

https://materializecss.com/about.html

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


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


___
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.