5 نکته برای تسلط بر هنر کد نویسی تمیز

برنامه نویسان خوب کدهای خسته کننده می نویسند. برنامه نویسان بزرگ کدهای واقعا خسته کننده می نویسند.زمانی که در یک سال گذشته با این نقل قول در اینترنت برخورد کردم، آن نقل قول من را با مفهموم کد نویسی تمیز آشنا کرد.کد تمیز دقیقا چیست؟به زبان ساده کد تمیز به سلسه ای از کدها اشاره دارد که خواندن و درک آن آسان است. برخی از ویژگی های بارز کد تمیز عبارتند از:بار شناختی خواننده را کاهش می دهدشامل متغیرها و توابع با نام شهودی استبهترین روش ها را برای کدنویسی دنبال می کندچرا از کد نویسی تمیز استفاده کنم در صورتی که کد من بدون آن هم کار خواهد کرد؟خوشحالم که این سوال در ذهن شما ایجاد شد. کد تمیز به معنای نوشتن کدی نیست که کار کند، بلکه نوشتن کدی است که خواندن و نگهداری آن در طولانی مدت آسان باشد. همانطور که از این نمودار می بینید، هزینه نگهداری از کد کثیف به شدت در طول زمان افزایش می یابد، در حالی که در مورد کد تمیز، نسبتا ثابت می ماند.کد تمیز کوتاه‌ ترین یا هوشمندانه‌ ترین کد نیست، اما کد ظریفی است که درک آن کمترین تلاش را می‌طلبد.برنامه نویسی به همان اندازه که علم است هنرهم است. در اینجا چند نکته برای کمک به نوشتن کد تمیز وجود دارد.1. نام های متغیر با معناکاملاً واضح است که هیچ کس تمام محاسبات را به صورت ذهنی انجام نمی دهد تا بررسی کند که یک متغیر چه چیزی را ذخیره می کند؛ این نامِ انتخابی شما برای یک متغییر است که به فهمیدن این امر کمک می‌کند.مثال 1const x = n.filter(e => e > 0);مثال 2const positiveElements = numbers.filter(num => num > 0);همانطور که می بینید درک مثال دوم بسیار ساده تر از مثال اول است.در مورد بولی، نام متغیر باید سوالی باشد که بتوان به آن با بله یا خیر پاسخ داد، مانندconst isValid = false; const hasAuthorization = true;2. توابع خود توضیحیهنگام نوشتن توابع یا متدها باید به دو نکته توجه داشت:پیروی از اصل مسئولیت واحد (SRP) نام توابع باید از افعال باشد (save, submit)اصل مسئولیت واحد (SRP) بیان می کند که یک تابع باید فقط یک کار خاص را انجام دهد. یک مثال از این می‌تواند تابعی باشد که داده ها را به سرور ارسال می کند، تابعی که داده ها را به سرور ارسال می‌کند نباید داده ها را اعتبار سنجی کند و اعتبار سنجی داده ها باید در تابعی جداگانه انجام شود.مثال برای SRPدو اصل خوب دیگر وجود دارد که باید از آنها پیروی کرد:بدنه تابع نباید بیش از 2 سطح تودرتو داشته باشدیک تابع باید حداکثر 3 آرگومان داشته باشد3. توابع مشابه را با هم گروه کنیدتوابع مرتبط باید با هم در یک کلاس گروه بندی شوند و به ما کمک کنند کد خود را به صورت بخش بندی نگه داریم.در اینجا متوجه می‌شویم که کلاس IOHelper فقط توابع را برای عملیات io (ورودی- خروجی) با هم گروه‌بندی می‌کند، بدون اینکه هیچ کاربردی از خود داشته باشد.4. تعداد کامنت ها را به حداقل برسانیداین مورد ممکن است برای برخی از مبتدیان غیر منطقی به نظر برسد، اما این یک اصل مهم در کد تمیز است. کدی که شما می نویسید باید خود توضیحی باشد، یعنی هرکسی که کد شما را مشاهده می کند نباید برای درک عملکرد آن به کامنت ها تکیه کند و کد باید خودش قادر به توضیح کارکرد خود باشد.تنها در موارد خاص است که شما مجبور به کامنت گزاری می‌‌شوید و در اکثر مواقع، کد شما بهترین کامنت شماست.5. قوانین قالب بندی کدکدها همیشه باید از مجموعه ای دقیق از قوانین قالب بندی پیروی کند. همچنین ایده خوبی است که از قالب‌بندی مانند black یا prettier برای خودکار کردن قالب‌بندی استفاده کنید.ساختار پروژه باید قبل از شروع پروژه تصمیم گیری شود و همه افرادی که روی آن کار می کنند باید از آن آگاه باشند و موافقت کنند که از آن پیروی کنند، زیرا ساختار پروژه وابسته به سلیقه کد نویس است و هرکس یک ساختار خاص را نسبت به ساختار دیگر دوست دارد.متغیرها و قرارداد نامگذاری تابع نیز باید از قبل مشخص شده باشد (isValid یا hasVality و غیره) و موارد خاص زبان باید در نظر گرفته شود (مثلاً: snake case در پایتون و camel case در JS/TS).در مورد نامگذاری متغییرها به روش های camel case و snake case بخوانید.snake_case_variable = &quotvalue&quotcamelCaseVariable = &quotvalue&quot CaseVariable = &quotvalue&quotنتیجههمانطور که قبلاً نیز ذکر شد، کد تمیز کوتاه ترین کد نیست، بلکه کدی است که درک آن بسیار ساده است. پیروی از این اصول به شما کمک می‌کند نه با بهبود مهارت‌های کدنویسی، بلکه با بهبود مهارت‌های نرم‌افزاری مورد نیاز برای کدنویسی، کدنویس بهتری شوید، زیرا به شما یاد می‌دهد چگونه کد خود را برای افراد غیر فنی توضیح دهید.منبع 5 Tips to Master the Art of Clean Code