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

در لینک زیر گرگ یانگ به تفصیل به این موضوع پرداخته است:

https://www.youtube.com/watch?v=8JKjvY4etTY

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

https://ow.ly/p0JF30g96FC

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

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

___
#پست_مجدد این پست تا به حال بیش از ۵۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
برنامه‌نویسان NASA یکی از چالشی‌ترین کارهای برنامه‌نویسی در جهان را دارند. عمده برنامه‌هایی که آنها می‌نویسند بسیار حساس و اصطلاحا Mission Critical هستند.
برنامه‌هایی که در ناسا نوشته می‌شوند نباید هیچ خطایی داشته باشند. کوچکترین خطا در برنامه باعث نابود شدن کل پروژه می‌شود (برای مثال سقوط شاتل یا نرسیدن به مقصد).
به همین دلیل روشی که آنها طبق آن کد نویسی می‌کنند می‌تواند بسیار آموزنده باشد.
در لینک زیر ۱۰ قانون حیاتی که تیم برنامه‌نویسی «آزمایشگاه نیروی متحرکه جت» یا Jet Propolution Labratovary از آن استفاده می‌کنند آمده است.
با اینکه این قوانین عمدتا برای زبان C تدوین شده‌اند ولی بیشتر آنها در همه زبان‌ها کاربرد دارند و خواندن این قوانین می‌تواند بسیار آموزنده باشد.

در انتها جمله‌ای که ناسا در مورد این قوانین نوشته جمله جالبی است: «قوانین مانند کمربند ایمنی ماشین هستند. در ابتدا ممکن است خیلی راحت نباشند، ولی استفاده از آنها پس از مدتی طوری غریزی می‌شود که استفاده نکردنشان غیر قابل تصور خواهد بود»

https://fossbytes.com/nasa-coding-programming-rules-critical/


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

https://ow.ly/UkMY30gO6Si

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

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

___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
وبینار یک روزه API نویسی اصولی و حرفه ای در ASPNET Core

برخی سرفصل ها :
- پیکربندی و استفاده از Swagger در ASPNET Core
- تست نویسی و داکیومنت نویسی حرفه ای (Testing & Documenting)
- اعتبار سنجی خودکار (Validation)
- مدیریت استثنا ها (Exception Handeling)
- نسخه گذاری اصولی (Versioning)
- رعایت Best Practice های API نویسی
- رعایت اصول امینیتی (Security)
- پیاده سازی یک معماری حرفه ای و اصولی برای API نویسی
- و...

برگزار کننده : کامیونیتی دات نت تاک (DotNetTalk)

زمان : پنج شنبه 8 آذرماه - ساعت 09:00 الی 17:00

کد تخفیف 20 درصدی مخصوص اعضای کانال :
iranaspmvc20
فقط برای 15 نفر ثبت نام کننده اول

لینک ثبت نام :
https://evnd.co/Zr32J
________________
@IranAspMvc
Forwarded from فلسفه دیزاین
مروری بر ۶ سال طراحی پورتفولیو

پروژه‌های شخصی و پورتفولیو (Portfolio)ها بهترین حیاط خلوت‌های دیزاینرها هستند. دنیایی که هم سفارش‌دهنده خود ما هستیم و هم اجراکننده. شما چند وقت یکبار رزومه و پوتفولیوی خود را بروزرسانی می‌کنید؟

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

نویسنده مقاله امروز آقای Shawn Park از تجربه ۶ سال بروزرسانی پورتفولیو خود می‌گوید. Shawn هر سال یکبار کل پورتفولیوی خود را بازطراحی کرده و به دلایل بسیار خوبی برای اینکار اشاره می‌کند که به تفصیل می‌توانید در مقاله مطالعه کنید.

مقاله امروز را از دست ندهید:
https://uxdesign.cc/how-and-why-i-redesign-my-portfolio-every-year-bf3bba3833fc

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

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

___
#پست_مجدد این پست تا به حال بیش از ۲۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از دغدغه‌های همیشگی برنامه‌نویسان، تولید نرم‌افزار با سرعت بیشتر و کیفیت بالاتر می‌باشد. یکی از زبان‌های جدید پرطرفدار که به این امر کمک می کند F# است. با F# می‌توان بصورت Functional کد نوشت. تعداد خطوط نوشته شده در زبانهای Functional نسبت به سایر زبان‌ها کم می‌باشد. بطور مثال ۲۰ خط کد در C# با حدود ۵ خط کد در F# قابل بازنویسی است. ویدیو زیر به معرفی F# برای برنامه نویسان C# پرداخته است.

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

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

https://ow.ly/KfWV30h1wUK

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

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

___
امکانات جدید C# 8.0 با بوی هوش مصنوعی!

نسخه major بعدی C# 7.3 که C# 8.0 خواهد طبق برنامه‌ریزی به همراز .Net Core 3.0 ریلیز خواهد شد و امکان آزمایش آن در Visual Studio 2019 Preview وجود خواهد داشت.
امکانات جذابی که به این زبان اضافه شده در لینک زیر شرح داده‌شده که به عنوان خلاصه می‌توان به امکانات زیر اشاره کرد:

- Nullable Reference Types
string? s = null;


- Async Streams
await foreach (var result in GetResultsAsync()) 
{
if (result > 20) yield return result;
}


- Ranges and Indices
Index i1 = 3; // number 3 from beginning 
Index i2 = ^4; // number 4 from end
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"
var slice = a[i1..i2]; // { 3, 4, 5 }


- Recursive Patterns
if (p is Student { Graduated: false, Name: string name })


- Target-Typed New Expressions
Point[] ps = { new (1, 4), new (3,-2), new (9, 5) }; // all Points

وقتی نام تایپ قابل استنتاج است نیازی نیست نام کلاس هنگام new کردن مشخص شود!


به نظر می‌رسد با توجه به تمرکز جدید مایکروسافت روی هوش مصنوعی، امکاناتی که در این نسخه به زبان اضافه شده، بیشتر با هدف ساده‌سازی کار برای برنامه‌نویسان Data Science است. همانطور که می‌بینید ویژگی‌هایی از زبان Python که موجب جذابیت این زبان برای متخصصان Data Science بوده در این لیست دیده می‌شوند.

برای آشنایی کامل‌تر این امکانات می‌توانید لینک زیر را که توسط Mads Torgersen نوشته شده‌است را مطالعه کنید.

https://blogs.msdn.microsoft.com/dotnet/2018/11/12/building-c-8-0/

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

https://ow.ly/36cL30mMFJK

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

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

___
I'm going to have a talk at TEDx about "Mirror Neurons" and how it affects on having an effective team, or even a pioneer country.
Forwarded from Iran Agile
سه روش برای محاسبه سرعت تیم با در نظر گرفتن تعطیلات و مرخصی

https://bit.ly/2P6rqBV

@iranagile
هوش مصنوعی، از آنچه شما فکر می‌کنید به شما نزدیک‌تر است!

پروژه onnxjs نام یک پروژه جذاب جاواسکریپتی است که امکان اجرا کردن مدل‌های ONNX روی بروزر با استفاده از WebAssembly و WebGL را ایجاد می‌کند. به این ترتیب تمامی مدل‌های ساخته شده از طریق Machine Learning‌ که در قابل ONNX باشد در سمت کلاینت قابل اجرا خواهد بود.

https://github.com/Microsoft/onnxjs

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

https://ow.ly/zuWq30mQrmr


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

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

___
Forwarded from فلسفه دیزاین
بازی یا بازی‌نمایی، مساله این است

نمی‌دانم بواسطه سرعت صنایع مرتبط با کامپیوتر است یا تاثیر شبکه‌های اجتماعی که ما دیگر حوصله درک عمیق مفاهیم را نداشته و صرفا با خواندن تیتر یک مفهوم و چند تعریف جزئی، شروع به پیاده‌سازی آن مفهوم در محصولات خود می‌کنیم.
بازی‌نمایی (Gamification) از مهمترین مفاهیم معرفی شده در صنایعی‌ست که با کاربرها ارتباط دارند و پایه موفقیت بسیاری از محصولاتی‌ست که حالا دیگر کمپانی‌های بزرگ و چند محصولی شده‌اند.

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

مقاله امروز از آقای David Teodorescu، طراح ارشد محصول در شرکت Fitbit است که عمده فعالیت‌ش در حوزه تولید گجت‌های سلامتی‌ست. David با بررسی دقیق عناصر پایه‌ای یک ساختار بازی‌نمایی شده و سپس با مثال‌هایی کاربردی از محصولات Fitbit سعی در انتقال دقیق و کاربردی مفاهیم Gamification دارد.

اگر به کاربرد بازی‌نمایی در محصولات و کسب‌و‌کارها علاقمند هستید، مقاله امروز را از دست ندهید:

https://uxdesign.cc/gamification-aguide-for-designers-to-a-misunderstood-concept-4de5bef0c5d9

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

#بازینمایی #مفاهیم #گیمیفیکیشن
@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مدیریت خطا هنگام کار با Task در برنامه‌های Parallel یا Async بسیار حساس و گاهاً پیچیده است. در .Net 4.0 هنگام معرفی کتابخانه TPL نوع جدیدی از Exception به نام AggregateException معرفی شد تا بتواند حالت‌های خطا در هنگام برنامه‌نویسی موازی را مدیریت کند.
از طرفی هنگام معرفی .Net 4.5 با انجام تغییراتی در ExceptionDispatchInfo امکان استفاده روش جدیدی در مدیریت خطا را ایجاد کرد.
مقاله زیر دلایل تاریخی و تصمیماتی که در نحوه ایجاد Exception ها در هنگام ایجاد خطا در حالت‌های Parallel و Async گرفته شده‌است را شرح می‌دهد.

https://blogs.msdn.microsoft.com/pfxteam/2011/09/28/task-exception-handling-in-net-4-5/

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

https://ow.ly/g2m930hpUbG

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

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


___
#پست_مجدد این پست تا به حال بیش از ۲۶۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریم‌ورک React یکی از فریم‌ورک‌هایی است که محبوبیت بسیار زیادی بین برنامه‌نویسان وب (و موبایل) پیدا کرده‌است. معماری این فریم‌ورک بسیار زیبا، سبک و قابل گسترش است. مفهوم Immutable طوری در این فریم‌ورک دیده شده که به نظر من یکی از مهمترین دلایل تمایز این زیرساخت با سایر زیرساخت‌ها است. هر اکوسیستمی که در community محبوب شود، باید منتظر کتابخانه‌‌های جذابی باشید که توسط برنامه‌نویسان دیگر برای آن ساخته می‌شود.
لینک زیر ۱۰ کتابخانه جذاب روی GitHub را که برای React توسعه داده شده‌اند را معرفی کرده‌است.


https://hackernoon.com/top-10-react-libraries-on-github-ebf730e7ac25


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

https://ow.ly/MX9B30hGWbQ

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

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

___
اغلب در برنامه نویسی فرانت اند، در صفحات بیش از یک http request وجود دارد.
گاهی نتیجه یک ریکوست، بعنوان ورودی ریکوست بعدی لازم است که در این حالات باید دو ریکوست بصورت سری عمل کنند.
در برخی مواقع نیز لازم است که بعد از گرفتن نتیجه دو یا چند ریکوست، عملیات خاصی انجام شود به عبارت دیگر باید ریکوست‌ها بصورت موازی ارسال و بعد از اینکه نتیجه‌ی همه‌ی ریکوست‌ها بدست آمد، عملیات صورت گیرد.
در فریم ورک انگولار (Angular 2+) مدیریت این ریکوست‌های async توسط Http service و با کمک کتابخانه RxJS انجام می‌شود.
مقاله زیر هر دو مورد گفته شده را با Angular 7 و RxJS 6 توضیح داده است.

https://coryrylan.com/blog/angular-multiple-http-requests-with-rxjs

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


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

___
Forwarded from Iran Agile
🔵 حس می کنم بعنوان یک اسکرام مستر، کار من مفید نیست؟!

برخی اوقات در شغل یا نقش اسکرام مستری، حس مفید نبودن به سراغ شما می آید، "نمیدونم باید چیکار کنم، واقعا نمیدونم دارم چیکار میکنم؟؟!! آیا واقعا وجود من اینجا مفید است؟"

این حس معمولا با عنوان سندروم ایمپاستر شناخته می شود، به طوری که دستاوردهای خودتان را نادیده یا بی ارزش فرض می کنید، و احساس می کنید دیگران، خیلی بهتر از شما عمل می کنند. اما چگونه میتواند این حس را تغییر داد؟

نوشته زیر در مورد تجربه عملی و نحوه مواجهه با این سندروم است:
https://bit.ly/2E4QFUh

@iranagile