
آموزش اصول برنامه نویسی صحیح در سی شارپ
آموزش اصول برنامه نویسی صحیح در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی برترین ترفندها (Best Practice های) برنامه نویسی سی شارپ است که با نام اصلی C# Best Practices: Improving on the Basics از شرکت Pluralsight منتشر شده است.
سی شارپ چیست؟
سی شارپ یک زبان برنامه نویسی همه منظوره، مدرن و شی گرا است. سی شارپ یکی از زبانهای زیرساخت مشترک زبان است و نسخه فعلی سی شارپ نسخه 7.2 است. سی شارپ از لحاظ syntac شباهت زيادي به زبان جاوا دارد و براي كاربراني كه از C و ++C يا جاوا آشنا هستند آسان است.

در واقع زبان سی شارپ از بهترین شیوه های کد نویسی به حساب می آید. به عبارت دیگر بهترین شیوه های برنامه نویسی مجموعه ای از قوانین غیررسمی است که جامعه توسعه نرم افزار برای کمک به بهبود کیفیت نرم افزار به کار می گیرد. بسیاری از اپلیکیشن های کامپیوتری برای مدت زمان طولانی مورد استفاده قرار می گیرند. بنابراین هر اپلیکیشنی به قانونی نیاز دارد که هم توسعه اولیه و هم نگهداری و پیشرفت بعدی توسط افرادی غیر از برنامه نوسان را آسانتر کند. در واقع در زبان برنامه نویسی سی شارپ، قوانین به صورتی است که امکانات را داراست و همین نیز باعث محبوبیت آن شده است.
مزیت های سی شارپ
سی شارپ دلایل زیادی برای محبوبیت و تقاضا دارد. در زیر به چند دلیل اشاره می شود:
شروع آسان: سی شارپ یک زبان سطح بالا است، بنابراین به سایر زبانهای برنامه نویسی محبوب مانند C و ++C و جاوا نزدیکتر است و بنابراین یادگیری آن برای همه آسان می شود.
به طور گسترده برای توسعه Desktop و Web Application استفاده می شود: سی شارپ به طور گسترده ای برای توسعه اپلیکیشن های وب و اپلیکیشن های Desktop استفاده می شود. سی شارپ یکی از محبوب ترین زبان هایی است که در برنامه های دسکتاپ حرفه ای استفاده می شود. اگر کسی می خواهد اپلیکیشن های مایکروسافت ایجاد کند، سی شارپ می تواند اولین انتخاب باشد.

جامعه برنامه نویسان: هرچه جامعه بزرگتر باشد، ابزارها و نرم افزارهای جدیدی برای بهتر شدن آن در حال توسعه است. سی شارپ دارای یک جامعه بزرگ است، بنابراین پیشرفت ها باعث می شود در سیستم وجود داشته باشد و منقرض نشود.
توسعه بازی: سی شارپ به طور گسترده ای در توسعه بازی مورد استفاده قرار می گیرد و همچنان به تسلط خود ادامه می دهد. سی شارپ با مایکروسافت ادغام می شود و بنابراین مخاطبان زیادی دارد. ویژگی های سی شارپ مانند Automatic Garbage Collection و interface ها و object-oriented و یا شی گرایی، سی شارپ را به یک زبان توسعه دهنده بازی، محبوب تبدیل می کند.
طراحی Class، Constructor و Property در کدهای C#
کیفیت کد C# تا حد زیادی به نحوه تعریف کلاسها و مشخص کردن مسئولیت اعضای آنها وابسته است. این آموزش با بررسی تعریف و ساخت کلاسهای مناسب، به تصمیمهایی میپردازد که بر خوانایی و استفاده صحیح از آبجکتها اثر میگذارند. مباحث مربوط به `Constructor`ها و نمونهسازی Objectهای مرتبط کمک میکنند فرایند ایجاد یک شیء با وضعیت اولیه مورد انتظار هماهنگ باشد. همچنین بررسی `Nullable Type`ها توجه را به موقعیتهایی جلب میکند که یک مقدار ممکن است وجود نداشته باشد. این موضوع در طراحی مدلهای داده و APIهای داخلی اهمیت دارد، زیرا باید مشخص باشد کدام مقادیر واقعاً میتوانند تهی باشند.
بخش مربوط به Fieldها و Propertyها به نحوه تعریف اعضای کلاس و فراهم کردن دسترسی مناسب به دادهها میپردازد. در کنار Propertyهای معمولی، `Expression-bodied Property`ها نیز بررسی میشوند تا با شکل فشردهتری برای تعریف اعضایی آشنا شوید که بدنه سادهای دارند. انتخاب میان Field، Property و روشهای مختلف تعریف آنها باید با مسئولیت کلاس و نحوه مصرف دادهها هماهنگ باشد. این آموزش برای توسعهدهندگان C# مناسب است که میخواهند کد موجود را بازبینی کنند و ساختار کلاسها را طوری بهبود دهند که هدف هر عضو روشنتر باشد و تغییرات بعدی بدون پیچیده شدن غیرضروری پیادهسازی انجام شوند.
نوشتن متدهای روشن با پارامترهای دقیق و Return Value مشخص
طراحی یک متد فقط به نامگذاری آن محدود نیست؛ پارامترها، بدنه متد و مقدار بازگشتی نیز باید رفتار مورد انتظار را بهروشنی بیان کنند. این آموزش به ایجاد متدهای مناسب و بررسی `Method Signature` میپردازد و نشان میدهد چگونه میتوان پارامترها را واضحتر تعریف کرد. وقتی ورودیهای یک متد نامشخص یا بیش از حد پیچیده باشند، فهمیدن مسئولیت آن دشوار میشود و استفاده نادرست از آن احتمال بیشتری پیدا میکند. توجه به پارامترهای روشن و نوع خروجی مناسب کمک میکند قرارداد متد برای مصرفکنندگان قابلفهمتر باشد و تغییرات آینده با ابهام کمتری انجام شوند.
در بخشهای دیگر، `Method Chaining` و کاربردهای متفاوت Propertyها بررسی میشوند و ارتباط این انتخابها با سبک طراحی کد روشنتر میشود. Method Chaining میتواند در APIهایی که خروجی هر فراخوانی امکان ادامه زنجیره را فراهم میکند مفید باشد، اما باید بررسی شود که این سبک با هدف متدها سازگار است یا خیر. آموزش همچنین Unit Testing را در میان موضوعات خود مطرح میکند تا ارتباط میان طراحی کد و امکان بررسی رفتار آن در تستها مورد توجه قرار گیرد. با در نظر گرفتن این اصول، میتوانید متدهایی بنویسید که مسئولیت مشخصی دارند، نتیجه آنها قابلپیشبینیتر است و تست کردن رفتارشان آسانتر انجام میشود.
سرفصل مطالب آموزش ویدیویی اصول برنامه نویسی صحیح در سی شارپ
فصل اول: بررسی این دوره آموزشی- بررسی این دوره آموزشی
- معرفی این دوره آموزشی
- پیش نیاز های این دوره آموزشی
- چگونه از این دوره آموزشی استفاده کنیم؟
- طرح کلی دوره آموزشی
- مقدمه
- معماری کاربردی
- کلاس چیست؟
- انواع کلاس ها
- تست واحد (Unit Testing)
- سوالات متداول
- مقدمه
- ایجاد کلاس
- آموزش عملی ساختت یک کلاس
- تعریف توابع سازنده (Constructor ها)
- بررسی Namespace ها
- ایجاد یک کلاس Static
- تعریف Singleton
- سوالات متداول
- مقدمه
- بررسی Reference ها و Using
- استفاده کردن از یک کلاس
- بررسی Object Initialization
- نمونه سازی Object های مرتبط
- بررسی Null
- سوالات متداول
- مقدمه
- Fieldهای پشتیبان
- بررسی Nullable Type ها
- بررسی Constants
- بررسی Read-only Field ها
- مقایسه Constant ها و Read-Only ها
- سوالات متداول
- مقدمه
- کدنویسی Property ها
- پیاده سازی خودکار Property ها
- قابلیت دسترسی در Property ها
- کاربرد های دیگر از Property ها
- مزیت های Property ها
- سوالات متداول
- مقدمه
- ایجاد کردن یک متد: بررسی Signature
- ایجاد کردن یک متد: بررسی بدنه و Return Value
- نسخه نمایشی از ایجاد کردن یک متد
- از Property ها استفاده کنیم یا از متد ها؟
- بررسی Method Overloading
- بررسی Method Chaining
- بررسی Method Overriding
- بررسی Expression-bodied Method ها
- سوالات متداول
- مقدمه
- بهبود دادن پارامترهای درون Method Signature
- بررسی Named Argument ها
- تعریف کردن Enumerated Parameter ها
- بررسی Optional Parameter ها
- بررسی پارامترهای ref و out
- سوالات متداول
- مقدمه
- کارکردن با متد های کلاس String در .NET
- کارکردن با Null ها
- تعریف کردن Verbatim String Literal ها
- قالب بندی رشته ها
- استفاده کردن از String Interpolation
- ساختن Long String ها
- سوالات متداول
- مقدمه
- بررسی Clean Code
- کسب اطلاعات بیشتر
- جمع بندی







