Clean Code چیست؟ آشنایی با اصول کدنویسی تمیز در برنامه نویسی

سطح مقاله: ساده
زمان مطالعه: 8 دقیقه
۰۸ مهر ۱۳۹۸
فارسی
کدنویسی تمیز
English
Clean Code

اگر از یک برنامه نویس بخواهید کدی طولانی برای بخشی از یک پروژه بزند احتمالا از پیشنهاد شما استقبال کند. اما اگر به او بگویید که این کد آماده است و او باید آن را دستکاری کند، احتمالا تمایلی نشان ندهد و یا با اکراه آن را بپذیرد. دلیل این امر این است که بسیاری از ما به گونه ای که عادت داریم برنامه نویسی می کنیم درحالیکه ممکن است فهم و اصلاح آن برای دیگران سخت باشد. در این مطلب بررسی می کنیم که کدنویسی تمیز یا clean code چیست و درباره اصول آن صحبت می کنیم.

فهرست محتوای این مقاله

clean code چیست؟

تعریف کدنویسی تمیز

کدنویسی تمیز (Clean Code) مجموعه اصولی است که به شما کمک می کند کدی بنویسید، که فهم و اصلاح آن توسط دیگران و یا بعد از مدت های طولانی برای خودتان سخت نباشد. این اصول استانداردهایی هستند که اگر رعایت شوند، شما را تبدیل به یک برنامه نویس حرفه ای می کنند. کدنویسی تمیز در کار گروهی اهمیت بسیار زیادی دارد.

در متدولوژی هایی مانند چابک (Agile) کدنویسی تمیز ضروری به نظر می رسد زیرا اعضای تیم، در بسیاری از موارد ناچار به تکمیل و اصلاح کدهای یکدیگر هستند. کد کثیف (Dirty Code) اصطلاحی است که در برابر کدنویسی تمیز وجود دارد. عدم رعایت اصول کدنویسی تمیز، بی نظمی و استفاده از رویه های تکراری کد شما را به Dirty Code تبدیل می کند.

اهمیت استفاده از اصول clean code چیست؟

کدنویسی تمیز اهمیت زیادی در هزینه زمانی و نیروی انسانی تیم های فنی دارد. طبق تحقیقاتی که انجام شده معمولا توسعه دهندگان 30 تا 40 درصد زمان خود را صرف نوشتن کدهای جدید می کنند. این در حالی است که حدود 60 درصد از زمان آن ها صرف نگهداری و اصلاح (Debug) کدها می شود.

اصول کدنویسی تمیز چیست؟

اصول clean code چیست

  • سادگی کدها (KISS) : Keep It Simple Stupid یکی از اولین اصول در کدنویسی تمیز و به این معنی است که از پیچیدگی بیش از حد کدها بپرهیزیم و در ساده ترین شکل ممکن برنامه نویسی کنیم. بنابراین سعی کنید توابع را در ساده ترین شکل ممکن بنویسید و تاحد ممکن از اضافه کردن پیچیدگی های بی مورد دوری کنید.
  • خوانایی و قابل فهم بودن کدها : هرچه میزان خوانایی و فهم کدها راحت تر باشد، زمان کمتری برای اصلاح آن ها لازم است.
  • نام گذاری مناسب : برای کلاس ها و توابع مختلف، نام گذاری مناسب انجام دهید. این کار به ترتیب روند کار و راحتی در جستجوی بخش های مختلف کمک زیادی خواهد کرد. نام یک کلاس یا تابع باید متناسب با عملکرد آن باشد
  • مدیریت آرگومان ها: بهتر است توابع آرگومان های زیادی نداشته باشند. همچنین بدنه هر تابع را تا جایی که ممکن است به قسممت های مختلف شکسته و در توابع مختلف قرار دهید.
  • عدم کامنت گذاری : اگر در کد خود کامنت های زیادی می گذارید احتمالا اشتباهی در کار است. کد شما باید به قدری واضح باشد که نیازی به توضیحات اضافه نداشته باشد.
  • انتخاب زبان مناسب : ممکن است برخی زبان های برنامه نویسی برای پیاده سازی گروهی از مسائل ساده تر و بهتر باشند. به عنوان مثال اگر به هر دو زبان جاوا و پایتون مسلط هستید، شاید استفاده از پایتون بهینه تر باشد.
  • بازبینی کدها : کد خود را چندین بار بازبینی کنید. با این کار دیگر نیاز نیست افراد بعدی که کد شما را می خوانند زمان زیادی را صرف ویرایش های اولیه کنند.
  • کاهش وابستگی ها : بهتر است وابستگی ها (Dependencies) درپروژه کم باشد تا نگهداری و تغییر دادن آن در آینده راحت باشد.
  • تست پذیری : کدهایی که می نویسید باید از همه جنبه های فنی قابل تست باشند. کدی که قابل تست نباشد، عملا یک کد تمیز محسوب نمی شود.
  • کاهش حجم توابع : سعی کنید تا جای ممکن توابع را کوتاه و مختصر بنویسید. ممکن است بعضی از حلقه ها و رویه های تکراری در بخش های مختلفی از کد به کار برده شوند. با تعریف چنین رویه هایی در یک تابع جداگانه از افزایش خطوط توابع جلوگیری می شود.

نکاتی برای شروع فرایند کدنویسی تمیز

نقش الگوریتم ها در کدنویسی تمیز

یکی از مهم ترین مسائل در فرایند برنامه نویسی داشتن منطق درست برای پیاده سازی بهینه صورت پروژه است. وقتی تفکر طراحی و الگوریتمی پیدا کنید، طراحی مسیری برای پیاده سازی صحیح ساده تر به نطر می رسد. آشنایی و مطالعه در برخی زمینه های مرتبط می تواند به شما در شکل گیری این ذهنیت کمک کند.

مطالعه الگوریتم های طراحی

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

اهمیت مطالعه ساختمان داده ها در clean code چیست؟

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

 اهمیت مطالعه الگوهای طراحی در clean code چیست؟

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

جمع بندی

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

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

نظرات کاربران

Babak Sorkhpour

با سپاس بسیار شیوا و ارزشمند بود ولی بهتر بود همراه مثال و اطلاعات بیشتر عرضه میگردید

با احترام
دکتر بابک سرخپور
زیگن، آلمان

ریحانه یزدانی

سلام
سپاس از توجه شما
درست می فرمایید. قصد ما آشنایی مفاهیم اولیه بود و سعی میکنیم در آینده نزدیک پست کاملتری همراه با مثال آماده کنیم.

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 
گزارش مشکل