تا امروز فیدبکهای خیلی خوبی از شما دوستان گرفتیم. بر اساس فیدبکهای شما تصمیم گرفتیم که پستهای این کانال را در سه دسته بندی پست کنیم:
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر @mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر @mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
وجود یک «لکه» یا Blob در کد برنامه شما یک نمونه ضد الگوی برنامه نویسی (Anti Pattern) محسوب میشود. یکی از علائمی که نشان میدهد برنامه شما لکه دارد، زمانی است که از این جمله استفاده میکنید: «این قسمت از کد، قلب سیستم است»
وقتی از این جمله استفاده میکنید، یعنی قسمتی از کد شما وجود دارد که در آن حجم زیادی از منطق برنامه شما نوشته شدهاست و شکسته نشدهاست. لکهها تمایل به بزرگ شدن دارند، یعنی خیلی وقتها برای نوشتن یک کد جدید، احساس میکنید باید آن را به «قلب سیستم» اضافه کنید. خیلی وقتها علت این مشکل معماری بد و یا حتی «نبود معماری» است.
لینک زیر بیشتر در مورد این Anti Pattern توضیح داده است.
https://sourcemaking.com/antipatterns/the-blob
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
وقتی از این جمله استفاده میکنید، یعنی قسمتی از کد شما وجود دارد که در آن حجم زیادی از منطق برنامه شما نوشته شدهاست و شکسته نشدهاست. لکهها تمایل به بزرگ شدن دارند، یعنی خیلی وقتها برای نوشتن یک کد جدید، احساس میکنید باید آن را به «قلب سیستم» اضافه کنید. خیلی وقتها علت این مشکل معماری بد و یا حتی «نبود معماری» است.
لینک زیر بیشتر در مورد این Anti Pattern توضیح داده است.
https://sourcemaking.com/antipatterns/the-blob
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
محصول Entity Framework 7 که به تازگی نام آن به Entity Framework Core 1 تغییر یافته به هیچ وجه نسخه بعدی Entity Framework 6 نیست. علت تغییر نام این محصول نیز به همین دلیل بودهاست. هدف از تغییر نام واضح کردن این نکته بوده تا برنامهنویسان انتظارات اشتباه نداشته باشند.
در این محصول جدید علاوه بر امکانات جدیدی که اضافه شدهاست، امکاناتی قدیمی که دیگر در معماری نرمافزار نوین نمیگنجد «حذف» شدهاند. برای مثال در محصول جدید دیگر خبری از ObjectContext نیست و فقط DbContext وجود دارد.
برای آگاهی از خلاصهای از امکانات جدید و امکانات حذف شده، میتوانید لینک زیر را مطالعه کنید.
https://www.c-sharpcorner.com/article/new-features-of-entity-framework-7/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
در این محصول جدید علاوه بر امکانات جدیدی که اضافه شدهاست، امکاناتی قدیمی که دیگر در معماری نرمافزار نوین نمیگنجد «حذف» شدهاند. برای مثال در محصول جدید دیگر خبری از ObjectContext نیست و فقط DbContext وجود دارد.
برای آگاهی از خلاصهای از امکانات جدید و امکانات حذف شده، میتوانید لینک زیر را مطالعه کنید.
https://www.c-sharpcorner.com/article/new-features-of-entity-framework-7/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
New Features Of Entity Framework 7
In this article you will learn about new features of Entity Framework 7.
چهار چیزی که طراحان خوب به آن اهمیت میدهند:
۱. طراحان خوب به «انسانها» اهمیت میدهند. آنها انسانها و سطوح احساسی و معنوی انسانها را میفهمند.
2. طراحان خوب به «ساختن» اهمیت میدهند و از ساختن استقبال میکنند (مثلا ساخت مدل). حس خوب به ساختن باعث میشود چیزی که ساخته میشود نیز خوب باشد!
۳. طراحان خوب به «چرایی» اهمیت میدهند. طراحان در هنگام کار نیاز دارند تصمیم بگیرند. آنها شانسی تصمیم نمیگیرند، بلکه تصمیمات آگاهانه خود را بر اساس ریزترین چیزهایی که دیدهاند میگیرند.
۴. طراحان خوب به صداقت اهمیت میدهند. آنها صداقت محض خود را وارد کار میکنند تا به این وسیله چیزهایی درست و معنیدار خلق کنند.
در لینک زیر هر کدام از این موارد به تفصیل توضیح داده شدهاند. جالب است بدانید این مقاله در مورد طراحان UX است ولی من در ابتدا به آن اشارهای نکردم. به نظر میرسد که موارد بالا برای هر کسی که احساس میکند در کارش چیزی طراحی میکند صادق است.
https://uxmag.com/articles/four-things-great-designers-care-about
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
۱. طراحان خوب به «انسانها» اهمیت میدهند. آنها انسانها و سطوح احساسی و معنوی انسانها را میفهمند.
2. طراحان خوب به «ساختن» اهمیت میدهند و از ساختن استقبال میکنند (مثلا ساخت مدل). حس خوب به ساختن باعث میشود چیزی که ساخته میشود نیز خوب باشد!
۳. طراحان خوب به «چرایی» اهمیت میدهند. طراحان در هنگام کار نیاز دارند تصمیم بگیرند. آنها شانسی تصمیم نمیگیرند، بلکه تصمیمات آگاهانه خود را بر اساس ریزترین چیزهایی که دیدهاند میگیرند.
۴. طراحان خوب به صداقت اهمیت میدهند. آنها صداقت محض خود را وارد کار میکنند تا به این وسیله چیزهایی درست و معنیدار خلق کنند.
در لینک زیر هر کدام از این موارد به تفصیل توضیح داده شدهاند. جالب است بدانید این مقاله در مورد طراحان UX است ولی من در ابتدا به آن اشارهای نکردم. به نظر میرسد که موارد بالا برای هر کسی که احساس میکند در کارش چیزی طراحی میکند صادق است.
https://uxmag.com/articles/four-things-great-designers-care-about
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Uxmag
Four Things Great Designers Care About
Whether you’re a seasoned professional or a new graduate, all great designers care about four main things.
قورباغه را دوباره اختراع نکنید!
در مهندسی نرمافزار، شناخت دقیق نیازمندیها و سپس ساخت محصولی مطابق نیازمندیها یکی از کارهای به ظاهر ساده ولی در عمل پیچیده است. مطلب زیر داستانی را تشریح میکند که در آن یک مهندس نرمافزار هنگام خلقت زمین پروژه طراحی «زنبور» را بر عهده گرفتهاست. ولی به دلایلی که در داستان توضیح داده شده اقدام به طراحی یک «وزغ» میکند که هیچ تناسبی با نیازمندیهای «زنبور» ندارد. این مهندس نرمافزار در حقیقت به جای خلق موجودی که نیازمندیهای زنبور را برآورده کند، یک حیوان جدید به نام وزغ خلق کرده که اتفاقا خدا قبلا آن را با نام «قورباغه» خلق کرده بوده!
اگر لینک زیر را کامل بخوانید ارتباط آن را با پروژههای نرمافزاری میبینید و خواهید دید که چگونه این خطا باعث شکست یک پروژه نرمافزاری میشود.
https://mehrandvd.me/2016/03/09/reinventing-the-frog/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
در مهندسی نرمافزار، شناخت دقیق نیازمندیها و سپس ساخت محصولی مطابق نیازمندیها یکی از کارهای به ظاهر ساده ولی در عمل پیچیده است. مطلب زیر داستانی را تشریح میکند که در آن یک مهندس نرمافزار هنگام خلقت زمین پروژه طراحی «زنبور» را بر عهده گرفتهاست. ولی به دلایلی که در داستان توضیح داده شده اقدام به طراحی یک «وزغ» میکند که هیچ تناسبی با نیازمندیهای «زنبور» ندارد. این مهندس نرمافزار در حقیقت به جای خلق موجودی که نیازمندیهای زنبور را برآورده کند، یک حیوان جدید به نام وزغ خلق کرده که اتفاقا خدا قبلا آن را با نام «قورباغه» خلق کرده بوده!
اگر لینک زیر را کامل بخوانید ارتباط آن را با پروژههای نرمافزاری میبینید و خواهید دید که چگونه این خطا باعث شکست یک پروژه نرمافزاری میشود.
https://mehrandvd.me/2016/03/09/reinventing-the-frog/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Reinventing the Frog! - Dot Philosophy
Do you remember the time that God was creating the "Planet Ecosystem" as a sub project of "Earth Project"!? You know, there was a lot of work needed to be done to create this world. Some sample tasks might be: Creating Flowers Designing Rose Designing Tulip…
یکی از ویژگیهای جذابی که قرار است به C# 7.0 اضافه شود، مدل جدیدی در زبان است که امکان میدهد Tuple ها را بسیار راحتتر و کاراتر تعریف کرد. یکی از کاربردهای جالبی که این مدل دارد، امکان ساخت متدهایی است که بتوانند همزمان چند خروجی داشته باشند (بدون استفاده از out و ref یا برگرداندن آرایه)
در لینک زیر نحوه استفاده از این Syntax جدید توضیح داده شدهاست.
https://www.infoq.com/news/2016/04/CSharp-7
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
در لینک زیر نحوه استفاده از این Syntax جدید توضیح داده شدهاست.
https://www.infoq.com/news/2016/04/CSharp-7
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
InfoQ
C# 7 Features Previewed
Over the last year we've shown you various features that were being considered for C# 7. With the preview of Visual Studio 15, Microsoft has decided to demonstrate the features to make it into the final release of C# 7.
این کانال متعلق به یکی دوستانم است که بیشتر در مورد مطالب مربوط به امنیت فعالیت میکند. پیشنهاد میکنم عضو این کانال شوید. ما هم سعی میکنیم مطالبی از این کانال را که مرتبط با «فلسفه نرمافزار» است در اینجا به اشتراک بگذاریم.
https://telegram.me/GeekLinks
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://telegram.me/GeekLinks
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Telegram
GeekLinks 🛃👾
Useful links about Programming/RCE/Software Security
یکی از اخباری که در کنفرانس BUILD 2016 داده شد، انتشار Update 2 برای Visual Studio 2015 بود. یکی از امکانات جالبی که اضافه شدهاست، امکان Initialize Interactive است. همانطور میدانید در Visual Studio 2015 امکانی ایجاد شده بود به نام C# Interactive که پنجرهای است که میتوانید یک قطعه کد را بدون اینکه نیاز به درست کردن فایل و یا درست کردن کلاس باشد به صورت اسکریپتی اجرا کنید. امکان جدیدی که اضافه شدهاست این اجازه را میدهد میتوانید در ادیتور هر قطعه کدی را انتخاب کنید و روی آن راست کلیک کنید و Initialize Interactive را بزنید تا به به طور خودکار در پنجره C# Interative اجرا شود.
https://blogs.msdn.microsoft.com/dotnet/2016/04/02/whats-new-for-c-and-vb-in-visual-studio/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://blogs.msdn.microsoft.com/dotnet/2016/04/02/whats-new-for-c-and-vb-in-visual-studio/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
What’s New for C# and VB in Visual Studio
A first-hand look from the .NET engineering teams
اگر دوست دارید با تکنولوژیهای محبوبی که در راه هستند یک پروژه بنویسید، مقاله زیر از Code Project را بخوانید. این مقاله به صورت قدم به قدم یک پروژه را ساختهاست و از این تکنولوژیها استفاده کردهاست:
- فریمورک Angular 2 (فریم ورک محبوب UI که توسط تیم گوگل در حال توسعه است)
- زبان TypeScript که زبانی محبوب برای کار با جاوااسکریپت میباشد و محبوبیت زیادی پیدا کردهاست.
این مقاله نشان میدهد که چطور میتوان این دو تکنولوژی را در Visual Studio 2015 ادغام کرد و از مزایای هر دو بهره برد.
https://www.codeproject.com/Articles/1087605/Angular-typescript-configuration-and-debugging-for
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
- فریمورک Angular 2 (فریم ورک محبوب UI که توسط تیم گوگل در حال توسعه است)
- زبان TypeScript که زبانی محبوب برای کار با جاوااسکریپت میباشد و محبوبیت زیادی پیدا کردهاست.
این مقاله نشان میدهد که چطور میتوان این دو تکنولوژی را در Visual Studio 2015 ادغام کرد و از مزایای هر دو بهره برد.
https://www.codeproject.com/Articles/1087605/Angular-typescript-configuration-and-debugging-for
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Codeproject
Angular 2 typescript configuration and debugging for Visual Studio 2015 - CodeProject
Article shows how to setup ASP.NET 4.5.2 and ASP.NET 5 projects for Angular 2 application and how to enable Angular 2 typescript debugging in Visual Studio.; Author: Sami Pylkkänen; Updated: 7 Apr 2016; Section: ASP.NET; Chapter: Web Development; Updated:…
معماری نرمافزار مانند معماری ساختمان یک هنر است آیا تا به حال به فرق یک معمار و یک مهندس عمران فکر کردهاید؟ تمرکز مهندسان عمران معمولا بر ساخت سازهها است. آنها فکر میکنند چطور سازههایی مانند دیوار، در، پنجره و سایر اجزا را به طور صحیح بسازند. از طرف دیگر معمارها معمولا به اینها فکر نمیکنند! تمرکز اصلی آنها روی ساخت و معماری فضاهایی است که بین این اجزا به وجود میآید. در حقیقت مهندسین عمران به دیوارها فکر میکنند و معمارها به فضای بین دیوارها.
نکته جالب این است که انسانها یا مشتریان در نهایت از فضاها استفاده میکنند نه دیوارها! آنها پول خرج میکنند تا فضای زیبایی بخرند و به ندرت دیوارها را میبینند.
در مهندسی نرمافزار، ساخت دیوار مانند کد نویسی است. برنامهنویسان با کد نویسی در حقیقت در حال ساخت دیوارهایی هستند که این دیوارها مستقیما برای مشتری معنی ندارد. مشتریان امکاناتی را میبینند که توسط این کدها برای آنها خلق شدهاست. یکی از وظایف یک مهندس نرمافزار تمرکز بر فضاهای ایجاد شده برای مشتری است. اینکه این فضاها چقدر کارا و مفید طراحی شدهاند.
توضیحات کامل مفهوم فضا و تاثیر آن بر مشتری را میتوانید در لینک زیر بخوانید.
https://mehrandvd.me/2015/10/26/spaces-shape-your-software-architecture/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
نکته جالب این است که انسانها یا مشتریان در نهایت از فضاها استفاده میکنند نه دیوارها! آنها پول خرج میکنند تا فضای زیبایی بخرند و به ندرت دیوارها را میبینند.
در مهندسی نرمافزار، ساخت دیوار مانند کد نویسی است. برنامهنویسان با کد نویسی در حقیقت در حال ساخت دیوارهایی هستند که این دیوارها مستقیما برای مشتری معنی ندارد. مشتریان امکاناتی را میبینند که توسط این کدها برای آنها خلق شدهاست. یکی از وظایف یک مهندس نرمافزار تمرکز بر فضاهای ایجاد شده برای مشتری است. اینکه این فضاها چقدر کارا و مفید طراحی شدهاند.
توضیحات کامل مفهوم فضا و تاثیر آن بر مشتری را میتوانید در لینک زیر بخوانید.
https://mehrandvd.me/2015/10/26/spaces-shape-your-software-architecture/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
مقاله زیر حاوی نکات بسیار جالبی در مورد یک UX موفق است. نکاتی ساده، اما کاربردی که رعایت آنها تاثیر مهمی روی محصول شما میگذارد.
https://uxmag.com/articles/the-best-enterprise-ux-is-the-one-you-never-see
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://uxmag.com/articles/the-best-enterprise-ux-is-the-one-you-never-see
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Uxmag
The Best Enterprise UX Is the One You Never See
Whether developing software in the ecommerce, biotech, storage, or security industries, there are five philosophies that shape an approach to enterprise UX.
ارتباط بین طراحان و برنامه نویسان
برای رسیدن به یک محصول خوب، طراحان و برنامهنویسها باید رابطه بسیار خوبی با یکدیگر داشته باشند. نکات زیر کمک میکند بدانید چگونه میتوانید در بهبود این روابط به تیم خود کمک کنید.
۱. ارتباط با ذهن باز: باید بدانید دنیای فکری یک برنامه نویس و یک طراح با هم بسیار فرق دارد. آموزشها، تجربیات، سلیقهها و مهارتهایی که آنها در ذهن خود دارند باعث میشود آنها دنیا را متفاوت ببینند. اصولا همین تفاوت است که باعث ارزشافزایی در تیم و محصول میشود، ولی اگر این تفاوت درست درک نشود ممکن است منجر به مشکلاتی در تیم شود.
۲. همیشه یک نماینده تیم برنامهنویسی را در جلسات نهایی برنامهریزی داشته باشید.
۳. با اینکه معمولا نیازی نیست طراحان دانش برنامهنویسی و پیادهسازی ایدههایشان را داشته باشند، ولی داشتن این دانش کمک خیلی زیادی به شناسایی اشتباهات در مراحل اولیه میکند.
در لینک زیر نکات کاملتری برای بهبود این ارتباط نوشته شدهاست که در صورت علاقه میتوانید مطالعه کنید.
https://uxmag.com/articles/the-relationship-between-designers-and-developers
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
برای رسیدن به یک محصول خوب، طراحان و برنامهنویسها باید رابطه بسیار خوبی با یکدیگر داشته باشند. نکات زیر کمک میکند بدانید چگونه میتوانید در بهبود این روابط به تیم خود کمک کنید.
۱. ارتباط با ذهن باز: باید بدانید دنیای فکری یک برنامه نویس و یک طراح با هم بسیار فرق دارد. آموزشها، تجربیات، سلیقهها و مهارتهایی که آنها در ذهن خود دارند باعث میشود آنها دنیا را متفاوت ببینند. اصولا همین تفاوت است که باعث ارزشافزایی در تیم و محصول میشود، ولی اگر این تفاوت درست درک نشود ممکن است منجر به مشکلاتی در تیم شود.
۲. همیشه یک نماینده تیم برنامهنویسی را در جلسات نهایی برنامهریزی داشته باشید.
۳. با اینکه معمولا نیازی نیست طراحان دانش برنامهنویسی و پیادهسازی ایدههایشان را داشته باشند، ولی داشتن این دانش کمک خیلی زیادی به شناسایی اشتباهات در مراحل اولیه میکند.
در لینک زیر نکات کاملتری برای بهبود این ارتباط نوشته شدهاست که در صورت علاقه میتوانید مطالعه کنید.
https://uxmag.com/articles/the-relationship-between-designers-and-developers
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
UX Magazine
The Relationship Between Designers and Developers
Using the abilities from both design and development teams provides a certain edge that is impossible without collaboration.
حل مشکلات Json در یک استاندارد جدید به نام Hjson
همانطور که میدانید در چند سال اخیر استفاده از فرمت json برای فایلهای کانفیگ بسیار رایج شده است. در این مورد یک توییت جالب همه را به چالش کشید: «خواهش میکنم از json برای کانفیگ فایلها استفاده نکنید، تو json نمیشه کامنت نوشت و بدون کامنت مدیریت کانفیگها خیلی سخته». این نکته برای من خیلی جالب بود. به نظر میرسد فرمت json برای فایلهال کانفیگ چالشهایی دارد.
لینک زیر یک فرمت جدید رو که اسمش Human Json یا Hjson هست را معرفی کرده که نه تنها مشکل کامنت را ندارد، بلکه خیلی مشکلات دیگر که هنوز به آن فکر نشده بود را هم ندارد! جالبه که کتابخانههایی هم برای این استاندارد نوشته شده که استفاده از اون رو در بیشتر زبانهای محبوب مانند Java, C#, JavaScript, Mono, Ruby, Python, Noder.js, PHP, Go و زبانهای دیگر ساده میکند.
https://hjson.org/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
همانطور که میدانید در چند سال اخیر استفاده از فرمت json برای فایلهای کانفیگ بسیار رایج شده است. در این مورد یک توییت جالب همه را به چالش کشید: «خواهش میکنم از json برای کانفیگ فایلها استفاده نکنید، تو json نمیشه کامنت نوشت و بدون کامنت مدیریت کانفیگها خیلی سخته». این نکته برای من خیلی جالب بود. به نظر میرسد فرمت json برای فایلهال کانفیگ چالشهایی دارد.
لینک زیر یک فرمت جدید رو که اسمش Human Json یا Hjson هست را معرفی کرده که نه تنها مشکل کامنت را ندارد، بلکه خیلی مشکلات دیگر که هنوز به آن فکر نشده بود را هم ندارد! جالبه که کتابخانههایی هم برای این استاندارد نوشته شده که استفاده از اون رو در بیشتر زبانهای محبوب مانند Java, C#, JavaScript, Mono, Ruby, Python, Noder.js, PHP, Go و زبانهای دیگر ساده میکند.
https://hjson.org/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
สล็อตเว็บตรง | สล็อตเว็บตรง g2ggrand | สล็อตเว็บตรง แตกง่าย - hjson.org -
สล็อตเว็บตรง | สล็อตเว็บตรง g2ggrand | สล็อตเว็บตรง แตกง่าย - hjson.org
สล็อตเว็บตรง | สล็อตเว็บตรง g2ggrand | สล็อตเว็บตรง แตกง่าย สล็อตเว็บตรง ไม่ผ่านเอเย่นต์ เว็บสล็อตยอดนิยม รวมเกมเยอะ ทำเงินได้จริง 💥 คาสิโนออนไลน์ สมาชิกใหม่ ฝากครั้งแรก รับโบนัส 50% โบนัสสูงสุด 500 บาท ! 💥 Play168 สล็อตเว็บตรง สล็อตเว็บตรง LINE สล็อตเว็บตรง…
افزونگی کد یک اشتباه برنامه نویسی نیست، یک بیماری معماری است. مهندسین نرمافزار همیشه تلاش میکنند تا «افزونگی کد» یا کدهای تکراری را کم کنند. در بسیاری از شرایط افزونگی کد به عنوان یک بیدقتی برنامهنویس محسوب میشود. برنامهنویسانی که به «نزدیکبینی کد» مبتلا هستند! یعنی در کدی که مینویسند گم میشوند و یادشان میرود که کجای کد هستند و چرا این کد را مینویسند و به طور کلی نمیتوانند دورنمایی از کاری را که انجام میدهند در ذهن خود تجسم کنند.
ولی تجربه نشان میدهد بیشترین علت «افزونگی کد» برنامهنویسان نیستند! بلکه این مشکل بیشتر به خاطر «معماری بد نرمافزار» است. معمار نرمافزار کسی است که هنگام معماری باید «فضاهای» کد را طوری معماری کند تا احتمال به خطا افتادن برنامهنویسان کمتر شود.
لینک زیر توضیح میدهد که چگونه یک معماری بد باعث «رشد افزونگی کد» در نرمافزار میشود.
https://mehrandvd.me/2016/02/28/growing-redundancy-an-architectural-disease/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
ولی تجربه نشان میدهد بیشترین علت «افزونگی کد» برنامهنویسان نیستند! بلکه این مشکل بیشتر به خاطر «معماری بد نرمافزار» است. معمار نرمافزار کسی است که هنگام معماری باید «فضاهای» کد را طوری معماری کند تا احتمال به خطا افتادن برنامهنویسان کمتر شود.
لینک زیر توضیح میدهد که چگونه یک معماری بد باعث «رشد افزونگی کد» در نرمافزار میشود.
https://mehrandvd.me/2016/02/28/growing-redundancy-an-architectural-disease/
#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
ضد الگوی «کد مرده» یا Dead Code، یک Anti Pattern رایج در شرکتهایی است که مدت نسبتا زیادی سیستم تولید میکنند. اگر شما این جملهها را میشنوید احتمالا شما هم دچار این ضد الگو شدهاید:
- این کد رو دو نفر قبلا نوشند که سه سال پیش رفتند و پارسال یه نفر دیگه تلاش کرد یاد بگیره و مستند بنویسه براش و اون هم رفته. البته فک نکنم الان اصلا از این کد استفاده بشه، ولی محض احتیاط بهتره پاک نشه!
این نوع کدها غالبا پیچیدگی سیستم را به شدت بالا میبرند و تغییرات آتی سیستم را بسیار سخت میکنند.
بسیاری از این کدها به این علت به وجود میآیند که در زمان تولید کدهای در حد R&D وارد کد عملیاتی شده و به مدیریت آن در آینده فکر نشده.
https://sourcemaking.com/antipatterns/lava-flow
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
- این کد رو دو نفر قبلا نوشند که سه سال پیش رفتند و پارسال یه نفر دیگه تلاش کرد یاد بگیره و مستند بنویسه براش و اون هم رفته. البته فک نکنم الان اصلا از این کد استفاده بشه، ولی محض احتیاط بهتره پاک نشه!
این نوع کدها غالبا پیچیدگی سیستم را به شدت بالا میبرند و تغییرات آتی سیستم را بسیار سخت میکنند.
بسیاری از این کدها به این علت به وجود میآیند که در زمان تولید کدهای در حد R&D وارد کد عملیاتی شده و به مدیریت آن در آینده فکر نشده.
https://sourcemaking.com/antipatterns/lava-flow
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
اندیشه طراحی یا «Design Thinking» یک مفهوم جدید در طراحی نرمافزار است که توسط IBM معرفی شدهاست. این روش به فرایند تولید نرمافزار به دید خلق یک سرویس نگاه میکند، سرویسی که قرار است به مشتریان ارائه شود تا نیاز واقعی آنها را برطرف کند. این روش با روش Agile متفاوت دارد ولی از ویژگیهای آن استفاده میکند. به نظر میرسد این روش محبوبیت خیلی زیادی به دست آورد و مطالعه آن واقعا لذتبخش است.
https://www.ibm.com/design/thinking/
ویدئوی زیر این روش را به اختصار شرح میدهد:
https://bit.ly/1WzM4dQ
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
https://www.ibm.com/design/thinking/
ویدئوی زیر این روش را به اختصار شرح میدهد:
https://bit.ly/1WzM4dQ
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
Ibm
IBM Enterprise Design Thinking
Discover IBM's Enterprise Design Thinking framework—a scalable, human-centered framework that helps teams align on user outcomes, accelerates collaboration, and drives innovation at speed and scale.
در نسخه ASP.NET Core 1.0 RC2 چه اتفاقاتی خواهد افتاد؟ یکی از اتفاقات مهمی که در این نسخه میافتد، ادغام پروژههای ASP.NET Core و .Net Core است که قبلا مجزا بودند. این ادغام منجر به یکپارچگی CLI خواهد شد و از این به بعد به جای dnx, dnu, dnvm فقط کامند dotnet وجود خواهد داشت. این تغییرات تاثیر زیادی بر Runtime و Tooling دارد. برای مشاهده کاملتر این تغییرات و معماری جدید میتوانید این پست Scott Hanselman را بخوانید.
https://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx
#صالح_یوسفنژاد
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx
#صالح_یوسفنژاد
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر نشان میدهد که چگونه میتوانید یک «بات» بنویسید. «بات» برنامهای است که مثلا در پشت یک سرویس مانند اسکایپ یا تلگرام قرار میگیرد و میتواند با چت کردن با شما، به نیازهای شما پاسخ دهد. در این لینک از زیرساخت جدیدی که توسط مایکروسافت به نام Microsoft Bot Framework معرفی شده استفاده شدهاست. جالب است بدانید برای نوشتن باتها میتوانید از زیرساختهایی تحقیقاتی که توانایی درک متن را دارند استفاده کنید. این زیرساختها عمدتا در شاخه Microsoft Cognitive Services قرار دارند و به وسیله آنها میتوانید متن و حتی عکس را تا حد زیادی درک کنید و به آنها پاسخ دهید.
https://www.c-sharpcorner.com/article/real-time-bot-project-using-microsoft-bot-framework/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.c-sharpcorner.com/article/real-time-bot-project-using-microsoft-bot-framework/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
Real Time Bot Project Using Microsoft Bot Framework
In this article, I will create a real time Bot project that is a Stock Bot using Yahoo Finance API and Microsoft Bot Framework.
یک API برای درک احساسات افراد در تصاویر! سرویس زیر که یکی از اجزای Microsoft Cognitive Science است به شما این امکان را میدهد تا با دادن یک عکس از گروهی از افراد به API به این اطلاعات دست پیدا کنید:
- مختصات صورتهایی که در عکس تشخیص داده شدهاست.
- میزان هر یک از احساسات در چهره: «خشم»، «ترس»، «خوشحالی»، «غم» و ...
همانطور که در لینک میبینید این اطلاعات به صورت JSON قابل استفاده هستند.
https://www.microsoft.com/cognitive-services/en-us/emotion-api
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
- مختصات صورتهایی که در عکس تشخیص داده شدهاست.
- میزان هر یک از احساسات در چهره: «خشم»، «ترس»، «خوشحالی»، «غم» و ...
همانطور که در لینک میبینید این اطلاعات به صورت JSON قابل استفاده هستند.
https://www.microsoft.com/cognitive-services/en-us/emotion-api
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
Azure AI Services – Using AI for Intelligent Apps | Microsoft Azure
Expand your reach with the use of AI services. AI tools and services help you automate document processing, improve customer service, extract insights, and more.
همیشه هر چیز خوبی، میتواند بد استفاده شود و نتیجه عکس دهد. این قضیه در مورد تکنولوژی هم صادق است. مقاله زیر توضیح میدهد که چه عادتهای اشتباهی هنگام کار با LINQ میتواند شما را به اشتباه بیندازد و باعث ایجاد کد بد شود.
یکی از خطرناکترین ویژگیهای LINQ این است که وقتی با آن کار میکنید احساس میکنید خیلی باهوشید که غالبا باعث میشود کد احمقانه و پیچیدهای با آن بنویسید. فهمیدن مفهوم Provider ها نیز مسئله مهمی است که باید با آن آشنا باشید.
مقاله زیر این نکات را شرح میدهد.
https://mehrandvd.me/2016/03/28/linq-the-bad-parts/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از خطرناکترین ویژگیهای LINQ این است که وقتی با آن کار میکنید احساس میکنید خیلی باهوشید که غالبا باعث میشود کد احمقانه و پیچیدهای با آن بنویسید. فهمیدن مفهوم Provider ها نیز مسئله مهمی است که باید با آن آشنا باشید.
مقاله زیر این نکات را شرح میدهد.
https://mehrandvd.me/2016/03/28/linq-the-bad-parts/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___