ارتباط بین طراحان و برنامه نویسان
برای رسیدن به یک محصول خوب، طراحان و برنامهنویسها باید رابطه بسیار خوبی با یکدیگر داشته باشند. نکات زیر کمک میکند بدانید چگونه میتوانید در بهبود این روابط به تیم خود کمک کنید.
۱. ارتباط با ذهن باز: باید بدانید دنیای فکری یک برنامه نویس و یک طراح با هم بسیار فرق دارد. آموزشها، تجربیات، سلیقهها و مهارتهایی که آنها در ذهن خود دارند باعث میشود آنها دنیا را متفاوت ببینند. اصولا همین تفاوت است که باعث ارزشافزایی در تیم و محصول میشود، ولی اگر این تفاوت درست درک نشود ممکن است منجر به مشکلاتی در تیم شود.
۲. همیشه یک نماینده تیم برنامهنویسی را در جلسات نهایی برنامهریزی داشته باشید.
۳. با اینکه معمولا نیازی نیست طراحان دانش برنامهنویسی و پیادهسازی ایدههایشان را داشته باشند، ولی داشتن این دانش کمک خیلی زیادی به شناسایی اشتباهات در مراحل اولیه میکند.
در لینک زیر نکات کاملتری برای بهبود این ارتباط نوشته شدهاست که در صورت علاقه میتوانید مطالعه کنید.
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
___
یک مقاله از مهندسان شرکت Telerik برای کسانی که میخواهند کار با EF Migration را یاد بگیرند. این مقاله به طور خیلی خلاصه مفاهیم و روش کار این تکنولوژی را شرح داده و توصیههای خوبی نیز در مورد کار تیمی دارد. EF Migration یک تکنولوژی است که امکان ساخت فرایندهایی کاملا مدیریت شده برای تبدیل نسخه قدیمی دیتابیس به نسخه جدید را فراهم میکند.
https://developer.telerik.com/featured/entity-framework-code-first-migrations/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://developer.telerik.com/featured/entity-framework-code-first-migrations/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Telerik Developer Network
Entity Framework Code First Migrations -
Nick Branstein explains how to manage database migrations when using the Entity Framework as your application's ORM solution.
اگر در پروژه های تولید یا نگهداری سیستم های اطلاعاتی کار کرده باشید قطعا با مفهوم پردازش های دسته ای برخورد کرده اید. لازم به توضیح نیست که پردازش های دسته ای یا آفلاین، بخش عمده ای از فعالیت های هر کسب و کار بزرگ را تشکیل می دهد. مقاله زیر تجربیاتی را در طراحی و پیاده سازی بهینه این گونه سناریوها مطرح می کند.
https://bit.ly/1U6Ew1B
محمد مهدی نظری
لینکدین
https://ir.linkedin.com/in/mohammad-mahdi-nazari-90097b58
توییتر
@ShamehdiN
کانال تلگرام:
@SoftwarePhilosophy
___
https://bit.ly/1U6Ew1B
محمد مهدی نظری
لینکدین
https://ir.linkedin.com/in/mohammad-mahdi-nazari-90097b58
توییتر
@ShamehdiN
کانال تلگرام:
@SoftwarePhilosophy
___
LinkedIn Pulse
نکاتی در مورد طراحی task های پایان روز
اگر در پروژه های تولید یا نگهداری سیستم های اطلاعاتی کار کرده باشید قطعا با مفهوم پردازش های دسته ای شبانه برخورد کرده اید. لازم به توضیح نیست که پردازش های دسته ای یا آفلاین، بخش عمده ای از فعالیت
حتما تا به حال به این مشکل برخوردید که درست کردن یک پروژه جدید از صفر همیشه سخت است. اینکه چه نسخههایی از کتابخانهها را باید استفاده کنید، چه ترتیبی، چه ترکیبی و ... برای اینکه این کار سخت راحت شود مفهومی مانند Scaffolding میتواند کمک زیادی کند. پروژه Yeoman یکی از ابزارهای موفق در این مورد است. با استفاده از این ابزار به راحتی میتوانید مثلا یک سایت کامل بسازید. چندتا از محبوبترین generator های این ابزار را در لیست زیر میبینید:
-react-fullstack
- angular
- angular-fullstack: MEAN+Mongo+Express+Node
- HotTowel: HotTowel + Angular + WebApi
- aspnet: برای ساخت پروژههای نسخه جدید aspnet
https://yeoman.io/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
-react-fullstack
- angular
- angular-fullstack: MEAN+Mongo+Express+Node
- HotTowel: HotTowel + Angular + WebApi
- aspnet: برای ساخت پروژههای نسخه جدید aspnet
https://yeoman.io/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
تا امروز فیدبکهای خیلی خوبی از شما دوستان گرفتیم. بر اساس فیدبکهای شما تصمیم گرفتیم که پستهای این کانال را در سه دسته بندی پست کنیم:
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر @mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر @mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
مفهوم Pattern Matchning یکی از مفاهیمی است که قدرت بسیار زیادی به زبانهای Functional مانند Haskell داده است. این مفهوم را با Regex اشتباه نگیرید! این یک مفهوم زبان میباشد و ارتباط چندانی با Regex ندارد.
از آنجایی که مدتیست امکانات زبانهای Functional بسیار مورد علاقه طراحان زبانهای شیگرا مانند C# شده است بد نیست با این مفهوم آشنا شوید. پس از اضافه شده مفهوم Lambda Expressions در C# 3.0 امکان پیادهسازی بسیاری از مفاهیم پیچیده مهیا شده است.
جالب است بدانید که Pattern Matching یکی از جنجالبرانگیزترین امکاناتی است که قرار است به C# 7.0 اضافه شود.
لینک زیر به طور مختصر ایده را در زبان سیشارپ توضیح میدهد. همچنین لینک Specification دقیق که توسط طراحان زبان در حال نگارش است را ارائه داده است. به این ترتیب میتوانید ببینید مثلا همین امروز پیشنویس این استاندارد در چه وضعیتی است!
https://www.infoq.com/news/2014/08/Pattern-Matching
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
از آنجایی که مدتیست امکانات زبانهای Functional بسیار مورد علاقه طراحان زبانهای شیگرا مانند C# شده است بد نیست با این مفهوم آشنا شوید. پس از اضافه شده مفهوم Lambda Expressions در C# 3.0 امکان پیادهسازی بسیاری از مفاهیم پیچیده مهیا شده است.
جالب است بدانید که Pattern Matching یکی از جنجالبرانگیزترین امکاناتی است که قرار است به C# 7.0 اضافه شود.
لینک زیر به طور مختصر ایده را در زبان سیشارپ توضیح میدهد. همچنین لینک Specification دقیق که توسط طراحان زبان در حال نگارش است را ارائه داده است. به این ترتیب میتوانید ببینید مثلا همین امروز پیشنویس این استاندارد در چه وضعیتی است!
https://www.infoq.com/news/2014/08/Pattern-Matching
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
InfoQ
Pattern Matching in C# and VB
Another concept from functional programming languages making its way to C# and VB is what’s known as pattern matching. At first glance pattern matching looks like a switch/select block, but it is much more powerful.
Forwarded from Iran .Net
در نرم افزار های سازمانی و هر جایی که "تغییرِ" داده ها بار حقوقی داشته و همراه با مسئولیت باشد، نیاز هست تا تاریخچه ای از تغییرات داده ها را در پایگاه داده ذخیره کنیم. مثلا باید این قابلیت وجود داشته باشد که بتوانیم بفهیم چه رکوردی، در چه تاریخی، چه تغییری داشته است.
ما در پایگاه های داده به طور معمول "وضعیت فعلی" موجودیت ها را ذخیره می کنیم و نه تغییرات آن ها را. ضبط تغییرات روش های متعددی دارد، اعم از راهکار هایی در سمت نرم افزار و یا راهکار های مبتنی بر Trigger در سمت دیتابیس. ولی عموما همه راه ها نیاز به برنامه نویسی داشته و عیب و ایرادی هم خواهد داشت.
در SQL Server 2008 قابلیتی به نام Change Data Capture اضافه شده است. با فعال سازی این قابلیت و بدون نیاز به هیچگونه برنامه نویسی، SQL Server مسئولیت ذخیره تغییرات را به راحتی به عهده خواهد گرفت. در نتیجه در کمترین زمان ممکن می توان این قابلیت کلیدی را اضافه کرد و مشکل عمده بسیاری از نرم افزارهای سازمانی فعلی را برطرف کرد.
مزیت این روش آن است که برنامه های فعلی نیاز به هیچ تغییری ندارند و فعال سازی قابلیت Change Data Capture جدای از نرم افزار می باشد.
https://www.simple-talk.com/sql/learn-sql-server/introduction-to-change-data-capture-(cdc)-in-sql-server-2008/
ما در پایگاه های داده به طور معمول "وضعیت فعلی" موجودیت ها را ذخیره می کنیم و نه تغییرات آن ها را. ضبط تغییرات روش های متعددی دارد، اعم از راهکار هایی در سمت نرم افزار و یا راهکار های مبتنی بر Trigger در سمت دیتابیس. ولی عموما همه راه ها نیاز به برنامه نویسی داشته و عیب و ایرادی هم خواهد داشت.
در SQL Server 2008 قابلیتی به نام Change Data Capture اضافه شده است. با فعال سازی این قابلیت و بدون نیاز به هیچگونه برنامه نویسی، SQL Server مسئولیت ذخیره تغییرات را به راحتی به عهده خواهد گرفت. در نتیجه در کمترین زمان ممکن می توان این قابلیت کلیدی را اضافه کرد و مشکل عمده بسیاری از نرم افزارهای سازمانی فعلی را برطرف کرد.
مزیت این روش آن است که برنامه های فعلی نیاز به هیچ تغییری ندارند و فعال سازی قابلیت Change Data Capture جدای از نرم افزار می باشد.
https://www.simple-talk.com/sql/learn-sql-server/introduction-to-change-data-capture-(cdc)-in-sql-server-2008/
Simple-Talk
Introduction to Change Data Capture (CDC) in SQL Server 2008
Change Data Capture records INSERTs, UPDATEs, and DELETEs applied to SQL Server tables, and makes a record available of what changed, where, and when, in simple relational 'change tables' rather than in an esoteric chopped salad of XML. These change tables…
دانشگاه Essex در انگلستان، برای دو شغل زیر در حال جذب نیرو است. اگر تخصصهای لازم را دارید میتوانید تا یکشنبه ۵ اردیبهشت (دو روز دیگر) برای این موقعیتها اقدام کنید. در صورتی که علاقمند هستید من میتوانم اطلاعاتی را جهت تسهیل فرایند و روش مصاحبه در اختیارتون بذارم. در این صورت به آدرس توییتر من (https://twitter.com/mehrandvd) پیغام بفرسید.
https://jobs.essex.ac.uk/fe/tpl_essex01.asp?s=4A515F4E5A565B1A&jobid=86413,1236794825&key=167011944&c=34343525343425&pagestamp=seqvljzaivsqoblxox
https://jobs.essex.ac.uk/fe/tpl_essex01.asp?s=4A515F4E5A565B1A&jobid=86489,8754874823&key=167011944&c=34343525343425&pagestamp=sefvicwhrinkroitrp
https://jobs.essex.ac.uk/fe/tpl_essex01.asp?s=4A515F4E5A565B1A&jobid=86413,1236794825&key=167011944&c=34343525343425&pagestamp=seqvljzaivsqoblxox
https://jobs.essex.ac.uk/fe/tpl_essex01.asp?s=4A515F4E5A565B1A&jobid=86489,8754874823&key=167011944&c=34343525343425&pagestamp=sefvicwhrinkroitrp
معماری ASP.NET Core کاملا با معماری ASP.NET قبل فرق دارد. نسخه جدید بیشتر با تمرکز بر استراتژی جدید مایکروسافت مبنی بر پشتیبانی از تمام محیطها و سیستمعاملها برای توسعه نرمافزار معماری شده و کمتر روی اضافه کردن امکانات جدید دارد.
در این مقاله Dino Esposito توضیح میدهد با دیدی انتقادی به این تفاوت بنیادین نگاه میکند و به این نکته اشاره میکند که اکو سیستم جدید باید طوری باشد که برنامهنویسان قبلی تمایل بیشتری برای حرکت به نسخه Core داشته باشند.
https://www.simple-talk.com/content/article.aspx?article=2402
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
در این مقاله Dino Esposito توضیح میدهد با دیدی انتقادی به این تفاوت بنیادین نگاه میکند و به این نکته اشاره میکند که اکو سیستم جدید باید طوری باشد که برنامهنویسان قبلی تمایل بیشتری برای حرکت به نسخه Core داشته باشند.
https://www.simple-talk.com/content/article.aspx?article=2402
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
ضد الگو یا Anti Pattern «روحهای سرگردان» یکی از مواردی است که باعث دردسر در نرمافزارها میشود. این ضد الگو وقتی اتفاق میافتد که در کد، کلاسهای بیموردی که تقریبا هیچ مسئولیتی ندارند به وجود باید. به عبارتی بیش از حد مورد نیاز همه چیز abstract شده است. یکی شایعترین علتهای بروز این ضد الگو افرادی در پروژه هستند که دانش فرایندی بالا و دانش شیگرایی کم دارند. معمولا افرادی که یا در شیگرایی و Object Oriented جدید هستند و این دنیا برایشان خیلی جذاب است به شدت عاشق ساخت «کلاسهای روح سرگردان» میشوند! نبود نقش تخصصی معمار نرمافزار در تیم نیز یکی دیگر از دلایل این ضد الگو است.
https://sourcemaking.com/antipatterns/poltergeists
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://sourcemaking.com/antipatterns/poltergeists
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
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.
یکی از مباحث مهم در Exception Handling در زبان Java، استفاده درست از انواع Checked Excections و Unchecked Exceptions است. مطلب زیر هر کدام از این نوع Exception ها و کاربرد آنها را توضیح میدهد. سپس «مزایا» و «معایب» هر یک را شرح میدهد.
در این مقاله تاکید شدهاست که در نرمافزار خود حتما یک رویکرد واحد را انتخاب کنید و از آن پیروی کنید. چرا که انتخاب دو رویکرد همزمان غالبا موجود پیچیدگی بیشتر میشود.
https://tutorials.jenkov.com/java-exception-handling/checked-or-unchecked-exceptions.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
در این مقاله تاکید شدهاست که در نرمافزار خود حتما یک رویکرد واحد را انتخاب کنید و از آن پیروی کنید. چرا که انتخاب دو رویکرد همزمان غالبا موجود پیچیدگی بیشتر میشود.
https://tutorials.jenkov.com/java-exception-handling/checked-or-unchecked-exceptions.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Jenkov
Checked or Unchecked Exceptions?
This tutorial covers the arguments for and against checked and unchecked exceptions in Java.