c# Clean Code: نوشتن کدی که انسان بتواند آن را درک کند

مقدمه:
بسیاری از برنامه نویسان می توانند کدی بنویسند که کار می کند، اما برنامه نویسان خوب کدهایی را می نویسند که درک آن برای انسان آسان باشد. آخرین باری را که مجبور به حفظ کد شخص دیگری بودید فکر کنید. چند بار تا به حال هوس کرده اید که همه چیز را دور بریزید و از صفر شروع کنید؟ چنین شرایطی زمانی ایجاد می شود که کد تمیز نباشد. اما منظور از پاک بودن کد چیست؟ خواندن، نگهداری، گسترش و اصلاح کد پاک توسط هر توسعه دهنده، نه فقط نویسنده اصلی، آسان است.
در این مقاله، اهمیت کد پاک را بررسی میکنیم، نمونههای عملی از اصولی مانند KISS، DRY و SOLID را به اشتراک میگذاریم، و با استفاده از ویژوال استودیو یک راهحل عملی برای تبدیل کدهای آشفته به کد تمیز ارائه میکنیم.
1. چرا کد پاک اهمیت دارد:
نرم افزار ناملموس است و شما می توانید آن را به روش های بی پایان بنویسید. در حالی که شما به قوانین فیزیک مقید نیستید، هرچه کد شما در ابتدا بهتر باشد، مقیاس گذاری و اصلاح آن در طول زمان آسان تر خواهد بود. کد پاک تضمین می کند که برنامه شما انعطاف پذیر، قابل نگهداری و آینده نگر است. با این حال، هر چند وقت یکبار کدی را با این هدف می نویسیم که «بعداً آن را تعمیر کنیم»؟ بیشتر اوقات، که بعداً هرگز نمی آید. بنابراین، نوشتن کد تمیز از همان ابتدا سردردهای آینده را نجات می دهد.
2. اصول کد پاک:
-
KISS (ساده نگه دار، احمقانه): کد خود را بیش از حد پیچیده نکنید. راه حل ها باید تا حد امکان ساده و بدون پیچیدگی غیر ضروری باشند.
-
DRY (خودت را تکرار نکن): از تکرار منطق خودداری کنید. هر دانش باید یک نمایش واحد و بدون ابهام در سیستم شما داشته باشد.
-
یاگنی (شما به آن نیاز ندارید): ویژگیها یا کدهایی را که فکر میکنید در آینده به آن نیاز دارید اضافه نکنید – فقط روی آنچه اکنون ضروری است تمرکز کنید.
-
اصول جامد: این اصول نحوه ساختار کلاسها و اشیاء خود را راهنمایی میکنند تا نگهداری و گسترش کد شما آسانتر شود.
- اس: اصل مسئولیت واحد
- O: اصل باز/بسته
- L: اصل جایگزینی لیسکوف
- من: اصل جداسازی رابط
- D: اصل وارونگی وابستگی
-
ترکیب برتری بر ارث: به جای ارث بردن رفتار از کلاسهای والد، ترکیب رفتار از چندین کلاس کوچکتر را ترجیح دهید. این رویکرد کد شما را انعطاف پذیرتر و نگهداری آسان تر می کند.
-
تفکیک نگرانی ها: هر ماژول یا کلاس باید مسئولیت مشخصی داشته باشد. این باعث میشود سیستم شما راحتتر درک شود و در صورت لزوم آن را اصلاح کند.
3. چگونه ما کد پاک را یاد می گیریم:
در این آموزش، من شما را با نمونههای واقعی آشنا میکنم، که با کدهای نامرتبی که در شرکتم، Carved Rock با آن مواجه شدم، شروع میکنم. ما از ویژوال استودیو برای تبدیل این کد کثیف به کد تمیز و قابل نگهداری استفاده خواهیم کرد.
در اینجا نحوه کار فرآیند یادگیری آمده است:
- رویکرد قبل و بعد: در هر ماژول، نمونههایی از کدهای بد (قبل) را بررسی میکنیم و سپس آنها را به کد پاک (بعد) تبدیل میکنیم.
- اصول دنیای واقعی: مثالها اصولی مانند KISS و DRY را در عمل نشان میدهند، بنابراین میتوانید به راحتی تغییرات را با هم مقایسه کنید.
4. مثال عملی با ویژوال استودیو:
بیایید یک اصل خاص را در نظر بگیریم –بوسه– به عنوان نمونه در زیر قطعه ای از کد آشفته موجود در پوشه “before” آمده است:
// BEFORE: Complicated and messy code that violates KISS
public class ProductService
{
public Product GetProductDetails(int id)
{
var product = // fetch product from database...
if (product == null)
{
throw new Exception("Product not found");
}
return product;
}
}
حال، بیایید این را با استفاده از اصل KISS بازسازی کنیم:
// AFTER: Clean and simple code that follows KISS
public class ProductService
{
public Product GetProductDetails(int id)
{
var product = _repository.GetById(id) ?? throw new ProductNotFoundException(id);
return product;
}
}
توجه داشته باشید که چگونه منطق را ساده کرده ایم و آن را مختصرتر و درک آن آسان تر می کنیم. یک استثنای عمومی را با یک استثنای خاص جایگزین کردیم و درهم و برهمی غیر ضروری را حذف کردیم و وضوح را بهبود بخشیدیم.
5. استفاده از این درس ها در Codebase:
هدف از کد پاک این است که درک و کار با کد شما را برای همه آسانتر کند. به یاد داشته باشید، شما فقط کدی را برای کامپیوتر نمی نویسید که بفهمد، بلکه آن را برای توسعه دهنده بعدی (که ممکن است در آینده شما باشید) می نویسید.
6. نتیجه گیری:
با پیروی از اصول کد تمیز مانند KISS، DRY، SOLID و Separation of Concerns، کدی ایجاد میکنید که نگهداری، گسترش و همکاری در آن آسانتر است. در این دوره، خواهید دید که چگونه هر اصل کدهای آشفته را به یک پایگاه کد با ساختار مناسب و قابل نگهداری تبدیل می کند.
بنابراین، بیایید وارد آن شویم و شروع به نوشتن کد تمیز و انسان پسند کنیم که در آزمون زمان مقاومت می کند!