#پست_مجدد این پست تا به حال نزدیک به ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اغلب در برنامه نویسی فرانت اند، در صفحات بیش از یک http request وجود دارد.
گاهی نتیجه یک ریکوست، بعنوان ورودی ریکوست بعدی لازم است که در این حالات باید دو ریکوست بصورت سری عمل کنند.
در برخی مواقع نیز لازم است که بعد از گرفتن نتیجه دو یا چند ریکوست، عملیات خاصی انجام شود به عبارت دیگر باید ریکوستها بصورت موازی ارسال و بعد از اینکه نتیجهی همهی ریکوستها بدست آمد، عملیات صورت گیرد.
در فریم ورک انگولار (Angular 2+) مدیریت این ریکوستهای async توسط Http service و با کمک کتابخانه RxJS انجام میشود.
مقاله زیر هر دو مورد گفته شده را با Angular 7 و RxJS 6 توضیح داده است.
https://coryrylan.com/blog/angular-multiple-http-requests-with-rxjs
#مریم_داودی (http://ow.ly/HGkG309B7de)
کانال تلگرام:
@SoftwarePhilosophy
___
گاهی نتیجه یک ریکوست، بعنوان ورودی ریکوست بعدی لازم است که در این حالات باید دو ریکوست بصورت سری عمل کنند.
در برخی مواقع نیز لازم است که بعد از گرفتن نتیجه دو یا چند ریکوست، عملیات خاصی انجام شود به عبارت دیگر باید ریکوستها بصورت موازی ارسال و بعد از اینکه نتیجهی همهی ریکوستها بدست آمد، عملیات صورت گیرد.
در فریم ورک انگولار (Angular 2+) مدیریت این ریکوستهای async توسط Http service و با کمک کتابخانه RxJS انجام میشود.
مقاله زیر هر دو مورد گفته شده را با Angular 7 و RxJS 6 توضیح داده است.
https://coryrylan.com/blog/angular-multiple-http-requests-with-rxjs
#مریم_داودی (http://ow.ly/HGkG309B7de)
کانال تلگرام:
@SoftwarePhilosophy
___
Coryrylan
Angular Multiple HTTP Requests with RxJS - Angular 17 | 16
Learn how to handle multiple http requests with the Angular Http service and the RxJS mergeMap operator.
#پست_مجدد این پست تا به حال بیش از ۴۷۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
شایعترین دلیل تخمین زمان اشتباه یک پروژه
تخمین زمان یک پروژه کار آسانی نیست، مخصوصا اگر بخواهید خیلی دقیق باشید. ولی اغلب موارد مشکل تخمین این نیست که خیلی دقیق نیست، بلکه مشکلش این است که خیلی پرت است!
یکی از شایعترین عواملی که باعث میشود تخمین زمانی یک پروژه خیلی اشتباه باشد، تفاوت قائل نشدن بین دو مفهوم خیلی مهم است: «تخمین زمان» و «تخمین کار».
«تخمین زمان» مفهومی است که مدیران پروژه دوست دارند در مورد آن صحبت کنند. وقتی صحبت میکنند دائما به دنبال شنیدن تخمین زمانی هستند. برای مثال جملهای مانند «این کار تا پنجشنبه هفته بعد انجام میشود» جملهای است که زمان انجام شدن کار را تخمین میزند.
در مقابل «تخمین کار» مفهومی است که معمولا برنامهنویسان دوست دارند در مورد آن صحبت کنند. آنها ترجیح میدهند بگویند که این کار به چقدر زمان نیاز دارد. مثلا کاری است که به ۳ روز زمان نیاز دارد. مثلا جمله «این کار به یک هفته کار نیاز دارد» به این معنی نیست که یک هفته دیگر این کار تمام میشود و صرفا حجم کار مورد نیاز بیان شده.
برای یک تخمین موفق باید این مفاهیم در جلسات کاملا واضح شوند و در مورد آنها جداگانه صحبت شود. همچنین بهتر است از هر دو طیف افراد بالا در جلسات حضور داشته باشند تا جوانب مختلف بررسی شود.
پست زیر این دو مفهوم را معرفی کرده و تفاوت آنها را در مدیریت پروژه شرح دادهاست.
http://mehrandvd.me/2017/08/02/effort-vs-time-estimation/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/958i30erVZs
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
تخمین زمان یک پروژه کار آسانی نیست، مخصوصا اگر بخواهید خیلی دقیق باشید. ولی اغلب موارد مشکل تخمین این نیست که خیلی دقیق نیست، بلکه مشکلش این است که خیلی پرت است!
یکی از شایعترین عواملی که باعث میشود تخمین زمانی یک پروژه خیلی اشتباه باشد، تفاوت قائل نشدن بین دو مفهوم خیلی مهم است: «تخمین زمان» و «تخمین کار».
«تخمین زمان» مفهومی است که مدیران پروژه دوست دارند در مورد آن صحبت کنند. وقتی صحبت میکنند دائما به دنبال شنیدن تخمین زمانی هستند. برای مثال جملهای مانند «این کار تا پنجشنبه هفته بعد انجام میشود» جملهای است که زمان انجام شدن کار را تخمین میزند.
در مقابل «تخمین کار» مفهومی است که معمولا برنامهنویسان دوست دارند در مورد آن صحبت کنند. آنها ترجیح میدهند بگویند که این کار به چقدر زمان نیاز دارد. مثلا کاری است که به ۳ روز زمان نیاز دارد. مثلا جمله «این کار به یک هفته کار نیاز دارد» به این معنی نیست که یک هفته دیگر این کار تمام میشود و صرفا حجم کار مورد نیاز بیان شده.
برای یک تخمین موفق باید این مفاهیم در جلسات کاملا واضح شوند و در مورد آنها جداگانه صحبت شود. همچنین بهتر است از هر دو طیف افراد بالا در جلسات حضور داشته باشند تا جوانب مختلف بررسی شود.
پست زیر این دو مفهوم را معرفی کرده و تفاوت آنها را در مدیریت پروژه شرح دادهاست.
http://mehrandvd.me/2017/08/02/effort-vs-time-estimation/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/958i30erVZs
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Effort vs. Time Estimation - Dot Philosophy
Estimating the required time for a task, is not an easy job to do, if you want to be precise! The main problem with estimating is that, most of the time it is wrong! Being wrong is not too bad for an estimation. But, being too wrong is a disaster for a project.…
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
سریع ترین Object Mapper دات نت
کتابخانه Mapster مشابه AutoMapper است ولی با پرفرمنس باورنکردنی و فوق سریع
این کتابخانه حتی از حالت دستی هم سریع تر است!
https://github.com/MapsterMapper/Mapster
طبق بنچمارک زیر متونین پرفرمنس این روش ها رو مقایسه کنین.
https://github.com/mjebrahimi/Benchmark.netCoreMappers
_______________
@IranAspMvc
کتابخانه Mapster مشابه AutoMapper است ولی با پرفرمنس باورنکردنی و فوق سریع
این کتابخانه حتی از حالت دستی هم سریع تر است!
https://github.com/MapsterMapper/Mapster
طبق بنچمارک زیر متونین پرفرمنس این روش ها رو مقایسه کنین.
https://github.com/mjebrahimi/Benchmark.netCoreMappers
_______________
@IranAspMvc
#پست_مجدد این پست تا به حال بیش از ۴۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
استفاده از امکانات Azure و TFS برای تیمهای برنامهنویسی بسیار جذاب است. بسیاری از مشکلاتی که در تیمهای نرمافزاری پیش میآید به علت نبود فرایندهای درست و ابزارهای مناسب است. یکی از دغدغههای تیمهای برنامهنویسی، نحوه تعامل و همکاری اعضای تیم در ساخت نیازمندیهای نرمافزار به صورت با کیفیت است. نیازها باید طوری شفاف تعریف شوند که قابل تست باشند. اصولا اگر یک نیازمندی به اندازهای واضح تعریف نشده که بتوان آن را تست کرد، احتمالا کد آن هم خیلی واضح به آن هدف نخواهد رسید!
در مقاله زیر تجربه استفاده از دو ابزار Team Foundation Server و یکپارچگی آن با سرویسهای Azure در یک پروژه عملی شرح داده شده است. در این فرایند Feature ها به عنوان زبان مشترک بین تیم فنی و بیزنس طراحی میشوند. سپس این Feature ها به Backlog Item ها شکسته میشوند. یک Backlog Item در حقیقت یک نیازمندیاست است که آنقدری کوچک شده که بتوان آن را به تنهایی تست کرد. به طوری که اگر تست تمام Backlog Item های یک Feature پاس شود، به معنی قابل تحویل بودن آن به تیم بیزنس باشد. سپس Task ها مجموعه کارهایی (فنی و غیر فنی) است که باید انجام شود تا بتوان تست یک Backlog Item را پاس کرد.
در مقاله زیر به طور خلاصه توضیح داده شدهاست که چگونه Sprint ها انجام میشوند.
http://mehrandvd.me/2017/02/24/azure-experience-handling-requirements/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/3NGm30b5IjZ
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
در مقاله زیر تجربه استفاده از دو ابزار Team Foundation Server و یکپارچگی آن با سرویسهای Azure در یک پروژه عملی شرح داده شده است. در این فرایند Feature ها به عنوان زبان مشترک بین تیم فنی و بیزنس طراحی میشوند. سپس این Feature ها به Backlog Item ها شکسته میشوند. یک Backlog Item در حقیقت یک نیازمندیاست است که آنقدری کوچک شده که بتوان آن را به تنهایی تست کرد. به طوری که اگر تست تمام Backlog Item های یک Feature پاس شود، به معنی قابل تحویل بودن آن به تیم بیزنس باشد. سپس Task ها مجموعه کارهایی (فنی و غیر فنی) است که باید انجام شود تا بتوان تست یک Backlog Item را پاس کرد.
در مقاله زیر به طور خلاصه توضیح داده شدهاست که چگونه Sprint ها انجام میشوند.
http://mehrandvd.me/2017/02/24/azure-experience-handling-requirements/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/3NGm30b5IjZ
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال نزدیک به ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
برای شروع برنامهنویسی با reactJS یکی از مشکلات اصلی برنامهنویسان (حتی حرفهای ترین آنها) طرز فکر و حل مساله به روشهای پیادهسازی شده در reactJS است. عدم تغییر این طرز فکر باعث میشود برنامهنویس در عین کار با reactJS از تمام امکانات آن استفاده نکند و فقط اسما یک برنامهنویس reactJS باشد. یکی از تفاوتهای اصلی طرز فکر reactJS با سایر زبانهای برنامهنویسی است پیادهسازی درست «ارتباط بین کامپوننتها» است.
در این مقاله به شکل شفاف و جامع ۸ روش برای ارتباط بین کامپوننتها توضیح داده شده است.
https://www.javascriptstuff.com/component-communication/#3-callback-functions
#مریم_کمالی (http://ow.ly/9Wa430mFGeK)
کانال تلگرام:
@SoftwarePhilosophy
___
در این مقاله به شکل شفاف و جامع ۸ روش برای ارتباط بین کامپوننتها توضیح داده شده است.
https://www.javascriptstuff.com/component-communication/#3-callback-functions
#مریم_کمالی (http://ow.ly/9Wa430mFGeK)
کانال تلگرام:
@SoftwarePhilosophy
___
JavaScript Stuff
8 no-Flux strategies for React component communication
Sending data between React components can seem like a pain at first. Here are some simple strategies.
این همه انواع Messaging Service روی Azure؟ چه خبره؟
اگر از سرویس Cloud مایکروسافت یا همان Microsoft Azure برای طراحی و معماری Solution های خود استفاده میکنید، روزی خواهد رسید که به یک Service Bus نیاز خواهید داشت. سرویس باس، سرویسی است که در معماری به شما کمک میکند برنامههای مختلف سیستم که نیاز دارند با هم ارتباط داشته باشند را به هم متصل کنید. معمولا اگر این اتصال از طریق database polling صورت پذیرد در مقیاس بالا بسیار هزینهبر و پیچیده میشود. به همین دلیل استفاده از «باس» بسیار پر کاربرد است.
در Azure سه نوع سرویس به این منظور تعبیه شده که هر کدام کاربردهای تخصصی خود را دارند:
- Event Grid
- Event Hub
- Service Bus
برای درک تفاوت این سرویسها ابتدا باید تفاوت مفهوم Event و Message را در Azure بدانید که در مقاله زیر توضیح داده شدهاست. اما کاربرد هر یک را میتوان به این صورت خلاصه گفت:
- Event Grid:
انتشار رویدادها و Reactive Programming، مثلا عکسالعمل نشان دادن به تغییر وضعیتها در دیتا
- Event Hub:
کار با stream های سنگین دیتا. برای کار و مدیریت میلیونها رویداد در ثانیه در Big data pipleline طراحی شده.
- Service Bus:
انتقال پیام (Message) بین سیستمهای Enterprise.
مستند زیر این مفاهیم را با جزئیات کاملتری شرح میدهد.
https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/fhwz30nWt1e
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
اگر از سرویس Cloud مایکروسافت یا همان Microsoft Azure برای طراحی و معماری Solution های خود استفاده میکنید، روزی خواهد رسید که به یک Service Bus نیاز خواهید داشت. سرویس باس، سرویسی است که در معماری به شما کمک میکند برنامههای مختلف سیستم که نیاز دارند با هم ارتباط داشته باشند را به هم متصل کنید. معمولا اگر این اتصال از طریق database polling صورت پذیرد در مقیاس بالا بسیار هزینهبر و پیچیده میشود. به همین دلیل استفاده از «باس» بسیار پر کاربرد است.
در Azure سه نوع سرویس به این منظور تعبیه شده که هر کدام کاربردهای تخصصی خود را دارند:
- Event Grid
- Event Hub
- Service Bus
برای درک تفاوت این سرویسها ابتدا باید تفاوت مفهوم Event و Message را در Azure بدانید که در مقاله زیر توضیح داده شدهاست. اما کاربرد هر یک را میتوان به این صورت خلاصه گفت:
- Event Grid:
انتشار رویدادها و Reactive Programming، مثلا عکسالعمل نشان دادن به تغییر وضعیتها در دیتا
- Event Hub:
کار با stream های سنگین دیتا. برای کار و مدیریت میلیونها رویداد در ثانیه در Big data pipleline طراحی شده.
- Service Bus:
انتقال پیام (Message) بین سیستمهای Enterprise.
مستند زیر این مفاهیم را با جزئیات کاملتری شرح میدهد.
https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/fhwz30nWt1e
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Docs
Compare Azure messaging services - Azure Service Bus
Describes the three Azure messaging services - Azure Event Grid, Event Hubs, and Service Bus. Recommends which service to use for different scenarios.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ معرفی پروژه DNTFrameworkCore
پروژه که نه بهتره بگیم یه فریمورک یا زیرساخت آماده واسه سایت هاتون هست که کلی امکانات و Best Practice رو تو خودش پیاده کرده و کارتون خیلی راحت میشه✌️
https://github.com/rabbal/DNTFrameworkCore
از امکانات این فریمورک میشه موارد زیر اشاره کرد :
🔹سبک و سریع (نکات پرفرمنسی رعایت شده)
🔸دارای معماری اصولی و توسعه پذیر
🔹پشتیبانی از طراحی چند مستاجری (Multi Tenancy)
🔸اعتبارسنجی خودکار
🔹مدیریت تراکنش ها
🔸پشتیبانی از آزمون واحد و کاملا تست پذیر
🔹و...
حتی اگه قصد استفاده ازشو ندارین، مرور و بررسی کد هاش خیلی میتونه آموزنده و مفید باشه و بهتون ایده بده
🌟 راستی یادتون نره Star هم بدین به ریپازیتوریش 😉
توضیحات بیشتر :
https://www.dotnettips.info/newsarchive/details/14242
_______________
@IranAspMvc
پروژه که نه بهتره بگیم یه فریمورک یا زیرساخت آماده واسه سایت هاتون هست که کلی امکانات و Best Practice رو تو خودش پیاده کرده و کارتون خیلی راحت میشه✌️
https://github.com/rabbal/DNTFrameworkCore
از امکانات این فریمورک میشه موارد زیر اشاره کرد :
🔹سبک و سریع (نکات پرفرمنسی رعایت شده)
🔸دارای معماری اصولی و توسعه پذیر
🔹پشتیبانی از طراحی چند مستاجری (Multi Tenancy)
🔸اعتبارسنجی خودکار
🔹مدیریت تراکنش ها
🔸پشتیبانی از آزمون واحد و کاملا تست پذیر
🔹و...
حتی اگه قصد استفاده ازشو ندارین، مرور و بررسی کد هاش خیلی میتونه آموزنده و مفید باشه و بهتون ایده بده
🌟 راستی یادتون نره Star هم بدین به ریپازیتوریش 😉
توضیحات بیشتر :
https://www.dotnettips.info/newsarchive/details/14242
_______________
@IranAspMvc
GitHub
GitHub - rabbal/DNTFrameworkCore: Lightweight and Extensible Infrastructure for Building Web Applications - Web Application Framework
Lightweight and Extensible Infrastructure for Building Web Applications - Web Application Framework - GitHub - rabbal/DNTFrameworkCore: Lightweight and Extensible Infrastructure for Building Web Ap...
Forwarded from Iran Agile
معمولا ما برای چندین سال لیستی از آیتمها رو در بکلاگ نگه میداریم، اما مبادا که یه دونه از اونا رو پاک کنیم. همین میشه که همیشه یه لیست چند صفحه ای از اقلام بک لاگ داریم که یا کسی از اون آیتم چیزی یادش نمیاد یا دیگه پیاده سازیش، دردی رو از مشتری دعوا نمیکند. آخر سالی وقت خوبی هست که این بکلاگ را حسابی تمیزکاری کنیم و حداقل نصف آن را دور بریزیم 😉
https://bit.ly/2STfrtg
@iranagile
https://bit.ly/2STfrtg
@iranagile
#پست_مجدد این پست تا به حال نزدیک به ۳۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تئوری اسب مرده!
این تئوری یکی از جذابترین تئوریهایی است که در این مدت خواندم. یک تئوری که کاربردهای وسیعی در استارتاپها، مدیریت یک تیم و حتی مدیریت یک کشور دارد. فارغ از معنی عمیق این تئوری، طنزی که در بیان این تئوری وجود دارد خیلی آن را قابل فهمتر میکند.
یک ضربالمثل قدیمی هندی میگوید: اگه دیدین سوار یه اسب مرده هستید، بهترین استراتژی اینه که پیاده شین.
در حالی که معمولا استراتژیهای پیشرفتهتری در دولتها، شرکتها، سیستمهای آموزشی و ... استفاده میشود. این استراتژیها حتما برای شما هم آشنا هستند:
- یه شلاق سنگینتر بخریم!
- سوارکار رو عوض کنیم!
- یک کمیته تشکیل بدیم تا اسب رو بررسی کنیم!
- کشورهای دیگر رو ببینیم که تو فرهنگشون چطوری با اسب مرده سوارکاری میکنن!
- استانداردهای زنده موندن رو پایین بیاریم تا این اسب هم زنده محسوب بشه!
- در طبقهبندی جدید اسبها، این اسب رو در دسته «زنده آسیبدیده» قرار بدیم!
- با افرادی قرارداد ببندیم که سوارکاری اسب رو انجام بدن!
- چند اسب مرده دیگه رو هم با هم افسار بزنیم تا سرعت بیشتر بشه!
- پول بیشتری خرج کنیم و به اسب مهارتهای لازم رو آموزش بدیم تا کاراییش بیشتر بشه!
- تحقیق کنیم ببینیم تاثیر یک سوارکار لاغرتر روی بالارفتن سرعت اسب چقدره!
- قانونی وضع کنیم که به اسبهای مرده غذا ندهیم. این از لحاظ اقتصادی بسیار به صرفه است و باعث میشه این اسبها حتی از بقیه اسبها بیشتر به نفع اقتصاد باشند!
- مستند «معیارهای کارایی اسب» رو بازنویسی کنیم که قاعدتا شامل این اسب هم میشه، تا خودش متوجه بشه!
- اسب مرده رو به یک پست مدیریتی ارتقا بدیم!
مفهومی که هنگام خواندن این ضربالمثل تداعی میشود، مفهوم Root Cause است. اغلب مشکلاتی که در اطراف ما وجود دارد دارای دلایل واضح و سطحی است که غالبا منجر به حل آن مشکل نمیشود. از طرفی، اگر تلاش کنید برای یک مشکل عمیق فکر کنید و به Root Cause آن برسید، مشکلات به طور عجیبی حل میشوند و حتی با حل یک مشکل، مشکلات دیگری نیز خود به خود حل میشوند.
در پست زیر از بلاگم در مورد این مفهوم صحبت کردم.
http://mehrandvd.me/2018/06/27/the-dead-horse-theory/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/AGJa30kQv8N
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
این تئوری یکی از جذابترین تئوریهایی است که در این مدت خواندم. یک تئوری که کاربردهای وسیعی در استارتاپها، مدیریت یک تیم و حتی مدیریت یک کشور دارد. فارغ از معنی عمیق این تئوری، طنزی که در بیان این تئوری وجود دارد خیلی آن را قابل فهمتر میکند.
یک ضربالمثل قدیمی هندی میگوید: اگه دیدین سوار یه اسب مرده هستید، بهترین استراتژی اینه که پیاده شین.
در حالی که معمولا استراتژیهای پیشرفتهتری در دولتها، شرکتها، سیستمهای آموزشی و ... استفاده میشود. این استراتژیها حتما برای شما هم آشنا هستند:
- یه شلاق سنگینتر بخریم!
- سوارکار رو عوض کنیم!
- یک کمیته تشکیل بدیم تا اسب رو بررسی کنیم!
- کشورهای دیگر رو ببینیم که تو فرهنگشون چطوری با اسب مرده سوارکاری میکنن!
- استانداردهای زنده موندن رو پایین بیاریم تا این اسب هم زنده محسوب بشه!
- در طبقهبندی جدید اسبها، این اسب رو در دسته «زنده آسیبدیده» قرار بدیم!
- با افرادی قرارداد ببندیم که سوارکاری اسب رو انجام بدن!
- چند اسب مرده دیگه رو هم با هم افسار بزنیم تا سرعت بیشتر بشه!
- پول بیشتری خرج کنیم و به اسب مهارتهای لازم رو آموزش بدیم تا کاراییش بیشتر بشه!
- تحقیق کنیم ببینیم تاثیر یک سوارکار لاغرتر روی بالارفتن سرعت اسب چقدره!
- قانونی وضع کنیم که به اسبهای مرده غذا ندهیم. این از لحاظ اقتصادی بسیار به صرفه است و باعث میشه این اسبها حتی از بقیه اسبها بیشتر به نفع اقتصاد باشند!
- مستند «معیارهای کارایی اسب» رو بازنویسی کنیم که قاعدتا شامل این اسب هم میشه، تا خودش متوجه بشه!
- اسب مرده رو به یک پست مدیریتی ارتقا بدیم!
مفهومی که هنگام خواندن این ضربالمثل تداعی میشود، مفهوم Root Cause است. اغلب مشکلاتی که در اطراف ما وجود دارد دارای دلایل واضح و سطحی است که غالبا منجر به حل آن مشکل نمیشود. از طرفی، اگر تلاش کنید برای یک مشکل عمیق فکر کنید و به Root Cause آن برسید، مشکلات به طور عجیبی حل میشوند و حتی با حل یک مشکل، مشکلات دیگری نیز خود به خود حل میشوند.
در پست زیر از بلاگم در مورد این مفهوم صحبت کردم.
http://mehrandvd.me/2018/06/27/the-dead-horse-theory/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/AGJa30kQv8N
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ خلاصهای از دورهی ASP.NET Core Fundamentals آقای اسکات آلن از سایت Pluralsight
واسه کسایی که دنبال آموزش متنی جامع ASP Core میگردن، خوبه 👌
https://github.com/SirwanAfifi/aspdotnet-core-fundamentals
لینک دانلود PDF :
https://bit.ly/2XaEhs2
_______________
@IranAspMvc
واسه کسایی که دنبال آموزش متنی جامع ASP Core میگردن، خوبه 👌
https://github.com/SirwanAfifi/aspdotnet-core-fundamentals
لینک دانلود PDF :
https://bit.ly/2XaEhs2
_______________
@IranAspMvc
#پست_مجدد این پست تا به حال نزدیک به ۸۶۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
لطفا پروسه هندل شدن یک اینونت توسط DOM را بدانید!
وقتی یک ایونت اتفاق میافتد در وهله اول از المنت ریشه به پایین مورد بررسی قرار میگیرد تا المنتی که ایونت روی آن اتفاق افتاده پیدا شود. این مرحله Capturing phase نام دارد.
در وهله دوم المنت پیدا شده به عنوان المنت target نگه داشته میشود. این مرحله Target phase نامیده میشود.
و در وهله آخر ایونت اتفاق افتاده به سمت بالا، یعنی المنتهای پدر حرکت کرده و ایونتهای مربوطه روی آنها را raise میکند که اصطلاحا به آن Bubbleing phase گفته میشود.
در مواقع لازم میتوان از event.stopPropagation و event.stopImmadiatePropagation برای جلوگیری از Bubbling phase استفاده کرد.
لینک زیر شرح کاملی از پروسه و نحوه استفاده از دو متد گفته شده را ارائه میدهد:
https://javascript.info/bubbling-and-capturing
#مریم_داودی (http://ow.ly/HGkG309B7de)
کانال تلگرام:
@SoftwarePhilosophy
___
وقتی یک ایونت اتفاق میافتد در وهله اول از المنت ریشه به پایین مورد بررسی قرار میگیرد تا المنتی که ایونت روی آن اتفاق افتاده پیدا شود. این مرحله Capturing phase نام دارد.
در وهله دوم المنت پیدا شده به عنوان المنت target نگه داشته میشود. این مرحله Target phase نامیده میشود.
و در وهله آخر ایونت اتفاق افتاده به سمت بالا، یعنی المنتهای پدر حرکت کرده و ایونتهای مربوطه روی آنها را raise میکند که اصطلاحا به آن Bubbleing phase گفته میشود.
در مواقع لازم میتوان از event.stopPropagation و event.stopImmadiatePropagation برای جلوگیری از Bubbling phase استفاده کرد.
لینک زیر شرح کاملی از پروسه و نحوه استفاده از دو متد گفته شده را ارائه میدهد:
https://javascript.info/bubbling-and-capturing
#مریم_داودی (http://ow.ly/HGkG309B7de)
کانال تلگرام:
@SoftwarePhilosophy
___
javascript.info
Bubbling and capturing
روانشناسی برای بیزنس - تحلیلی بر شخصیت من
یکی از اتفاقات جذاب امسال من، شرکت در دورهای با مضمون «روانشناسی در بیزنس» یا «روانشناسی برای بیزنس» بود که توسط «مدرسه بازاریابی برگزار شد.
تو این دوره با یه رویکرد جالب، مفاهیم روانشناسی، تیپها و اختلالهای مختلف آموزش داده میشدن و نکته جالب این بود که آموزش با تمرکز بر بیزنس بود. ینی مثلا چطوری بفهمیم این مشتری چه تیپ شخصیتی داره و یا چه اختلال شخصیتی داره (البته نه به معنی بیماری، بلکه به معنی ویژگی، اینطوری هممون یه اختلالایی داریم). و بعد که اینا رو فهمیدیم چطوری باید با طرفمون برخورد کنیم که منجر به یه رابطه موفق بشه.
این مفاهیم در دنیای استارتاپها و تیمهای برنامهنویسی خیلی کاربردی هستن و میتونه تاثیر زیادی روی موفقیت کسب و کار بذاره.
حالا مدرسه بازاریابی تصمیم گرفته در یه دوره فشرده ۳ روزه (روزی ۸ ساعت) در عید (۷،۸،۹ فروردین) این دوره رو با عنوان «تحلیلی بر شخصیت من» برگزار کنه.
https://www.instagram.com/tehranmarketing_school/
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از اتفاقات جذاب امسال من، شرکت در دورهای با مضمون «روانشناسی در بیزنس» یا «روانشناسی برای بیزنس» بود که توسط «مدرسه بازاریابی برگزار شد.
تو این دوره با یه رویکرد جالب، مفاهیم روانشناسی، تیپها و اختلالهای مختلف آموزش داده میشدن و نکته جالب این بود که آموزش با تمرکز بر بیزنس بود. ینی مثلا چطوری بفهمیم این مشتری چه تیپ شخصیتی داره و یا چه اختلال شخصیتی داره (البته نه به معنی بیماری، بلکه به معنی ویژگی، اینطوری هممون یه اختلالایی داریم). و بعد که اینا رو فهمیدیم چطوری باید با طرفمون برخورد کنیم که منجر به یه رابطه موفق بشه.
این مفاهیم در دنیای استارتاپها و تیمهای برنامهنویسی خیلی کاربردی هستن و میتونه تاثیر زیادی روی موفقیت کسب و کار بذاره.
حالا مدرسه بازاریابی تصمیم گرفته در یه دوره فشرده ۳ روزه (روزی ۸ ساعت) در عید (۷،۸،۹ فروردین) این دوره رو با عنوان «تحلیلی بر شخصیت من» برگزار کنه.
https://www.instagram.com/tehranmarketing_school/
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from tehran marketing school
کمپ های آموزشی 3 روزه مدرسه بازاریابی تهران / نوروز 98
* 3 روز برای یک سال *
24 ساعت آموزش فشرده
علمی - عملی
✅ کمپ تحلیلی بر شخصیت من
9-8-7 فروردین
مناسب برای تمامی کسانی که به دنبال شناخت بهتر خود برای موفقیت در کسب و کارشان هستند.
📞 برای ثبت نام و اطلاعات بیشتر میتوانید با شماره زیر تماس بگیرید:
02188677808
و یا به اینستاگرام زیر پیام دهید👇
https://www.instagram.com/tehranmarketing_school/
🔸مکان برگزاری کلاس ها, تهران, محدوده میدان ونک است
@tehran_marketing
* 3 روز برای یک سال *
24 ساعت آموزش فشرده
علمی - عملی
✅ کمپ تحلیلی بر شخصیت من
9-8-7 فروردین
مناسب برای تمامی کسانی که به دنبال شناخت بهتر خود برای موفقیت در کسب و کارشان هستند.
📞 برای ثبت نام و اطلاعات بیشتر میتوانید با شماره زیر تماس بگیرید:
02188677808
و یا به اینستاگرام زیر پیام دهید👇
https://www.instagram.com/tehranmarketing_school/
🔸مکان برگزاری کلاس ها, تهران, محدوده میدان ونک است
@tehran_marketing
♨️ یک تغییر بزرگ: حذف دستور new از زبانهای C# و Java ⁉️
بالاخره پس از مذاکرات و صحبتهای زیاد در یک اقدام هماهنگ خالقان C# و Java تصمیم گرفتند دستور new را از این زبانها حذف کنند. این تصمیم به این دلیل گرفته شد که از نظر طراحان این زبانها همه Object Instantiation ها همیشه باید از طریق Dependency Injection انجام شود و اصولا در یک برنامه خوب برنامهنویس نباید خودش یک شی را ایجاد کند.
با توجه به اینکه این تصمیم در روز اول آوریل (۱۳ فروردین) گرفته شد و نسخه Visual Studio 2019 نیز در همین روز منتشر شد، این تغییر در نسخه جدید C# 8.0 اعمال شده و باید از مدل جدید آن استفاده کنید.
در جاوا هم طبق برنامهریزی این ویژگی در Java 15 اضافه خواهد شد که در سال ۲۰۲۵ ریلیز خواهد شد.
برای اطلاعات بیشتر میتوانید مقالهای که در این مورد در لینک زیر نوشته شدهاست را بخوانید.
۱۳ بدرتان مبارک!
http://mehrandvd.me/2019/04/01/a-huge-change-in-java-and-c/
http://ow.ly/MldR30ojXpI
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/6RyP30ojWAP
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
بالاخره پس از مذاکرات و صحبتهای زیاد در یک اقدام هماهنگ خالقان C# و Java تصمیم گرفتند دستور new را از این زبانها حذف کنند. این تصمیم به این دلیل گرفته شد که از نظر طراحان این زبانها همه Object Instantiation ها همیشه باید از طریق Dependency Injection انجام شود و اصولا در یک برنامه خوب برنامهنویس نباید خودش یک شی را ایجاد کند.
// Not a valid code anymore.این تصمیم اولین تصمیم هماهنگ شده و همزمان بین تیمهای توسعه زبان Java و C# است و Anders Hejlsberg و James Gosling هر دو در مورد این تصمیم بسیار خوشحالند.
Person p = new Person();
// New dependency injection syntax.
Person p = new.Resolve<Person>();
با توجه به اینکه این تصمیم در روز اول آوریل (۱۳ فروردین) گرفته شد و نسخه Visual Studio 2019 نیز در همین روز منتشر شد، این تغییر در نسخه جدید C# 8.0 اعمال شده و باید از مدل جدید آن استفاده کنید.
در جاوا هم طبق برنامهریزی این ویژگی در Java 15 اضافه خواهد شد که در سال ۲۰۲۵ ریلیز خواهد شد.
برای اطلاعات بیشتر میتوانید مقالهای که در این مورد در لینک زیر نوشته شدهاست را بخوانید.
۱۳ بدرتان مبارک!
http://mehrandvd.me/2019/04/01/a-huge-change-in-java-and-c/
http://ow.ly/MldR30ojXpI
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/6RyP30ojWAP
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
A huge change in Java and C# - Dot Philosophy
Finally, after a long discussion between C# language team and Java language team, they decided to remove the famous keyword: 'new'. [crayon-60eae156a43ab212616549/] Anders Hejlsberg and James Gosling have told they are very happy about this, as it is the…
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔰 بررسی تغییرات جدید NET Core 3.0 Preview 3
تاکنون تاریخ دقیقی واسه انتشار ورژن نهایی NET Core 3.0 اعلام نشده بود و فقط توی Roadmap اش نوشته بود تا پایان فصل اول سال 2019 ولی الان ماکروسافت اعلام کرده در نیمه دوم سال 2019 منتشر خواهد شد که تاریخ دقیق اون توی کنفرانس Build 2019 ماکروسافت اعلام خواهد شد
از طرفی Visual Studio 2019 که هفته پیش نسخه RC یش هم منتشر شد و ماکروسافت اعلام کرده نسخه نهاییش در تاریخ 2 ماه April منتشر میشه
با توجه به اخبار، خیلی انتظار میرفت که ورژن نهایی NET Core 3.0 همراه با ورژن نهایی VS منتشر بشه که خب ظاهرا قضیه کنسله
و اما بریم سراغ تغییرات جدید :
🔸امکان Upgrade شدن نسخه های SDK :
اولین تفاوتی که بهش میخوریم اینه که از این پس، نسخه های SDK Installer روی ورژن های patch قبلی Upgrade میشن. به این معنی که با نصب نسخه های جدید، پچ قبلی همون نسخه (که قسمت feature bands مشترکی داشته) حذف شده و سپس نسخه جدید نصب میشه
قسمت feature bands همون قسمت صدگان آخر ورژن هست. مثلا با نصب ورژن 3.0.101، نسخه قبلی اون یعنی 3.0.100 حذف میشه (چون فیچر بند های یکسانی دارند) ولی با نصب 3.0.200، نسخه 3.0.101 حذف نمیشه (چون فیچر بند های متفاوتی دارند)
این باعث میشه تعداد SDK های نصبی روی کامپیوتر شما کاهش پیدا کنه و الکی فضای ها هاردتون با نسخه های بی مصرف پر نشه
🔹بهبود قابلیت Memory Limits برای Docker :
توسط این قابلیت میتونین منابع داکر رو برای برنامه تون محدود کنین مثلا بگین فقط 100 مگابایت حافظه مموری در اختیار برنامه تون بذاره، این قابلیت مخصوصا برای اجرای NET Core روی دیوایس های IOT کاربرد داره
این قابلیت قبلا هم بوده ولی الان بهبود داده شده و توضیحاتش مفصله .پس اطلاعات بیشترش رو میتونین از لینک خود ماکروسافت بخونین
🔸ارائه Container Image های ماکروسافت در MCR
ماکروسافت یه Container Registry به نام Microsoft Container Registry یا به اختصار MCR راه اندازی کرده (چیزی مشابه DockerHub ولی نه دقیقا مثل اون؛ درواقع فقط یه مخزنی هست واسه Image هاش)
2 3 هفته پیش ریپازیتوری نسخه های nightly شو از DockerHub به MCR انتقال داد و الان هم ریپازیتوری نسخه های NET Core رو به MCR منتقل کرده
اطلاعات بیشتر در لینک ماکروسافت
🔹بهبود قابلیت های Index و Range موجود در سی شارپ 8
این قابلیت نیاز به توضیح نداره با یه مثال متوجه میشین
🔸دیگر تغییرات :
تغییرات دیگه ای از جمله بهبود هایی در مورد پیشتبانی بهتر از EF, WPF, WinFroms و... در NET Core 3.0 هم انجام شده که از توضیحاتش صرف نظر می کنیم
جهت اطلاعات بیشتر لینک زیر رو مطالعه کنین
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-3/
___________
@IranAspMvc
تاکنون تاریخ دقیقی واسه انتشار ورژن نهایی NET Core 3.0 اعلام نشده بود و فقط توی Roadmap اش نوشته بود تا پایان فصل اول سال 2019 ولی الان ماکروسافت اعلام کرده در نیمه دوم سال 2019 منتشر خواهد شد که تاریخ دقیق اون توی کنفرانس Build 2019 ماکروسافت اعلام خواهد شد
از طرفی Visual Studio 2019 که هفته پیش نسخه RC یش هم منتشر شد و ماکروسافت اعلام کرده نسخه نهاییش در تاریخ 2 ماه April منتشر میشه
با توجه به اخبار، خیلی انتظار میرفت که ورژن نهایی NET Core 3.0 همراه با ورژن نهایی VS منتشر بشه که خب ظاهرا قضیه کنسله
و اما بریم سراغ تغییرات جدید :
🔸امکان Upgrade شدن نسخه های SDK :
اولین تفاوتی که بهش میخوریم اینه که از این پس، نسخه های SDK Installer روی ورژن های patch قبلی Upgrade میشن. به این معنی که با نصب نسخه های جدید، پچ قبلی همون نسخه (که قسمت feature bands مشترکی داشته) حذف شده و سپس نسخه جدید نصب میشه
قسمت feature bands همون قسمت صدگان آخر ورژن هست. مثلا با نصب ورژن 3.0.101، نسخه قبلی اون یعنی 3.0.100 حذف میشه (چون فیچر بند های یکسانی دارند) ولی با نصب 3.0.200، نسخه 3.0.101 حذف نمیشه (چون فیچر بند های متفاوتی دارند)
این باعث میشه تعداد SDK های نصبی روی کامپیوتر شما کاهش پیدا کنه و الکی فضای ها هاردتون با نسخه های بی مصرف پر نشه
🔹بهبود قابلیت Memory Limits برای Docker :
توسط این قابلیت میتونین منابع داکر رو برای برنامه تون محدود کنین مثلا بگین فقط 100 مگابایت حافظه مموری در اختیار برنامه تون بذاره، این قابلیت مخصوصا برای اجرای NET Core روی دیوایس های IOT کاربرد داره
این قابلیت قبلا هم بوده ولی الان بهبود داده شده و توضیحاتش مفصله .پس اطلاعات بیشترش رو میتونین از لینک خود ماکروسافت بخونین
🔸ارائه Container Image های ماکروسافت در MCR
ماکروسافت یه Container Registry به نام Microsoft Container Registry یا به اختصار MCR راه اندازی کرده (چیزی مشابه DockerHub ولی نه دقیقا مثل اون؛ درواقع فقط یه مخزنی هست واسه Image هاش)
2 3 هفته پیش ریپازیتوری نسخه های nightly شو از DockerHub به MCR انتقال داد و الان هم ریپازیتوری نسخه های NET Core رو به MCR منتقل کرده
اطلاعات بیشتر در لینک ماکروسافت
🔹بهبود قابلیت های Index و Range موجود در سی شارپ 8
این قابلیت نیاز به توضیح نداره با یه مثال متوجه میشین
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
دستور 1^ یعنی اولی از آخرint lastNum = nums[^1]; // 10
دستور 6..2 یعنی آیتم های 2 تا 6 این آرایهint[] subsetNums = nums[2..6]; // {3, 4, 5, 6}
این قابلیت توی Preview 1 اومد ولی فقط واسه آرایه های عددی بود. الان این قابلیت واسه Span، Memory، Array و String امکان پذیر شده🔸دیگر تغییرات :
تغییرات دیگه ای از جمله بهبود هایی در مورد پیشتبانی بهتر از EF, WPF, WinFroms و... در NET Core 3.0 هم انجام شده که از توضیحاتش صرف نظر می کنیم
جهت اطلاعات بیشتر لینک زیر رو مطالعه کنین
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-3/
___________
@IranAspMvc
Microsoft News
Announcing .NET Core 3 Preview 3
Today, we are announcing .NET Core 3.0 Preview 3. We would like to update you on the .NET Core 3.0 schedule and introduce you to improvements in .NET Core SDK installers, Docker containers, Range, and Index. We also have updates on the Windows Desktop and…