مردم کار کردن با کدهایی را ترجیح میدهند که آنالیز، گسترش و اصلاح آنها آسان باشد. وقتی کدها را باکیفیت بنویسید، برنامهنویسان دیگر میتوانند با خیال آسوده روی اعمال تغییرات جدید تمرکز کنند. شما با در اختیار داشتن کدهای باکیفیت میتوانید از تکنولوژیهای بروزتری استفاده کنید. سازگار بودن کد باعث میشود تا انجام بروزرسانیهای آتی آسانتر شود. برای کارکنانی که به تازگی وارد تیم شدهاند، کار کردن با کدهایی با کیفیت بهتر خواهد بود. کیفیت بالای کدها سبب میشود تا درک کردن عملکرد آن برای افراد آسانتر شده و از اتلاف وقت جلوگیری میکند.
یک اشتباه
من با مشتریانی سروکار داشتهام که توسعهدهندگان آنها به جای اصلاح کردن و بهبود کدهای موجود، فقط کدهای بیشتری را به پروژه اضافه میکردند. با کار کردن روی آن پروژهها فهمیدم که افزودن کوچکترین مسائل نیز به زمان بسیار زیادی احتیاج دارد. برای اینکه بتوانیم کدهای موجود در سایر شاخهها را در مخزن ادغام کنیم، به چیزی حدود یک ماه زمان نیاز داشتیم. به خاطر تحت فشار بودن، باگهای متعددی نیز در برنامه به وجود میآمدند.
برنامهنویسان زمان زیادی را در آن پروژهها صرف مسائل بیهوده کردند؛ مسائلی که از ابتدای کدنویسی باید به آنها پرداخته میشد. هفتهها طول میکشید تا بتوانیم یک ویژگی جدید را اضافه کنیم. سپس به این واقعیت پی بردم که تبعات کدهای کمکیفیت بسیار فراتر از تصورات من است.
خوانایی
برای کار کردن با کدها، باید توانایی خواندن آنها را داشته باشید. خوانا بودن کد روی بسیاری از جنبههای کار شما تاثیر خواهد گذاشت. خوانا بودن کدها باعث بهتر شدن روند آنالیز خواهد شد و کار را برای کارمندان جدید آسانتر میکند. اگر بتوانیم کدها را بهتر بخوانیم، اطلاعات بیشتری را نیز در مورد عملکرد آن بدست خواهیم آورد. خوانایی کد تاثیر بسزایی روی اعتماد به نفس افراد دارد.
مطمئن بودن
مطمئن بودن کدها اغلب نادیده گرفته میشود. کدهای باکیفیت، عملکرد قابل قبولی را از خودشان به نمایش میگذارند. کدهای ما باید به گونهای کار کنند که از قبل پیشبینی شده است. در صورت دیدن موارد مشکوک نباید با بیدقتی از کنار آنها عبور کنید. همین خطوط نامشخص در آخر باعث بروز باگ و ارور خواهند شد. اگر از نحوه عملکرد یک بخش از کد مطمئن نیستید، باید آن را به خوبی بررسی کرده و عملکردش را تحت نظر داشته باشید. با این کار از بروز بسیاری از خطاها جلوگیری خواهید کرد.
قابلیت نگهداری
برای بالاتر بردن کیفیت کدها و قابلیت نگهداشت، باید تغییرات و رفع اشکالات را تا حد امکان ساده نگه دارید. اگر اضافه کردن یک ویژگی دیگر به کدها خیلی طول بکشد، کیفیت کدهایتان پایین خواهد آمد. قابلیت نگهداری هم در مورد سازگاری دائمی کد با وضعیت مورد نظر است. با اعمال تغییرات ساده میتوانید کدهای خود را مطابق با آخرین استانداردها بسازید.
پیروی از دستورالعملهای استایل کدنویسی
اکثر زبانهای برنامهنویسی دارای استانداردهای خاصی برای کد نوشتن هستند. این استانداردهای خاص میتواند در مورد محل قرارگیری فاصلهها، نحوه نامنویسی متغیرها و غیره باشد. گاهی اوقات تیمها نیز استایل منحصر به فرد خود را خلق میکنند. ما میتوانیم از دستورالعملهای سازندگان زبانها یا دستورالعملهای خود شرکت استفاده کنیم اما هرگز نباید از این مسیر منحرف شویم. به عنوان مثال وقتی نویسنده نام متغیرها یا نحوه قرارگیری پرانتزها را متفاوت مینویسد، بدین معناست که هنگام خواندن اتوماتیک آنها زمان بیشتری را صرف تجزیه و تحلیل کنیم. بنابراین باید از قوانین و دستورالعملهای تعیین شده پیروی کنیم تا به کدهای خوبی برسیم.
اسامی خوانا
اگر در رشته علوم کامپیوتر تحصیل کرده باشید، قطعا دیدهاید که اساتید در کدهای خود از متغیرهایی به نام a، b، c و غیره استفاده کردهاند. حالا همین اسامی را روی متغیرهای یک پروژه بزرگ بگذارید. اگر یک شخص از شما بپرسد که چه چیزی در متغیر c یا b ذخیره شده، با چه سرعتی به او پاسخ خواهید داد؟ قطعاً بدون نگاه کردن به کدهای آن بخش نمیتوانید به این سوال جواب دهید. به همین دلیل باید اسمهایی را انتخاب کنیم که بیانگر اهداف خود هستند. همانطور که خودتان هم میدانید، خوانایی یکی از فاکتورهای مهم کدهای باکیفیت است.
خودتان را تکرار نکنید
این اصل بیشتر با نام مخفف DRY (Don’t Repeat Yourself) شناخته میشود. هدف اصلی ما در اینجا کپی نکردن کدهاست. اگر کدهای جدید با کدهای قبلی کمی فرق دارند، لزومی به دوباره نوشتن آنها نیست. با استفاده کردن از توابع پارامتری میتوانیم تعداد موارد تکراری را به شدت کاهش دهیم. اگر بخشی را فلان بار کپی کردهاید، باید آن را فلان بار نیز تغییر دهید. اما اگر کد در یک تابع قرار داده شده باشد، شما آن را یک بار تغییر میدهید اما آن کد در فلان مکان کار خواهد کرد.
ساختار را خیلی پیچیده نکنید
مهندسی مجدد و معرفی بیش از حد الگوها یکی دیگر از مشکلاتی است که روی کیفیت کدها تاثیرگذار خواهد بود. معرفی الگوهای خاص و راهکارهای کلی، یک تمرین بسیار خوب است؛ اما تنها زمانی که کدها مستلزم آن باشند. از هر 10 مورد اضافه شده، 9 مورد به بازنویسی نیاز داشته چون هیچ ارتباطی با شرایط ندارد.
ریفاکتور کردن
ریفاکتور کردن یک فرآیند چرخهای و دائمی است. اگر به طور مداوم این پروسه را انجام دهید، به یک فعالیت سرگرمکننده و آسان تبدیل خواهد شد. گاهی اوقات افراد نمیتوانند زمان مناسبی را برای ریفاکتور کردن پیدا کنند. اگر بعد از مدتها به سراغ بهینهسازی کدهای خود رفتهاید، یعنی باید تغییرات بسیاری را پیادهسازی کنید. ریفاکتور کردن به طور مرتب میتواند کیفیت کدهای شما را بالاتر ببرد. به همین خاطر ما این فرآیند را یکی از المانهای دائمی در هر کار میدانیم. همیشه چیزی برای بهبود پیدا کردن وجود دارد.
ریفاکتور کردن به طور گسترده، نیازمند تجربه است. افراد تازه وارد به راحتی میتوانند تغییرات جزئی را در پروژه لحاظ کنند. همیشه بعد از بهبود بخشیدن، نظر افراد باتجربهتر را در آن رابطه بپرسید.
تستهای یونیت
تستهای یونیت به ما میفهماند که آیا تغییرات اعمال شده باعث خرابی شده یا خیر. این تستها اطلاعات باارزشی را ارائه میدهند، بنابراین باید قبل از شروع پروسه ریفاکتور کردن هم وجود داشته باشند. اصلاح کردن کدهایی که کار میکند، کار چندان دشواری نخواهد بود.
در پایان
بدون شک هر توسعهدهندهای باید به کیفیت کدهای خود توجه داشته باشد. برای رسیدن به کدهای باکیفیت باید تغییرات را متفکرانه اعمال کرده و راهکارهای بروز را در دستور کار قرار دهیم. مطمئن باشید این موضوع ارزش تمام تلاشهای شما را خواهد داشت.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید