مفهوم Clean Code

توسط سهیل کرمی, تیر ۶, ۱۳۹۶

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

Clean Code

معنی Clean Code چیه ؟ Clean Code به چه معنایی هست ؟ اگه بخوام یک ترجمه ی تحت الفظی داشته باشم می شه ” کد تمیز ” دور از معنای مورد نظر من نیست ولی معنای اصلی نیز نیست. اول به بررسی همین معنای تحت الفظی می پردازم و بعد کامل و کاملترش می کنم.

کد تمیز

اگه به معنای لغت ” تمیز ” در لغت نامه های فارسی نگاه بندازیم (برای مثال من از سایت واژه یاب استفاده کردم) اولین معنی که مشاهده می کنیم ” فرق و جدایی پیدا کردن ” هست و معنی دوم ” پاک و پاکیزه ” این معنی هست که من دوست دارم بهش بپردازم،” کد تمیز” کدی که پاکیزه باشه اگه فاکتور های پاکیزگی رو بخوایم بررسی کنیم می تونیم به ساختاری مشخص در شیوه ی کد زنی (برای مثال فاصله ی بین خطوط) یا به عبارتی رعایت کردن یک ساختار مشخص در زمان کد زنی و استفاده از کلید ترکیبی Ctrl+K+D در ویژوال استدیو برای ایجاد تو رفتگی های لازمه و دیگر مواردی که باعث خوانا تر شدن کد ما می شه گفت کد تمیز،رعایت کردن این موارد همگی خوبه ولی همگی موافقیم که می تونیم به این شیوه بگیم ” Code Beauty ” که همانطور که مشخص هست متفاوت با Clean Code هست.

الان زمان این سئوال رسیده که پس ” Clean Code ” به چه معنی هست ؟

Clean Code

همه ی ما می تونیم کد بنویسیم ولی چه کدی ؟ آقای Robert Cecil Martin در کتاب Clean Code می فرمایند که

” It is not enough for code to work “

کار کردن کد مهم نیست ، کد های که می نویسیم در آخر کار خواهند کرد و اجرا خواهند شد، ولی سئوالی که مطرح و مهم هستش این موضوع هست.

” هزینه ی نگهداری این کد ها چقدر هست؟ “

هزینه ی نگهداری ؟ این مورد در ادامه به صورت کامل شرح خواهم داد. فعلا به همین یک جمله بسنده می کنم

اگه کد هاتو ویرایش کنی آیا ویرایش یک بخش ساده، باعث در هم شکستن کد می شه ؟

جواب این سئوال را با مرور کد ها و ویرایش هایی که برای برنامه سمتت امده می تونی بدی

آقای Gerard Meszaros در کتابxUnti Test Patterns در وصف Clean Code می فرمایند،

” وقتی که بتونم شب به صورت راحت بخوابم. “

یا صحبت آقای Bjarne Stroustrup در مورد کدهاشون

“ I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide “

جمله ی ایشان درمورد Clean Code رو به سه بخش تقسیم می کنم که توالی در این سه بخش برای ما مهم هست

  1. کد با ظرافت خاصی نوشته شده باشه
  2. کد کارآمد باشه
  3. همراه با منطقی ساده (با خواندن کد در نگاه اول وظیفه ی کد را تشخیص داد) که هیچ bug نتواند از چشممان پنهان بماند.

یا جمله ای دیگه از آقای Robert Cecil Martin باز هم از کتاب Clean Code که می فرمایند

“It is not the language that makes programs appear simple. It is the programmer that make the language appear simple”

جمله به خودی خود گویای همه چیز هست و فقط به صورت خلاصه بیان می کنم که ایشان می فرمایند

زبان برنامه نویسی نیست که ساخت برنامه را ساده می کند. برنامه نویس هست که کاری می کند زبان ساده بنظر برسد.

تا به اینجا جملات بزرگان مطالعه کردیم و شرح دادیم،الان نیاز به بیان دلیلی می بینم برای ادامه دادن مطالعه،

من از جمله ی آغازین فصل یک کتاب Clean Code استفاده می کنم که بدین صورت آغاز می شود .

شما این مقاله را می خوانید به دو دلیل

  1. شما برنامه نویس هستید .
  2. شما می خواهید برنامه نویس بهتری باشید.

مطالعه کتاب Clean Code را من تا به امروز به بیشتر از ۱۰ برنامه نویس در سطوح مختلف پیشنهاد کردم. و بعد از صحبت کردن با این دوستان همگی یک جمله ی واحد داشتن.

“دید من به برنامه نویسی عوض شد”

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

“دید من به برنامه نویسی عوض شد”

این مقاله جمع بندی کلی از مباحث مختلف ارائه شده در حوزه ی Clean Code توسط اساتید مختلف و تجربیات شخصی خودم با محوریت کتاب Clean Code نوشته آقای Robert Cecil Martin هست.

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

 

با تشکر سهیل کرمی

 

مقاله ی مرتبط کتاب Clean Coder

  1. اختراع گفت:

    خیلی خوب بود ،، من اینجارو اتفاقی از گوگل پیدا کردم
    .
    با اجازتون من اینجارو به ۲ تا از دوستام تو تلگرام فرستادم

    ممنون

  2. مهدی گفت:

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

دیدگاه شما

( الزامي )

(الزامي)