برنامه نویس های خوب بر اساس کیفیت کدهایشان تعریف می شوند. در نرم افزار، نوشتن کد خوب و تمیز به این معنی است که پولتان را برای تست، بروزرسانی، و توسعه کدهای خود خرج کنید تا اینکه این هزینه را برای رفع اشکالات هزینه کنید. در این مقاله، به شما مثالهای واقعی از استفاده برخی تکنیکها برای تمیز نگهداشتن کد، و اصلاح آن برای قوی تر شدن(بدون باگ شدن) و ماژولار شدن، ارایه خواهیم کرد. این تکنیک ها نه تنها به شما برای اصلاح کدهای قدیمی کمک میکنند. بلکه میتواند به عنوان یک تصویری ذهنی خوب برای شما عمل کند تا از این به بعد به صورت تمیز کد بنویسید.
اصلاح کد به تکنیک ها و قدم هایی که برای نوشتن کد تمیز به شما کمک می کند اشاره دارد. این برای سایر برنامه نویسان هم مهم میباشد، کسایی که کد شما را میخوانند، توسعه میدهند و از آن استفاده مجدد میکنند بدون اینکه نیاز به تغییرات زیادی داشته باشند.
در ادامه ما مثالهایی برای اصلاح و بهینه تر کرد کدهایتان خواهیم دید.
توصیه ابتدایی من این است که هیچ موقه شروع به اصلاح کدهایی که برای آنها تست وجود ندارد نکنید. احساس میکنم دلیل آن روشن باشد: شما با توابعی مواجه می شوید که هیچ ایدهای در مورد طرز کار انها ندارید. پس اگر شما میخواید کدها را اصلا کنید با تست های نوشته شده برای آن شروع کنید. مطمین شوید که کدهایی که میخواهید اصلاح کنید توسط تست ها پوشش داده شده باشند. در مورد پوشش کد[3] در زیان برنامه نویسی مورد نظرتان جستجو کنید.
به تصویر زیر نگاه کنید. این یک عکس از یک پروژه مدیریت هتل به زبان PHP است که روی Github بود برداشته شده است.
همان طور که در این متد میبینید، سه مرحله توسط خطوط قرمز رنگ مشخص شده است. داخلی ترین بخش، if / else می باشد که که در درون بخش کد شرطی if ابتدایی می باشد. معمولا، با تمرکز بر داخلیترین سطح، اصلاح کدها آسان تر می شود.
در این مثلا بالا، ما میتوانیم داخلی ترین بخش را به یک متد private تغییر دهیم.
برای داخلیترین بخش بعدی، متد add() را ببینید که پس از اصلاح کد، تمیزتر، خواناتر و قابل تست شد.
اکثر زبان های برنامه نویسی دستورات شرطی تک خطی پشتیبانی میکنند، و اکثر برنامه نویس ها به دلیل سادگی از آن استفاده میکنند، اما باید توجه داشت که کدهای تک خطی خوانایی ندارند و یک خط خالی ممکن است منطق برنامه را عوض کند و مشکلاتی را در خوانایی و اجرا بوجود بیاورد.
در مثال بعدی، میبینید که اگر rooms از 250 بیشتر باشد، یک متن خطا بر میگرداند. در این مورد، 250 یک عدد جادویی است. اگر شما برنامه نویسی باشید که این کد را ننوشته باشید، برای شما مشکل است که بفهمید این عدد چه مفهومی دارد.
برای اصلاح این کد، ما در نظر میگیریم که که 250 حداکثر تعداد rooms میباشد. با این حال، به جای استفاده مستقیم از اعداد یا متن ها (hardcoding) ما میتوانیم آن را به یک متغییر $maxAvailableRooms نسبت دهیم. حالا این کد برای سایر برنامه نویس ها هم قابل فهم می باشد.
در متد ()availablerooms در مثال قبل به کد if توجه کنید. ما به راحتی می توانیم else را حذف کنیم در حالی که منطق برنامه حفظ شود.
در مثال بعدی، شما دو متد از از برنامه مدیریت هتل مشاهده میکنید. Index() و room_m()، من نمیتوانم هدف این متد هها را متوجه شوم. و اگر این نام ها، نامهای توصیفی بودند، قابلیت خواندن و فهم برنامه به مراتب بیشتر می شد.
اکثر برنامه نویسان از قدرت و امکانات زبان برنامه نویسی که استفاده میکنند آگاه نیستند. خیلی از این ویژگی ها می تواند سختی های برنامه نویسی را کاهش دهند و کدهای قویتری را برای شما ایجاد کنند. به مثال بعد نگاه کنید. شما می توانید از کد بسیار کمتر برای یک خروجی یکسان به وسیله استفاده از code hinting استفاده کنید.
این مطلب رو با چندتا توصیه کوچک برای کدنویسی بهتر تموم میکنیم:
مطالب بیشتر:
- Software Architecture — The Difference Between Architecture and Design
- Software Architecture: Architect Your Application with AWS
- Write clean code and get rid of code smells with real life examples
منبع:
https://medium.com/@maladdinsayed/advanced-techniques-and-ideas-for-better-coding-skills-d632e9f9675
[1] Refactoring
[2] Unit teste
[3] Code coverage