Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
با توجه به رشد روز افزون اینترنت و بزرگ شدن سیستم‌های نرم افزاری، در سال‌های اخیر علاوه بر RDBMS ها، دیتابیس‌های NoSQL محبوبیت بسیاری پیدا کرده‌اند. دیتابیس‌های NoSQL علاوه بر قدرت در پردازش حجم بسیار زیاد داده، سرعت توسعه نرم افزار را نیز افزایش می‌دهند. در ویدیویی که از طریق لینک زیر قابل دسترس می باشد مارتین فاولر به معرفی دیتابیس‌های NoSQL و بررسی انواع آن‌ها می‌پردازد.

https://www.youtube.com/watch?v=qI_g07C_Q5I

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/nsXP30e8yCn


#علیرضا_وفی (https://ow.ly/Vna930dsUGr)


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

___
سخنرانی ایلیا وکیلی در کدر کانف. در این سخنرانی ایلیا به بررسی مشکلات روابط انسانی در شرکت‌ها به زبان ساده با تاکید بر تیم‌های نرم‌افزاری پرداخته است. جالبی صحبت‌های ایلیا اینه که در هر تیم و سازمانی صادقه.

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

لینک یوتیوب:

https://www.youtube.com/watch?v=Aen42nhOdK4

لینک آپارات:

https://www.aparat.com/v/vV3ru

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/dr3W30m3P6b

#افشین_علیزاده (https://ow.ly/l7cA30m3OQ9)

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

___
#پست_مجدد این پست تا به حال بیش از ۲۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
امروزه در بسیاری از پروژه‌ها از Web Sockets استفاده می‌شود. در این نوع ارتباط در کنار ایجاد ارتباطی از سرور به کلاینت که از آن برای ارسال پیام‌ها استفاده می‌شود، ارتباطی از کلاینت به سرور نیز باز می‌شود که عموما مورد استفاده قرار نمی‌گیرد. ضمن اینکه با توجه به متفاوت بودن پروتکل Web Sockets با HTTP، بسیاری از مواردی که بر روی پروتکل HTTP تنظیم می‌کنیم (مانند CORS - Compression‌ و ...) بر روی Web Sockets اعمال نمی‌شود. Server Sent Events در قیاس با Web Sockets گزینه‌ای مناسب‌تر برای اکثریت پروژه‌ها می‌باشد که کاملا بر اساس پروتکل HTTP ایجاد شده و سربار کمتری نیز دارد. لینک زیر حاوی توضیحی نسبتا مفصل از مزایایی است که Server Sent Events می‌تواند برای پروژه شما به ارمغان آورد.

https://docs.bit-framework.com/docs/design-backgrounds/server-sent-events-or-web-sockets.html

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/2nBc30ebM8o

#یاسر_مرادی (https://ow.ly/Ph6w30ebM21)


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

___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
در وب‌سایت‌های چند صفحه‌ای برای هدر که باید در همه صفحات وجود داشته باشد چه باید کرد؟ آیا باید در هر صفحه دوباره هدر را نوشت؟ اینطور که خیلی بد است، با هر تغییر هدر باید تمام هدرهای صفحات مختلف تغییر کند...
در ui router anguler مفهومی به نام nested states , nested views وجود دارد که در آن می‌توان هدر را به عنوان مستر با کنترولر مربوط به خود در نظر گرفت و محتویات صفحه به صورت دیتیل با کنترولر مخصوص خود قرار بگیرد... به این معنی که با تغییر صفحه هدر جای خود باقی مانده و با تغییر url، فقط محتویات آن عوض می‌شود.
استفاده از این ویژگی کمک زیادی حذف کدهای اضافی از صفحات کرده و خوانایی و کارآمدی آن را بالا می‌برد.
لینک زیر توضیح کاملی از چگونگی انجام این کار است.

https://github.com/angular-ui/ui-router/wiki/Nested-States-and-Nested-Views

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/qS7V30ecsZ2

#مریم_داودی (https://ow.ly/HGkG309B7de)


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

___
#پست_مجدد این پست تا به حال بیش از ۲۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
بررسی کدها و اجزای نرم افزار از نقطه نظر معماری و طراحی، یافتن وابستگی میان اجزای کد، پیدا کردن مشکلات در کد در زمان اجرا و خواندن کدهای دیگران یکی از مسایلی بوده که همیشه برنامه نویسان و طراحان سیستم‌ها با آن روبرو هستند. یکی از قابلیت‌های پنهان و بسیار قدرتمند Visual Studio که از نسخه ۲۰۱۵ ارائه شده است Code Map می‌باشد که با Visualize کردن باعث می‌شود کارهای گفته شده به سادگی بیشتر انجام پذیرد.

https://channel9.msdn.com/Events/TechEd/Europe/2014/DEV-B346

https://docs.microsoft.com/en-us/visualstudio/modeling/use-code-maps-to-debug-your-applications

https://msdn.microsoft.com/en-us/library/dd409453.aspx

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/Kjey30edWbn

#علیرضا_وفی (https://ow.ly/Vna930dsUGr)

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

___
#پست_مجدد این پست تا به حال بیش از ۲۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
تاکنون اتصال به دستگاه‌های بلوتوث تنها از طریق native apps امکان پذیر بود. Web Bluetooth API این امکان را برای web browser ها نیز فراهم آورده است. کتابخانه‌هایی برای کار با این API‌ ها در Node‌و Angular و Polymer نیز پیاده‌سازی شده است. لینک زیر توضیحاتی در مورد این API ها و کاربری آن ارايه می‌دهد.

https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/6Gq530efr9v

#شراره_لطفی (https://ow.ly/xvC530dx8xL)

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

___
Forwarded from فلسفه دیزاین
مروری بر دیزاین‌های همه فن حریف

روز به روز به تنوع اندازه‌ای اسکرین‌هایی که باید برای آن‌ها دیزاین کنیم افزوده می‌شود. با همه‌گیر شدن تبلت‌ها، مفهوم Universal App یا به تعبیر ما اپلیکیشن‌های همه فن حریف معرفی شدند. مفهوم Universal App به اپلیکیشن‌هایی اطلاق می‌شود که هم روی تلفن‌های همراه هوشمند و هم بر روی تبلت‌ها اجرا می‌شوند و در هر کدام شکل آن دستگاه را می‌پذیرند. مثل آبی که در یک استکان کمرباریک بریزید یا در یک ماگ.

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

نویسنده مقاله امروز پس از مقدمه‌ای کوتاه درباره مهارت‌های دیزاینرها، به صورت مفصل به بررسی Design Patternهای اپلیکیشن‌های Universal پرداخته و همچنین با ارائه مثال‌هایی مفهومی، کمک می‌کند ما دیزاین‌هایی همه فن حریف خلق کنیم.

مقاله امروز را از دست ندهید:

https://uxplanet.org/what-should-designers-know-about-universal-app-8f6a544ea588

(زمان حدودی مطالعه، ۹ دقیقه)

#طراحی_محصول #ریسپانسیو #یونیورسال
@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
از مسایل مهم در هر نرم افزار وب، علاوه بر زیرساخت‌های شبکه و سیستم عامل، ایمن‌سازی نرم افزار می‌باشد. NWebSec یک کتابخانه مبتنی بر .NET می‌باشد که قابل استفاده در ASP.NET و ASP.NET Core نیز بوده و با استفاده از Security Headers و سایر روش‌ها به امنیت بیشتر نرم افزارها کمک می‌کند.

https://docs.nwebsec.com/en/latest/nwebsec/getting-started.html

https://www.dotnetnoob.com/2012/09/security-through-http-response-headers.html

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/umRg30ehqWV


#علیرضا_وفی (https://ow.ly/Vna930dsUGr)

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

___
#پست_مجدد این پست تا به حال بیش از ۲۷۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
کارایی و سرعت EntityFramework از گذشته تا به امروز از معضلاتی است که در پروژه‌ها با آن مواجه می‌شویم. همه‌ی راحتی و سرعتی که در زمان توسعه نرم افزار با استفاده از EF CodeFirst به دست می‌آوریم کمابیش برای بهبود سرعت اجرای queryهای وحشتناکی که بعضا توسط EF تولید می‌شود صرف می‌کنیم. ابزارهایی از قبیل Rhino Entity Framework Profiler و LINQ Pad در این راه یاری رسان بوده‌اند.اما ZZZ Projects راه حل بهتری ارایه داده‌اند. آن‌ها کتابخانه‌هایی روی EF ارايه داده‌اند که امکان عملیات CRUD و Merge بصورت batch با سرعت بالا را فراهم می‌آورند. همچنین امکان به روز رسانی بدون بارگزاری موجودیت‌ها از دیتابیس و ارسال چند Query بصورت batch به دیتابیس و بسیاری امکانات دیگر که در لینکهای زیر توضیحات آن آمده است.

https://www.zzzprojects.com/

https://entityframework-extensions.net/

https://entityframework-plus.net/
همچنین از دیگر محدودیت های EF Codefirst عدم امکان استفاده از SQL Function ها و Stored Procedure هایی با خروجی‌های متفاوت است. لینک زیر کتابخانه EntityFramework.Functions را معرفی می‌کند که به کمک آن با این محدودیت EF Codefirst خداحافظی می‌کنید.

https://weblogs.asp.net/Dixin/EntityFramework.Functions

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/3nz630ejcU6

#شراره_لطفی (https://ow.ly/xvC530dx8xL)

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

___
#پست_مجدد این پست تا به حال بیش از ۲۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
قانون Conways در استفاده از مایکروسرویس‌ها در معماری نرم‌افزار بسیار قانون جالبی است. این روز‌ها در بسیاری از تیم‌های نرم‌افزاری بحث استفاده یا عدم استفاده از مایکروسرویس‌ها در معماری آینده تیم مطرح است. قانون Conways به طور کلی در مورد سیستم‌ها صحبت می‌کند. این قانون می‌گوید:
«اگر تیم و یا سازمانی در حال طراحی یک سیستم است (نه لزوما سیستم اطلاعاتی) طراحی نهایی آنها احتمالا شبیه ساختار ارتباطی همان سازمان است.»

برای مثال اگر تیم برنامه‌نویسی در مکان‌های فیزیکی مختلف، مثلا شهر‌های مختلف، یا حتی زیر-تیم‌های جدا کار می‌کند احتمالا معماری نرم‌افزارشان نیز بیشتر شبیه معماری مایکروسرویس است. در مقابل اگر یک تیم بزرگ برنامه‌نویسی هستید که همه در یک تیم کار می‌کنید احتمالا نرم‌افزارتان بیشتر شبیه یک مونولیت است.

این قانون گرچه اثبات نشده، ولی به طور ضمنی می‌گوید اگر می‌خواهید سراغ مایکروسرویس بروید، باید کل تیمتان هم مایکروسرویسی شود.

https://www.thoughtworks.com/insights/blog/demystifying-conways-law

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/8byp30emn9u


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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

___
ظاهرا مایکروسافت بزرگترین شرکت اوپن سورس جهان شده؛ با آزاد کردن ۶۰هزار پتنتش

https://jadi.net/2018/10/microsoft-joined-oin/

لینوس توروالدز خالق لینوکس یکبار گفته بود که اگر روزی مایکروسافت برای لینوکس برنامه بنویسه، اون پیروز شده. حالا نه فقط مایکروسافت ادیتوری مثل vscode رو در دنیای لینوکس هم منتشر کرده و نه فقط اجازه می ده فضای لینوکسی به سیستم عامل خودش راه پیدا کنه، که این هفته اعلام کرد که عضو شبکه اختراع آزاد شده (OIN یا هر ترجمه دقیق دیگه ای که داره). این کنسرسیوم کارش اینه که پتنت‌های آزاد هر شرکت رو در اختیار بقیه شرکت‌ها بذاره در مقابل اینکه پتنت‌های بقیه شرکت‌ها هم برای این شرکت‌ها آزاد بشه.

شبکه Open Invention Network حدود ۲۶۵۰ عضو که توشن اسم‌هایی مثل گوگل، آی بی ام، ردهت و سوزه به چشم می‌خورن. مدیر عامل این شبکه اعلام کرده که «مایکروسافت هر چیزی که داره رو آورده. چه تکنولوژی قدیمی‌ترش مثل اندروید و کرنل لینوکس و اوپن استک و چه تکنولوژی‌های جدیدترش مثل LF Energy و هایپرلجر و همه قبلی‌ها و بعدی‌هاشون».

تعداد پتنت‌هایی که مایکروسافت آورده حدود ۶۰هزار تا است و خوبه یادمون باشه که درآمد مایکروسافت فقط از پتنت‌های اندروید حدود ۳.۴ میلیارد دلار در سال ۲۰۱۴ بوده. معلومه که همه شک شدن. مایکروسافت مدعی است که دچار یک تغییر فلسفی بنیادی شده و از جایی که با جامعه آزاد دوست نبوده در حرکت به سمت اون است و با این کار نشون داده که این حرکت جدی و مصممه. مدیر اجرایی مایکروسافت می‌گه که دنبال بهتر کردن وضعیت توسعه دهنده‌ها است و کاری نداره که اونها رو لینوکس کار می کنن یا ویندوز و از دات نت استفاده می کنن یا جاوا.

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