ویرگول
ورودثبت نام
اردوان اسکندری
اردوان اسکندریمینویسم تا پلی بزنم بین دنیای برنامه نویسی و طراحی. مقالات تخصصی کوتاه و نکات مفید روزانه در کانال تلگرام خودم : https://t.me/ardavandesign
اردوان اسکندری
اردوان اسکندری
خواندن ۴ دقیقه·۱۱ روز پیش

بهداشت کُدی را رعایت کنید !

نظافت و بهداشت در کدنویسی
نظافت و بهداشت در کدنویسی

عنوان عجیبیه نه؟ خب، موضوعی که میخوایم بحث کنیم راجبش اونقدر عجیب نیست ولی.

📍کد تمیز یا Clean Code دقیقا چیه؟

ما هدفمون از برنامه نویسی اینه که کدهایی رو بنویسیم که ماشین اونارو بفهمه درسته؟ خب ولی نباید تنها هدفمون این باشه. کدی که ما مینویسیم باید خود ما انسان ها هم قابل فهم و خوانا باشه. طوری نباشه 1 سال بعد برگردیم بالای کدی که خودمون نوشتیم و هیچی نفهمیم از ساختار و کدی که طراحی کردیم.

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

📍چرا انقدر مهمه و باید بهش توجه کنیم؟

یک حقیقتی در کدنویسی هست به نام نسبت 10 به 1. یعنی ما 10 برابر وقتی که برای نوشتن یک کد میذاریم، وقت برای خوندنش میذاریم؛ و این واقعا عین حقیقته. مثلا وقتی میخواید یه آپدیتی انجام بدید یا ریفکتوری انجام بدید و یا مواردی از این قبیل؛ قبل از اینکه کد جدید رو بنویسید میرید و کل کدهاتون رو میخونید و یه راه حلی برای ایده جدیدتون میسازید. پس اینکه کدتون چطوری نوشته شده و چقدر برای انسان ها خواناست اهمیت بالایی داره.

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

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

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

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

📍حالا چطوری میشه کد رو تمیز نوشت؟

یه چک لیست میخوام بهتون بدم خیلی کوتاه و مختصر و مفید و باحال.

توی کدتون این موارد رو چک کنید و اصلاح کنید و سعی کنید از این به بعد این مواردو توی ذهنتون داشته باشید موقع کدنویسی.

✅ نام گذاری درست متغیر ها:

خیلی فرق هست بین متغیر X و متغیر daysSinceLastLogin. و حتی متغیر daysSinceLastLogin هم باز خیلی میتونه متفاوت باشه نسبت به موارد مشابه خودش مثل dayLastLogin. اغلب از اسامی طولانی برای متغیرها میترسن و فکر میکنن اشتباهه در حالی که اگر نیاز باشه باید اسم رو طولانی بنویسیم تا بشه کاملا اون متغیر رو در قالب اسمش درک کرد. حسابی برای انتخاب اسامی متغیر هاتون وقت بذارید.

✅ قانون SRP (Single Responsibility Principle):

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

✅ کامنت به "چرا" جواب میده، نه "چطور":

جاهایی که در کد کامنت میذارید نباید یک قصه طولانی از نحوه عملکرد یه متود یا تابع باشه. صرفا باید یه چرا و توضیح کلی رو بیان کنه. مثلا "verify user after login //"

✅ اعداد به تنهایی مفهومی ندارن :

داخل کد اگر مینویسی مثلا status.code == 404، اون 404 چیه؟ یا مثلا بدترش، status == 2، اون 2 دقیقا چیه؟ عدد جادویی که نیست؛ پس تعریف کن اینارو در قالب متغیر. مثلا const NOT_FOUND_STATUS_COD = 404 یا const int activeStatus = 2.

✅ تله مرگبار حلقه ها:

حلقه های تو در تو کاربردی هستن اما نباید برنامه توی حلقه ها غرق شه. هرموقع دیدی کدت داره عین نوک پیکان تیز میشه "<" یعنی داری زیادی از این حلقه های تو در تو استفاده میکنی و توی یه جهنم گیر افتادی.

بیاید تمیزتز کد بزنیم

💡 شما چه حسی نسبت به کدهای کثیف دارید؟

#فلاتر #برنامه_نویسی #کد_تمیز #مهندسی_نرم_افزار #آموزش

کد تمیزنرم افزاربرنامه نویسیفلاترکدنویسی
۲
۰
اردوان اسکندری
اردوان اسکندری
مینویسم تا پلی بزنم بین دنیای برنامه نویسی و طراحی. مقالات تخصصی کوتاه و نکات مفید روزانه در کانال تلگرام خودم : https://t.me/ardavandesign
شاید از این پست‌ها خوشتان بیاید