Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۱۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
نسخه ۴.۰ فریم‌ورک Angular!؟ مدتها بود برنامه‌نویسان منتظر نسخه ۲.۰ این فریم‌ورک محبوب بودند که ناگهان صحبت از نسخه ۴.۰ این فریم‌ورک شده‌است.
علت این تغییر نسخه سریع و عجیب در حقیقت هماهنگ شدن این محصول با Semantic Versioning است. تیم Angular برای هماهنگی با استاندارد Semantic Versioning و اطلاع‌رسانی بهتر در مورد محتوای هر ریلیز، این استاندارد را پیاده‌سازی کرده‌است. در این روش از هر نسخه می‌توان موارد زیر را فهمید:
- Signaling content of releases
- Time-based release cycles
- Deprecation Policy
- Distinction between stable and experimental releases

برای توضیحات بیشتر می‌توانید پست زیر از Igor Minar را در بلاگ رسمی تیم Angular بخوانید.

https://angularjs.blogspot.com/2016/10/versioning-and-releasing-angular.html

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
https://ow.ly/tiQx30avyhr

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

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


___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. آینده در دستان مدیران محصول (Iran Agile)

https://t.iss.one/SoftwarePhilosophy/829

۲. مقایسه تکنولوژی‌های React Native و Xamarin Forms برای پروژه‌های Cross Platform

https://t.iss.one/SoftwarePhilosophy/830

۳. پیش از دیزاین، داستان بنویسید (دیزاین)

https://t.iss.one/SoftwarePhilosophy/831

۴. مدیریت خطا یا Exception Handling

https://t.iss.one/SoftwarePhilosophy/832

۵. نسخه ۴.۰ فریم‌ورک Angular

https://t.iss.one/SoftwarePhilosophy/835

ـــــــــــ

@SoftwarePhilosophy
Forwarded from Iran Agile
🔴 بومیان جزیره مدرن می‌شوند

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

نیروهایی که هدست های پیشرفته داشتند در کنار باند بودند و کمک می کردند که هواپیما سالم بر روی زمین بنشیند. پس از فرود هر هواپیما، مقداری مواد غذایی و … به بومیان داده می شد که آنها را بسیار خوشحال میکرد و فکر می کردند این پرندگان از بهشت می آیند و به نوعی این یک مراسم مذهبی و آیینی است.

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

این پدیده بعدا با عنوان Cargo Cult شناخته شد و عملا تبدیل به یک ضرب المثل یا اصطلاح زبان انگلیسی شد. (البته نوشته بالا یک تفسیر از این داستان بوده و تفاسیر دیگری نیز وجود دارد)

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

این اتفاق در مورد خیلی از پدیده ها افتاده است، معماری سرویس گرا، RUP – Agile و UX و … .

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

https://goo.gl/A5wF9s

@iranagile
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
امکانات اضافه شده در C# 7.0 در نسخه Visual Studio 2017 قابل استفاده شدند. از جمله این امکانات می‌توان به موارد زیر اشاره کرد.
- Pattern Matching
- Out Variables
- Locals and Ref Returns
- Generalized Async Return Types

بیشتر این مفاهیم قبلا هم معرفی شده‌بودند ولی در این میان مفهوم Generalized Async Return Types از بقیه جدیدتر به نظر می‌رسد. در لینک زیر با استفاده از این مفهوم به جای Task<T> از یک تایپ جدید با نام ValueTask<T> استفاده شده که کاربردهای بسیار زیادی می‌تواند داشته باشد. همچنین برنامه‌نویسان می‌توانند خودشان تایپ‌های جدیدی را به این منظور طراحی کنند.

لینک زیر امکانات جدید اضافه شده را به همراه مثال توضیح داده‌است.

https://docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7

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

https://ow.ly/3bpp30ay2f3

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

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


___
مفهوم box model در css یکی مهمترین مفاهیمی است که برنامه‌نویسان را قادر می‌سازد چینش‌های مختلف مورد نیاز را پیاده‌سازی کنند. همیشه تنظیم مقدار position با absolute یا relative یا مقادیر دیگر، و یا تنظیم مقدار display با inline یا block برای رسیدن به چینش مورد نظر دردسر دارد، در صورتیکه ندانید آنها چطور کار می‌کنند. چون نمی‌دانیم این دو متغییر ساده چطور کار می‌کنند معمولا شروع به تنظیم شانسی این مقادیر می‌کنیم تا به چینش مناسب برسیم، اگر برسیم!!
مطلب زیر، مستندی بسیار دقیق در مورد نحوه کار box model در css است و مطالعه آن به تمام کسانی که با css کار می‌کنند پیشنهاد می‌شود. این مستند در واقع استانداردی است که توسط کنسرسیوم وب تنظیم شده و تمام مرورگر‌ها موظفند طوری کار کنند که مطابق با این استاندارد باشد.

https://www.w3.org/TR/CSS2/visuren.html

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

https://ow.ly/VgEs30cHTKm

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

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


___
Forwarded from فلسفه دیزاین
کاهش پیچیدگی بصری،
روندی جدید در دیزاین

گاهی که بر سر برتری سیستم‌عامل‌های موبایل بحث میشه، به یاد روندی میافتم که این سیستم‌عامل‌ها از ابتدای شکل‌گیری‌شون طی کردن. به نظرم اگر کمی از ارتفاع بالاتر به مسیر طی شده‌شون نگاه کنیم، متوجه می‌شیم که ویژگی‌هاشون کاملا به سمت همدیگه حرکت کرده.
برای مثال وقتی iOS، بخشی رو با عنوان Notification Center اضافه کرد، کاربران Android می‌گفتند که این ویژگی از Android کپی شده. یا درباره برخی ویژگی‌ها بالعکس.

دلیل این همگرایی احتمالا کاربرها هستند. در دیزاین User-Centered راحتی کاربر در کار با سرویس در بالاترین اولویت قرار داده می‌شه. با فرض اینکه کاربران همه سیستم‌عامل‌های عمومی، انسانهای مشابهی هستند، می‌شه این همگرایی رو منطقی دونست.

با این مقدمه می‌خوام مقاله امروز رو معرفی کنم که درباره روند (Trend) جدیدی در دیزاین اپلیکیشن‌ها صحبت می‌کنه که مربوط میشه به کاهش پیچیدگی بصری یا Complexion Reduction.
در این مقاله آقای Michael Horton، اپلیکیشن‌های Instagram، Apple Music، Medium و Airbnb رو مورد بررسی قرار داده و عنوان می‌کنه که روند جدید دیزاین این اپلیکیشن‌ها همگی به سمت سادگی، کاهش رنگ‌ها و همچنین تاکید روی عناوین صفحات با ضخیم‌تر کردن فونت مورد استفاده، رفته. به طوری که شاید با کمی اغماض، بشه تمام این اپلیکیشن‌ها رو زیرمجموعه یک شرکت بدونیم.

بخش جالب این موضوع اینه که به نظر می‌رسه تولد این نوع دیزاین به خاطر مطالعه و تحقیق روی کاربرهاست و هر کدوم از این اپلیکیشن‌ها بصورت جداگانه‌ای به نتایجی مشابه رسیدند.

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

امیدوارم از مقاله امروز لذت ببرید.

https://www.huffingtonpost.com/entry/complexion-reduction-a-new-trend-in-mobile-design_us_577d828fe4b05b4c02fb8b07

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

#تحلیل #روند #رابط_کاربری #اپلیکیشن
@Dexign دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۱۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پیش‌بینی ۱۰ ترند اصلی Web Design در سال ۲۰۱۷ عنوان مقاله‌ای است که توسط Grace Jia نوشته شده‌است. او در سال‌های قبل هم پیش‌بینی‌هایی را برای دنیای UX ارائه داده بود. ترندهای اصلی از دید این نویسنده در لیست زیر آمده‌اند:
1. Bold Typography
2. Bright Gradient
3. Vivid Color Layer
4. Conversation Interface
5. Virtual Reality
6. Micro Interaction
7. Emotional Intelligence Design
8. Better Collaboration with Design and Development
9. Merging of UX and Service Design
10. Credibility is the King

https://www.linkedin.com/pulse/top-10-web-design-trend-predictions-2017-grace-jia

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
https://ow.ly/qNGe30aArnm


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

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


___
Forwarded from Iran Agile
🔴 چگونه "نه" بگوییم؟

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

🌐 https://goo.gl/YmPYYz

@iranagile
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. بومیان جزیره مدرن می‌شوند (Iran Agile)
#agile
https://t.iss.one/SoftwarePhilosophy/837

۲. امکانات اضافه شده در C# 7.0 در نسخه Visual Studio 2017 قابل استفاده شدند.
#csharp #visualstudio
https://t.iss.one/SoftwarePhilosophy/839

۳. مفهوم box model در css
#css #boxmodel
https://t.iss.one/SoftwarePhilosophy/840

۴. کاهش پیچیدگی بصری، روندی جدید در دیزاین (دیزاین)
#design #ux
https://t.iss.one/SoftwarePhilosophy/841

۵. پیش‌بینی ۱۰ ترند اصلی Web Design در سال ۲۰۱۷
#ui #ux
https://t.iss.one/SoftwarePhilosophy/843

۶. چگونه "نه" بگوییم؟ (Iran Agile)
#communication
https://t.iss.one/SoftwarePhilosophy/8

ـــــــــــ

@SoftwarePhilosophy
مفهوم Regex در زبان‌های برنامه‌نویسی برای تشخصی الگوهای متنی بسیار کاربردی است. یکی از مهمترین مشکلات Regex پیچیدگی آن هنگام نوشتن و مهم‌تر از آن پیچیدگی آن در هنگام نگهداری است. به عبارت دیگر Regex های نوشته شده دارای maintainablity پایینی هستند و نمی‌توان آن‌ها را به راحتی تغییر داد.
یکی از پروژه‌های جذابی که برای رفع این مشکل ساخته شده پروژه Sprache است. این پروژه بر اساس ایده‌هایی از زبان Haskell ساخته شده که در آن از پیاده‌سازی Monaidc استفاده شده. فهم عبارات مشابه Regex در این کتابخانه بسیار ساده ‌است. یک نمونه از عبارات ساخته شده توسط این کتابخانه به شکل زیر است:

Parser<string> identifier =
from leading in Parse.WhiteSpace.Many()
from first in Parse.Letter.Once()
from rest in Parse.LetterOrDigit.Many()
from trailing in Parse.WhiteSpace.Many()
select new string(first.Concat(rest).ToArray());

همانطور که می‌بینید ساخت یک Parser توسط این ابزار بسیار خواناتر است و قابلیت نگهداری بسیار بالاتری دارد.

توضیحات کامل‌تر و منابع بهتری در مورد این ابزار کاربردی را می‌توانید در صفحه گیت این پروژه پیدا کنید.

https://github.com/sprache/Sprache

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

https://ow.ly/nNwy30cRr07


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

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


___
#پست_مجدد این پست تا به حال بیش از ۱۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یک فیچر کوچک، ولی بسیار بزرگ در Visual Studio 2017 که طرفداران زیادی پیدا کرده نحوه برخورد با NullReferenceException است. این فیچر در نحوه نمایش این نوع خطا در IDE خود را نشان می‌دهد. به این صورت که اگر برای مثال در عبارت person.Parent.FirstName مقدار Parent برابر با null باشد و باعث خطای NullReferenceException شود، در خطایی که نمایش داده می‌شود دقیقا اشاره می‌شود کدام قسمت null بوده. برای مثال دقیقا گفته می‌شود که person.Parent برابر null بوده و باعث بروز خطا شده‌است.

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

https://blogs.msdn.microsoft.com/devux/2017/03/18/the-small-big-feature-in-visual-studio-2017/

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

https://ow.ly/dnIZ30aGM7L

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

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


___
Forwarded from فلسفه دیزاین
کتاب‌هایی که دیدِ من را برای همیشه تغییر داد
(از زبان Julie Zhuo، معاون دیزاین فیسبوک)

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

با این مقدمه برسیم به مقاله امروز که از Julie Zhuo دوست‌داشتنی، معاون دیزاین محصول شرکت معظم فیسبوک هست. ایشون هر هفته به یکی از سوالات خوانندگان مطالب‌ش جواب میده و این بار به سوالی جواب میدن که ازشون خواسته کتاب‌هایی رو که باعث شده زندگی و دیدشون کاملا تغییر بکنه معرفی کنن.
خانم Zhuo در این مقاله و در جواب سوال مطرح شده، کتاب‌هایی رو در موضوعات مختلفی مثل تفکر و روانشناسی، دیزاین و مدیریت معرفی کردن و توضیح کوتاهی درباره‌ش دادن.
شخصا سه تا از کتابهایی که معرفی کردن رو خونده‌م و به نظرم قطعا لیست تاثیرگذاری هست.

در بخشی از مقاله به این موضوع اشاره شده که شاید بهتر باشه به جای تعداد کتاب‌های خونده شده، به مقدار برداشتی که از کتاب‌های خونده شده‌مون داشتیم فکر کنیم.
به نظرم زاویه دید جالب و هیجان‌انگیزیه.

ازتون دعوت می‌کنم همین حالا این مقاله و لیست کتاب‌های داخلش رو مرور کرده و برای خوندنشون برنامه‌ریزی کنید.

https://medium.com/the-year-of-the-looking-glass/books-that-changed-my-perspective-502c25baeeaa

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

#معرفی_کتاب #مفاهیم #معرفی_منابع
@Dexign دیزاین

___
Forwarded from Iran Agile
🔴 برزخ مدیریت در ایران

چند روز پیش یکی از همکاران در گروه تلگرام شرکت، مطلبی در مورد اهمیت خصوصیت‌های رهبری برای مدیران نوشته بود، اینکه رهبران باید انگیزش بخش باشند، به جای دخالت در جزئیات باید چشم‌انداز درست ایجاد کنند و آن را به اشتراک بگذارند و… . این نوشته من را به فکر فرو برد که “فکر نکنم کسی مخالف با این شیوه مدیریت و رهبری باشد، ولی چرا در عمل اتفاق نمی‌افتد؟”

مدیریت در برزخ

کتاب ها، مقالات و آموزش های جدید همه مبتنی بر مبانی رهبری است، همه جا دائم در مورد رهبری می شنویم، رهبر خدمت گذار، رهبر کاریزماتیک. همه این منابع برای ما یک چشم انداز از آینده مدیریت ترسیم کردند که به کجا باید برسیم.

اما وقتی اوضاع خوب است، ابتدای پروژه است، افراد با هم خوب رفتار می کنند، کارها خوب جلو میرود، ما میتوانیم رهبران خوبی باشیم. همه را در تصمیم گیری دخالت می دهیم، با اعضای تیم احساس راحتی می کنیم، نگران اعضای تیم هستیم و … . در اینستاگرام عکس میگذاریم، این تیم عالی ترین تیم دنیاست، از ما بهتر وجود ندارد…

اما وقتی اوضاع خراب می شود، کارها خوب جلو نمیرود، نوع رفتار ما عوض می شود، احساس می کنیم، اینها شعور آزادی رو ندارند، دموکراسی برای خارجی ها است، با اینها باید مثل عمله برخورد کرد، باید یکی رو بذاری بالای سر اینها و … .

برزخ کجاست؟

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

تغییر از رئیس بودن به رهبری، یک پارادایم شیفت است

این را باید قبول کنیم که سالها، رئیس بودن در کارخانه ها و ساختمان سازی ها و … جواب داده است، صدها سال است که ما به این شیوه، سرکارگر با دیگران برخورد کردیم، ما سرکارگر بودیم و دیگران کارگر، آنها به رفتار زیردست بودن(وقتی رئیس نیست کار نمی کنیم) عادت کردن و ما هم به رئیس بودن. تغییر از پارادایم به یک پارادایم دیگر بسیار کار سختی است.

چرا سرعت این تغییر کند است؟

در چند شرکت اخیری که بودم، معمولا افراد باتجربه در یک رشته خاص مدیر همان بخش یا پروژه می شوند، مثلا یک برنامه نویس خوب تبدیل به مدیرپروژه می شود، یک فروشنده خوب تبدیل به مدیرفروش می شود و … .

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

برای مثال، برنامه نویسی بعنوان مدیرپروژه یا مدیرتیم، به همان میزان که زمان برای خواندن مقالات تخصصی در حوزه برنامه نویسی می کند، به همان میزان زمان برای ایجاد تیم یا انگیزش نفرات سپری نمی کند؟!

یکی از مشکلات مهم این است که صرفا افراد از داشتن عنوان “مدیر” لذت می برند، ولی اینکه این مدیر چه تخصص هایی باید داشته باشد، بعنوان یک مدیر چه مسیر رشدی باید طی کند، چه مهارت هایی باید در خود تقویت کند؟

راه عبور از این برزخ چیست؟

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

https://goo.gl/jr78bn

@iranagile
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
درک ساختار فایل web.config معمولا کمک زیادی به برنامه‌نویسان می‌کند. اغلب برنامه‌نویسان فقط با قسمت‌های خاصی از این فایل کار می‌کنند و نیازی به تغییر سایر قسمت‌ها ندارند. ولی با این حال، درک درست معماری این فایل کمک زیادی به نحوه تنظیم آن می‌کند. ساختار سلسله مراتبی این فایل و اینکه هر فایل web.config معمولا ویژگی‌هایی را از فایل‌های دیگر به ارث می‌برد معمولا مغفول واقع می‌شود. دانستن این نکته که می‌توان با ایجاد چند فایل web.config در فولدرها از ویژگی ارث‌بری آن استفاده کرد می‌تواند کمک زیادی به طراحی این فایل‌ها کند.

مقاله زیر ۱۰ نکته‌ مهمی که برنامه نویسان باید در مورد این فایل بدانند را شرح داده‌است.

https://weblogs.asp.net/jongalloway/10-things-asp-net-developers-should-know-about-web-config-inheritance-and-overrides

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

https://ow.ly/Ojts30aISN8

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

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


___
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یک کد خوب نیاز به مستندسازی قوی دارد. در C#، برای این کار میتوانید از XML Documentation استفاده کنید که با سه اسلش ///، درست قبل از بلاک کد مربوطه شروع می شود.
شما می توانید خودتان نیز تگ های مورد نیاز خود را ایجاد کنید یا از لیست تگهای پیشنهادی موجود استفاده کنید.
پرکاربردترین تگ های پیشنهادی شامل موارد زیر است:
/// <summary>
/// Class or Method or Property or… summary documentation goes
///here.</summary>

/// <remarks>
/// Longer comments can be associated with a type or member through
/// the remarks tag.</remarks>


/// <value>
/// A value tag is used to describe the property value.</value>


/// <param name="s"> Parameter description for s goes here.</param>


/// <seealso cref="System.String">
/// You can use the cref attribute on any tag to reference a type or member
/// and the compiler will check that the reference exists. </seealso>


/// <returns>
/// Return results are described through the returns tag.</returns>


زمانی که با آپشن /doc کامپایل کنید، کامپایلر از روی تمام تگ‌های xml موجود در کد فایل داکیومنت XML را می سازد.
لینک زیر شرح کاملی از xml documentation و نحوه استفاده آن ارایه می دهد.

https://msdn.microsoft.com/en-us/library/z04awywx.aspx

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

https://ow.ly/Pzau30aN6fd

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

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

___