تعداد بازدید: 71

خوانا بودن کدها – Clean Code

ویژگی های یک کد استاندارد (code quality) در هر زبان برنامه نویسی شامل موارد زیر است :

  • از نظر زمان اجرا و پاسخ دهی به درخواست ها سریع باشد.
  • کم ترین استفاده از منابع را داشته باشد.
  • از نظر ساختاری (structure) خوانا باشد. این برای سایر contributor مفید می باشد و زمان debug را پایین می آورد.

هر کد از دو جنبه مورد بررسی قرار می گیرد :

  • Behaviour : رفتار نرم افزار
  • Structure : ساختار پیاده سازی برای اعمال رفتار

Behaviour

رفتار برنامه یا همان software flow یا تعامل نرم افزار با کاربر مصرف کننده. همان چیزی که کارفرما به شما می گوید و شما به کارفرما تحویل می دهید.

معمولا رفتار یک برنامه توسط کد تعیین نمی شود. ابتدا رفتار برنامه را روی کاغذ پیاده سازی می کنند (از ابزار هایی مانند فلوچارت استفاده می کنند) و بعد یک گام جلو تر مفاهیم اصلی برنامه را تعیین می کنند (مثلا resource) و در پایان برای پیاده سازی آن اقدام می کنند.

با تغییر در ساختار کد (structure) نباید تغییری در رفتار برنامه ایجاد گردد برای همین ما برای کدهایمان تست می نویسیم.یعنی پس از تغییر در ساختار کد مجددا تست ها را اجرا می کنیم تا مطمئن شویم که برنامه به درستی کار می کند.

هر کلاس باید یک رفتار را پیاده سازی کند و هر متد باید یک عملیات را انجام دهد. به طول مثال :

مثلا فایل Like.php حاوی یک کلاس با نام Like می باشد که در آن عملیات های مختلفی در رابطه با رفتار Like در نرم افزار وجود دارد. بهتر است نام کلاس ها باید به صورت Capitalize پیاده سازی شوند و هم نام با فایل آن.

هر متد باید یک عملیات را انجام دهد. به طور مثال اگر نیاز است که یک متد یک داده را ثبت کند ماهیت آن باید ثبت داده باشد و اگر اجازه ثبت داده را لازم داشت باید در متدی مجزا آن را ثبت کنیم.

این نحوه پیاده سازی ما کد را خوانا تر می کنید و تست نویسی برای آن را ساده تر و در نهایت دیباگ کردن را آسان می سازد.این مطالب مربوط به Structure می باشد اما چون ماهیتی کلی دارد در قسمت Behaviour گفته شد.

نکته : معماری های نرم افزاری MVC و HMVC نوع رفتار نرم افزار را تعیین می کنند.

Structure

ساختار کد یا همان اصلاح clean code که نحوه کد نویسی شما را تعیین می کند. در این مورد باید یک سری استاندارد ها را رعایت کند یا گاها از یک سری pattern ها پیروی می کنید که وقتی کسی کد شما را ببنید بتواند تشخیص دهد که از چه ساختاری پیروی کرده اید.

برای بالا بردن کیفیت کد (Code Quality) ما یک سری Concept را باید رعایت کنیم.

خوانا بودن برنامه (human readable) : این یعنی کدی که قرار است در 30 ثانیه بفهمد ما آن را طوری ساختاربندی کنیم که در 10 ثانیه متوجه عملیات گردد.

هر فردی می تواند کدی بنویسد که توسط کامپیوتر شناخته شود ، یک برنامه نویس خوب باید کدش توسط انسان هم خوانده شود.

برای این کار باید متد ها و متغیرها را با نام مناسب انتخاب کنیم. نام مناسب نامی است که گویای عملیات متد یا هدف متغیر باشد.

معمولا کدهای زشت (در اصطلاحی به آن ها ماکارانی نیز می گویند) خوانا نیست. طول هر متد نباید از 20 خط تجاوز کند و طول کلاس نباید از 200 خط بیشتر شود . کما این که هر قدر کمتر باشد بهتر است. عملیات ها را با خط کد های کمتری با همان عملکرد پیاده سازی شود.

هر قدر indent برنامه شما کم تر باشد بهتر است. برای حصول این هدف می توان از تکنیک های زیر استفاده کرد :

  • Combine If Block : ادغام if ها که با استفاده از عملگر های منطقی (and , or).
  • Input Normalization : می توانید در شرط ها و یا حلقه ها اگر به ازای هر نوع داده یک روال است از نوع داده آرایه که عمومیت بیشتری دارد استفاده کنید.
  • Early Returns : مثلا اگر if و else داریم قسمت کوچکتر را در ابتدا قرار دهیم و return کنیم تا هم یک واحد indent کم تر داشته باشیم هم برنامه سریعتر اجرا گردد.
  • array_filter : نوع داده آرایه در refactor کردن کد خیلی کمک می کند.اگر ورودی تابع آرایه است و در آرایه داده های غیر مرتبط است با این تابع می توان آن ها را حذف کرد.
  • Look up Table : استفاده از آرایه برای چک و جستجو در مقادیر.
  • minimum Indent : در کد خود حداقل indent را داشته باشید. افزایش indent زمان فهم برنامه را بیشتر می کند.

Behaviour و Structure دو مفهوم انتزاعی هستند. یعنی زمانی که شما درگیر Behaviour برنامه هستید تمرکزتان را روی آن می گذارید . پس از اتمام برنامه مجددا Structure برنامه را مرتب می کنید (code clean) و تست را اجرا می کنید تا ببینید مشکلی در روند Behaviour برنامه بوجود نیامده باشد.

مطالب مشابه

امنیت و رمزنگاری در پی اچ پی

امنیت و رمزنگاری در php

امنیت و رمز نگاری دو مبحث مهم در برنامه ها به شمار میره. به طور کلی ما باید برای حفاظت باید برنامه هامون در برابر حملات...

کار با gdLibrary در php

کتابخانه gd برای کار بار تصاویر به صورت پویا در زبان های برنامه نویسی نظیر PHP می باشد که توسط زبان C نوشته شده است....

کار با تاریخ و زمان در php

تاریخ و زمان در php

در ابتدا به دو مفهوم مهم در تاریخ و زمان در زبان پی اچ پی اشاره می کنیم : Greenwich Mean Time (GMT) زمان گرینویچ یا...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای خوانا بودن کدها – Clean Code

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *