Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
یکی از مسایلی که برنام‌ نویسان در ASP.NET MVC و یا ASP.NET Web Api با آن روبرو هستند مدیریت کدها در کنترلر می‌باشد. کدهای کنترلر ممکن است پس از مدتی پیچیده و دارای خطوط زیادی باشند. با استفاده از MediatR که یک پیاده سازی ساده از الگوی طراحی Mediator است می‌توان در کنترلرها کدهای منظم و کمی داشت.

https://blogs.msdn.microsoft.com/cdndevs/2016/01/26/simplifying-development-and-separating-concerns-with-mediatr/

https://jonhilton.net/2016/06/06/simplify-your-controllers-with-the-command-pattern-and-mediatr/


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

https://ow.ly/heDz30dQmqO

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


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

___
یکی از Design pattern های مهم Dependecy Injection است.
انگولار فریم ورک Dependency Injection مختصص به خودش را دارد که یکی از اساسی ترین قسمت‌های انگولار است.
با وجود اینکه dependency injection در انگولار بسیار مفید بوده و خیلی از پچیدگی‌ها را حذف کرده است اما محدودیت‌هایی نیز ایجاد می‌کند که البته در حالت‌های خاصی اتفاق می‌افتد.
یکی از مشکلاتی که ممکن است با آن مواجه شوید circular dependency است.
این مشکل زمانی رخ می‌دهد که برای مثال سرویس A، سرویس B را inject می‌کند درحالی که خود سرویس B، سرویس A را inject کرده است (البته اغلب بطور غیر مستقیم).
به عنوان مثال: A->B->C->A که نهایتا یک حلقه ایجاد می‌شود.
در این حالت از Injector.get انگولار استفاده می‌شود.
پیشنهاد می‌کنم لینک راهنمای انگولار در مورد dependency injection مطالعه نمایید.

https://angular.io/guide/dependency-injection-pattern

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

https://ow.ly/2dq130lQOfC

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


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

___
#پست_مجدد این پست تا به حال بیش از ۳۸۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
ویدئوی زیر، نمایشی از پروژه هوش مصنوعی گوگل به نام DeepMind است. در این پروژه به «انسان‌نما» یا متحرک فقط گفته می‌شود که از نقطه A به نقطه B برو. اینکه او چگونه حرکت کند و حالات بدن خود را چطور تنظیم کند کاملا توسط خودش انجام می‌شد. در این مدل او با آزمون و خطا یاد می‌گیرد که چطور بهتر این مسیر را طی کند. روش و مدلی که او راه می‌رود بسیار با مزه و خنده‌دار است ولی جمله‌ای که آخر این ویدئو گفته می‌شود می‌تواند خیلی ترسناک باشد:
«شاید او چیزی می‌داند که ما نمی‌دانیم!!»

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

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

https://ow.ly/e40v30dRMZU

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

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


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
یکی از دغدغه های مهم همه ی کاربران امنیت وب سایت آنها و جلوگیری از نشت اطلاعات می باشد. OWASP سالانه 10 مورد از مهمترین ریسک های نرم افزارهای تحت وب را منتشر می کند. در لینک زیر Troy Hunt به تفکیک هر کدام از این ده مورد را برای برنامه نویسان .NET شرح و مورد بررسی قرار داده است.

https://www.troyhunt.com/owasp-top-10-for-net-developers-part-1/

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

https://ow.ly/7BIV30dVvof

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


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

___
#پست_مجدد این پست تا به حال بیش از ۲۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
نرم افزاری برای آموزش امنیت به صورت واقعی! Web Goat یک پیاده سازی نرم افزار وب با آسیب پذیری‌های امنیتی برای آموزش امنیت می‌باشد که توسط OWASP توسعه داده شده است. برای مثال کاربر با انجام حمله‌ی SQL Injection بصورت واقعی به این نرم افزار و سرقت شماره کارت‌های اعتباری، با حملات نرم افزاری و نحوه‌ی عملکرد آن بیشتر آشنا می شود.

https://www.owasp.org/index.php/Category:OWASP_WebGoat.NET

https://github.com/adnanmasood/webgoat.mvc

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

https://ow.ly/2YSf30dXlC6

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


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

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

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

فروشندگی، اگر در راستای احترام به خریدار و حفظ اخلاقیات باشد، کاری بسیار جذاب و هیجان‌انگیز است.
تمام بزرگان دنیای تکونولوژی، در وهله اول فروشندگان خوبی بودند که توانسته‌اند محصول تولید شده خود را به بهترین شکل عرضه کنند.
احتمالا شما هم افراد زیادی را می‌شناسید که با ایده‌های ناب استارتاپی نه تنها نمی‌توانند محصول خود را به فروش برسانند، بلکه گاهی حتی نمی‌توانند تیم خود را حفظ کنند.
موضوع صحبت امروز بازاریابی و فروش است. وقتی شما یک صفحه Landing یا یک روند Onboarding دیزاین می‌کنید، درواقع در حال ساخت سازوکاری برای ارائه و فروش محصول خود هستیم. پس به دانستن اصول بازاریابی و فروش داریم که بصورت‌های کپی نویسی (Copywriting) یا چیدمان محتوایی صفحات در دیزاین‌های دیجیتال نمود پیدا می‌کنند.

مقاله امروز از یکی از مدیران سابق شرکت دوست‌داشتنی 37Signals است که به موضوع دیزاین بازاریابی در جهت بهبود نرخ تبدیل (Conversion Rate) می‌پردازد.
این شرکت در بازدیزاین صفحات وب‌سایت یکی از سرویس‌های خود به نام Highrise، نکات ریزی را مد نظر قراردادند که موجود بالا رفتن نرخ پیوستن کاربران به این سرویس شد.

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

https://m.signalvnoise.com/marketing-design-how-we-got-a-35-bump-in-our-conversion-rate-at-highrise-96abe6d91818

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

پ. ن.
در پُست بعدی یک دوره بسیار جذاب برای آشنایی با مبانی بازاریابی معرفی می‌کنم. خود من هم حضور دارم.
با دادن اسم کانال «فلسفه دیزاین» می‌توانید تخفیف ۲۵ درصدی بگیرید. 👇

#بازاریابی #نرخ_تبدیل #کپی_رایتینگ
@Dexign فلسفه دیزاین

___
پلتفرم Twitch یکی از استارتاپ‌های معروف و جذاب با داستانی عجیب برای برنامه‌نویسان است. هدف اولیه این استارتاپ Game Streaming است، یعنی gamer ها هنگام بازی کردن دسکتاپ خود را share می‌کنند تا follower هایشان بتوانند نحوه بازی کردن آنها را ببینند.
یکی از اتفاقات جالبی که در این پلتفرم افتاده، استفاده خاص برنامه‌نویسان است. اخیرا برنامه‌نویسانی شروع به استفاده از از این پلتفرم کرده‌اند و هنگامی که برنامه‌نویسی می‌کنند دسکتاپ خود را شیر می‌کنند و مفاهیمی را از این طریق آموزش می‌دهند.

در همین راستا ما نیز در Software Philosophy تصمیم گرفتیم رویدادهایی را در Twitch برگزار کنیم.
اولین رویداد در تاریخ ۱۳۹۷/۰۷/۱۰ (سه‌شنبه) ساعت ۷:۰۰ تا ۸:۰۰ با موضوع زیر برگزار می‌شود:
Concurrency: Parallel vs. Asynchronous


برای مشاهده این رویداد روی لینک زیر کلیک کنید و کانال ما را در twitch فالو کنید.

https://www.twitch.tv/softwarephilosophy/

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

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


___
اولین ورک‌شاپ کانال Software Philosophy روی پلتفرم Twitch سه‌شنبه ۱۳۹۷/۰۷/۱۰ ساعت ۷ تا ۸. روی این لینک کلیک کنید: https://www.twitch.tv/softwarephilosophy/

@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۲۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
مساله‌ای که ممکن است برای هر برنامه‌نویسی چالش باشد این است که کدها را چگونه و بر چه اساسی در قالب فولدرها مرتب نماید. بعنوان مثال در یک پروژه‌ی وب View ها، Controller ها و Model ها هر کدام در یک فولدر جداگانه باشند و یا بر اساس کارکرد View ، Controller و Model ها در کنار هم قرار داشته باشند. در ویدیو زیر اسکات آلن بر اساس تجربه اش به این موضوع و 51 مساله ی دیگر می پردازد.

https://www.youtube.com/watch?v=6Fi5dRVxOvc


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

https://ow.ly/b1QP30e0yvS

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


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

___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
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

___