خداحافظی با خطای میلیون دلاری: NullReferenceException
پس تغییر جنجالی C# 8.0، یعنی اضافه شدن امکان Nullable Reference Types، دیگر متغییرهای Reference Type مقدار نال قبول نخواند کرد مگر نوعشان Nullable باشد.
```
Person p = null; // ERROR
Person? P = null; // OK
string s = null; //ERROR
string? s = null; OK
اینکه این ویژگی فعال باشد یا نه از طریق تنظیمات پروژه قابل تنظیم است.
این تغییر باعث میشود این خطای معروف از بین برود. از طرفی پروژههایی که از قبل نوشته شدهاند نیاز به تغییرات دارند. فرانک کروگر یکی از برنامهنویسانی است که یکی از برنامههای خود را کامل بازنویسی کرده و تجربیات خود را د به اشتراک گذاشته است. جدا از اینکه تجربیاتش بسیار خواندی هستند، در حین تبدیل به چالشهایی برخورده که نتیجه یکی از آنها پیشنهاد اضافه کردن var? به C# بوده که نتیجهگیری و کاربرد جالبی است.
https://praeclarum.org/2018/12/17/nullable-reference-types.html
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/paMV30nGBdD
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
پس تغییر جنجالی C# 8.0، یعنی اضافه شدن امکان Nullable Reference Types، دیگر متغییرهای Reference Type مقدار نال قبول نخواند کرد مگر نوعشان Nullable باشد.
```
Person p = null; // ERROR
Person? P = null; // OK
string s = null; //ERROR
string? s = null; OK
اینکه این ویژگی فعال باشد یا نه از طریق تنظیمات پروژه قابل تنظیم است.
این تغییر باعث میشود این خطای معروف از بین برود. از طرفی پروژههایی که از قبل نوشته شدهاند نیاز به تغییرات دارند. فرانک کروگر یکی از برنامهنویسانی است که یکی از برنامههای خود را کامل بازنویسی کرده و تجربیات خود را د به اشتراک گذاشته است. جدا از اینکه تجربیاتش بسیار خواندی هستند، در حین تبدیل به چالشهایی برخورده که نتیجه یکی از آنها پیشنهاد اضافه کردن var? به C# بوده که نتیجهگیری و کاربرد جالبی است.
https://praeclarum.org/2018/12/17/nullable-reference-types.html
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/paMV30nGBdD
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
praeclarum
Containing Null with C# 8 Nullable References
C# 8’s nullable reference types are designed to help rid your apps of the dreaded NullReferenceException. This article walks you through the common errors that you will encounter while updating your app and offers a few of my opinions on how to fix them.…
#پست_مجدد این پست تا به حال بیش از ۲۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
آآآیا از کار کردن این فایل اکسلهای پر از شیت رنج میبرییییید!؟
آآآیا وقتی میخواین یه شیت رو پیدا کنین بیچاره میشین!؟
آآآیا وقتی برای فهمیدن اینکه فرمولای این شیت از کدوم شیتهای دیگه استفاده کرده «شیت گیجه» میگیرید!؟
دییییگر نگران نباشید!
با افزونه «Sheet Explorer» همه چیز راحت میشود:
- شیتها رو راحت و واضح میبینید.
- میتونید بین شیتها جستجو کنید.
- میتونید وابستگی هر شیت رو به شیتهای دیگه به صورت درختی ببینید.
جالبی افزونههای Office این است که میتوان آنها را کاملا با JavaScript نوشت و از آنها استفاده کرد. مقاله زیر خیلی خلاصه توضیح دادهاست که افزونه بالا چگونه نوشته شدهاست. همچنین میتوانید کد آن را در github بررسی کنید.
http://mehrandvd.me/2016/10/10/excel-sheet-explorer-turning-shits-to-sheets/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/Jmw130jZkcI
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
آآآیا وقتی میخواین یه شیت رو پیدا کنین بیچاره میشین!؟
آآآیا وقتی برای فهمیدن اینکه فرمولای این شیت از کدوم شیتهای دیگه استفاده کرده «شیت گیجه» میگیرید!؟
دییییگر نگران نباشید!
با افزونه «Sheet Explorer» همه چیز راحت میشود:
- شیتها رو راحت و واضح میبینید.
- میتونید بین شیتها جستجو کنید.
- میتونید وابستگی هر شیت رو به شیتهای دیگه به صورت درختی ببینید.
جالبی افزونههای Office این است که میتوان آنها را کاملا با JavaScript نوشت و از آنها استفاده کرد. مقاله زیر خیلی خلاصه توضیح دادهاست که افزونه بالا چگونه نوشته شدهاست. همچنین میتوانید کد آن را در github بررسی کنید.
http://mehrandvd.me/2016/10/10/excel-sheet-explorer-turning-shits-to-sheets/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/Jmw130jZkcI
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
مقایسه بهترین کتابخانه های دات نت
https://dotnet.libhunt.com
توسط این سایت میتونین کتابخانه های دات نت رو با هم مقایسه کنین و بفهمین کدوم محبوب تره، همچنین میتونین لیستی از کتابخانه های مشابه رو هم برای هر کدوم پیدا کنید.
این سایت از پارامتر های مختلفی برای مقایسه و امتیازدهی کتابخانه ها استفاده میکنه. از جمله:
- Star, Fork, Watcher گیتهاب
- میزان فعال بودن بر اساس آخریت کامیت
- تعداد دانلود در ماه
- میزان کیفیت کد و ...
- میزان سرچ اش رو هم براسا امار Google Trend نشون میده
مثلا لینک زیر IOC Container های معروف Autofac و Ninject را با هم مقایسه میکنه.
https://dotnet.libhunt.com/compare-autofac-vs-ninject?rel=cmp-lib
🔸 توسط این سایت و سایت قبلی که معرفی کردیم میتونین بدون شک "محبوب ترین" کتابخانه و ابزار ها رو برای کاراتون پیدا کنین.
@IranAspMvc
https://dotnet.libhunt.com
توسط این سایت میتونین کتابخانه های دات نت رو با هم مقایسه کنین و بفهمین کدوم محبوب تره، همچنین میتونین لیستی از کتابخانه های مشابه رو هم برای هر کدوم پیدا کنید.
این سایت از پارامتر های مختلفی برای مقایسه و امتیازدهی کتابخانه ها استفاده میکنه. از جمله:
- Star, Fork, Watcher گیتهاب
- میزان فعال بودن بر اساس آخریت کامیت
- تعداد دانلود در ماه
- میزان کیفیت کد و ...
- میزان سرچ اش رو هم براسا امار Google Trend نشون میده
مثلا لینک زیر IOC Container های معروف Autofac و Ninject را با هم مقایسه میکنه.
https://dotnet.libhunt.com/compare-autofac-vs-ninject?rel=cmp-lib
🔸 توسط این سایت و سایت قبلی که معرفی کردیم میتونین بدون شک "محبوب ترین" کتابخانه و ابزار ها رو برای کاراتون پیدا کنین.
@IranAspMvc
این روزها همه در مورد react صحبت میکنند و برنامهنویسان زیادی دوست دارند آن را یاد بگیرند اما سوالی که برای اکثر ما مطرح است این است که برای یادگیری react اول چه چیزهایی را باید بلد باشیم. این مقاله به شکلی بسیار گویا توضیح میدهد، برای اینکه در react استاد شوید چه مسیری را باید طی کنید.
https://github.com/adam-golab/react-developer-roadmap?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
#مریم_کمالی (http://ow.ly/9Wa430mFGeK)
کانال تلگرام:
@SoftwarePhilosophy
___
https://github.com/adam-golab/react-developer-roadmap?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
#مریم_کمالی (http://ow.ly/9Wa430mFGeK)
کانال تلگرام:
@SoftwarePhilosophy
___
GitHub
GitHub - adam-golab/react-developer-roadmap: Roadmap to becoming a React developer
Roadmap to becoming a React developer. Contribute to adam-golab/react-developer-roadmap development by creating an account on GitHub.
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تجزیه اعداد به عوامل اول با استفاده از یکوارها
یکی از مفاهیمی که در دنیای امنیت بسیار از آن استفاده میشود، سخت بودن تجزیه اعداد بزرگ با عوامل اول بزرگ است. به این معنی که اگر دو عدد اول خیلی بزرگ را در هم ضرب کنیم و حاصلضرت را در اختیار شخصی بگذاریم، اون نمیتواند در زمان معقول به آن دو عدد اول دست پیدا کند. در حقیقت تا یکی از عوامل را نداشته باشد نمیتواند عامل دیگر را پیدا کند. این مفهوم یکی از مفاهیم پایهای برای الگوریتمهای public key/private key مانند RSA است.
مقاله زیر یک روش جدید را برای تجزیه اعداد با استفاده از خواص اعداد Repunit یا همان اعداد متشکل از 1 مانند 11, 111, 1111, 11111, … ارائه دادهاست. این الگوریتم بیشتر از لحاظ چند اثبات ریاضی جالب است که ارتباط بین این اعداد با اعداد اول را تشریح کردهاست.
لینک کامل این مقاله در پست زیر آمده است.
http://mehrandvd.me/2018/02/16/using-repunits-prime-factorization/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/9Yrt30jvRhK
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از مفاهیمی که در دنیای امنیت بسیار از آن استفاده میشود، سخت بودن تجزیه اعداد بزرگ با عوامل اول بزرگ است. به این معنی که اگر دو عدد اول خیلی بزرگ را در هم ضرب کنیم و حاصلضرت را در اختیار شخصی بگذاریم، اون نمیتواند در زمان معقول به آن دو عدد اول دست پیدا کند. در حقیقت تا یکی از عوامل را نداشته باشد نمیتواند عامل دیگر را پیدا کند. این مفهوم یکی از مفاهیم پایهای برای الگوریتمهای public key/private key مانند RSA است.
مقاله زیر یک روش جدید را برای تجزیه اعداد با استفاده از خواص اعداد Repunit یا همان اعداد متشکل از 1 مانند 11, 111, 1111, 11111, … ارائه دادهاست. این الگوریتم بیشتر از لحاظ چند اثبات ریاضی جالب است که ارتباط بین این اعداد با اعداد اول را تشریح کردهاست.
لینک کامل این مقاله در پست زیر آمده است.
http://mehrandvd.me/2018/02/16/using-repunits-prime-factorization/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/9Yrt30jvRhK
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Using Repunits for Prime Factorization - Dot Philosophy
This post is going to be strange! It is a nostalgia for me to think about prime numbers and prime factorization algorithms. Maybe prime numbers was the first scientific challenge of my school life, which I faced at high school. I couldn't accept the fact…
#پست_مجدد این پست تا به حال نزدیک به ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
هوش مصنوعی، از آنچه شما فکر میکنید به شما نزدیکتر است!
پروژه onnxjs نام یک پروژه جذاب جاواسکریپتی است که امکان اجرا کردن مدلهای ONNX روی بروزر با استفاده از WebAssembly و WebGL را ایجاد میکند. به این ترتیب تمامی مدلهای ساخته شده از طریق Machine Learning که در قابل ONNX باشد در سمت کلاینت قابل اجرا خواهد بود.
https://github.com/Microsoft/onnxjs
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/zuWq30mQrmr
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
پروژه onnxjs نام یک پروژه جذاب جاواسکریپتی است که امکان اجرا کردن مدلهای ONNX روی بروزر با استفاده از WebAssembly و WebGL را ایجاد میکند. به این ترتیب تمامی مدلهای ساخته شده از طریق Machine Learning که در قابل ONNX باشد در سمت کلاینت قابل اجرا خواهد بود.
https://github.com/Microsoft/onnxjs
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/zuWq30mQrmr
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
GitHub
GitHub - microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
ONNX.js: run ONNX models using JavaScript. Contribute to microsoft/onnxjs development by creating an account on GitHub.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
توکن JWT در حالت عادی به صورت Base64 کدگذاری(Encoding) میشه که این نوع Encoding به راحتی قابل رمزگشایی و خواندنه (امنیت در برابر خوانده شدن نداره).
در این مقاله میخوایم توکن JWT رو رمزنگاری کنیم و اون رو به Json Web Encryption (به اختصار JWE) تبدیل کنیم و امنیتش رو بالا ببریم
https://www.dotnettips.info/post/2992
مثال کامل و قابل اجرا در ریپازیتوری گیتهاب:
https://github.com/mjebrahimi/Jwt-Encryption-AspCore
__________
@IranAspMvc
توکن JWT در حالت عادی به صورت Base64 کدگذاری(Encoding) میشه که این نوع Encoding به راحتی قابل رمزگشایی و خواندنه (امنیت در برابر خوانده شدن نداره).
در این مقاله میخوایم توکن JWT رو رمزنگاری کنیم و اون رو به Json Web Encryption (به اختصار JWE) تبدیل کنیم و امنیتش رو بالا ببریم
https://www.dotnettips.info/post/2992
مثال کامل و قابل اجرا در ریپازیتوری گیتهاب:
https://github.com/mjebrahimi/Jwt-Encryption-AspCore
__________
@IranAspMvc
Forwarded from فلسفه دیزاین
برگه تقلب دیزاین از NN/g:
۱۰ اشتباه رایج در دیزاین محصولات
طراحی اپلیکیشن و وبسایتهای پیچیده چالشی نفسگیر است. در واقع طراحی اپلیکیشنهایی که علاوه بر پشتیبانی از کاربردهای پیچیده، بتواند بیشترین مقدار شفافیت و سادگی را به کاربران ارائه کنند، تعریف دقیق این چالش بوده و هر دیزاینری به نحوی این چالشها را حل میکند و میتوان ساعتها درباره مشکلات مسیر صحبت کرد.
یکی از راههای تکرار نکردن اشتباهات مسیر این است که چکلیستی از اشتباهات معمول تعیین کرده و در مسیر و در پایان کار آن را مرور کرد.
مجموعه Nielsen Norman Group که در چند نوبت درباره آن صحبت کرده ایم، حدود ۱۱ سال قبل به بررسی اشتباهات معمول دیزاینرها پرداخته و حالا پس از گذشت این زمان و بررسیهای بیشتری که در این حوزه انجام داده است، مقالهای را با همین عنوان و با اطلاعات مختص دیزاین محصولات این روزها منتشر کرده است.
در این مقاله با استفاده از مثالهای بسیار کاربردی به بررسی مفاهیم بسیار مهمی مانند بازخورد، پیغامها، پیشفرضها، Affordance و … پرداخته شده و با نمایش نمونههای بد و خوب تلاش میکند این مفاهیم را به درستی در ذهن خواننده بنشاند.
مقاله امروز را به هیچوجه از دست ندهید.
http://bit.ly/dxgn462
(زمان حدودی مطالعه، ۱۶ دقیقه)
#اشتباهات #اصول #طراحی_محصول
@Dexign فلسفه دیزاین
___
۱۰ اشتباه رایج در دیزاین محصولات
طراحی اپلیکیشن و وبسایتهای پیچیده چالشی نفسگیر است. در واقع طراحی اپلیکیشنهایی که علاوه بر پشتیبانی از کاربردهای پیچیده، بتواند بیشترین مقدار شفافیت و سادگی را به کاربران ارائه کنند، تعریف دقیق این چالش بوده و هر دیزاینری به نحوی این چالشها را حل میکند و میتوان ساعتها درباره مشکلات مسیر صحبت کرد.
یکی از راههای تکرار نکردن اشتباهات مسیر این است که چکلیستی از اشتباهات معمول تعیین کرده و در مسیر و در پایان کار آن را مرور کرد.
مجموعه Nielsen Norman Group که در چند نوبت درباره آن صحبت کرده ایم، حدود ۱۱ سال قبل به بررسی اشتباهات معمول دیزاینرها پرداخته و حالا پس از گذشت این زمان و بررسیهای بیشتری که در این حوزه انجام داده است، مقالهای را با همین عنوان و با اطلاعات مختص دیزاین محصولات این روزها منتشر کرده است.
در این مقاله با استفاده از مثالهای بسیار کاربردی به بررسی مفاهیم بسیار مهمی مانند بازخورد، پیغامها، پیشفرضها، Affordance و … پرداخته شده و با نمایش نمونههای بد و خوب تلاش میکند این مفاهیم را به درستی در ذهن خواننده بنشاند.
مقاله امروز را به هیچوجه از دست ندهید.
http://bit.ly/dxgn462
(زمان حدودی مطالعه، ۱۶ دقیقه)
#اشتباهات #اصول #طراحی_محصول
@Dexign فلسفه دیزاین
___
Nielsen Norman Group
Top 10 Application-Design Mistakes
Application usability is enhanced when the UI guides and supports users through the workflow.
نیازمندیهای نرمافزاری در سالهای اخیر نسبت به گذشته تغییرات زیادی داشتهاند .
تا چند سال پیش یک برنامه بزرگ دهها سرور داشت، ثانیه ملاک پاسخگویی و گیگابایت ملاک دادهها بود، اما امروزه کاربران از زمان پاسخگویی سیستمها، واکنشی در حد میلیثانیه انتظار دارند و دادههای بزرگ در Petabytes اندازهگیری میشوند .
بنابراین ما نیازمند سیستمهایی هستیم که با انعطاف پذیری بالا توانمندی پاسخگویی به حجم اطلاعات بسیار زیاد در زمان مناسب را داشته باشند.
طراحی واکنشگرا یا Reactive پاسخی بود به این نیازمندی که تاثیر عمدهای بر روند تولید سیستمها گذاشته است.
در لینک زیر مانیفست این طراحی قرار داده شده است که تلاش میکند چارچوب و اصول آن را معرفی کند .
https://www.reactivemanifesto.org
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
تا چند سال پیش یک برنامه بزرگ دهها سرور داشت، ثانیه ملاک پاسخگویی و گیگابایت ملاک دادهها بود، اما امروزه کاربران از زمان پاسخگویی سیستمها، واکنشی در حد میلیثانیه انتظار دارند و دادههای بزرگ در Petabytes اندازهگیری میشوند .
بنابراین ما نیازمند سیستمهایی هستیم که با انعطاف پذیری بالا توانمندی پاسخگویی به حجم اطلاعات بسیار زیاد در زمان مناسب را داشته باشند.
طراحی واکنشگرا یا Reactive پاسخی بود به این نیازمندی که تاثیر عمدهای بر روند تولید سیستمها گذاشته است.
در لینک زیر مانیفست این طراحی قرار داده شده است که تلاش میکند چارچوب و اصول آن را معرفی کند .
https://www.reactivemanifesto.org
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال نزدیک به ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
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.