آموزش اصول کدنویسی تمیز (clean code) در برنامه نویسی
1399-05-16

آموزش اصول کدنویسی تمیز (clean code) در برنامه نویسی

کد نویسی تمیز چیست؟

مهندسی نرم افزار فقط یادگیری زبان‌های برنامه نویسی و ساختن نرم افزارها نیست، بلکه از شما به عنوان یک مهندس نرم افزار یا توسعه دهنده نرم افزار انتظار می رود که بتوانید کدهایتان را خوب و تمیز بنویسید، بنابراین سوال اینجاست که چه چیزی باعث ایجاد کدنویسی تمیز می شود؟ در این مقاله این سوال را پاسخ می دهیم و به آموزش کدنویسی تمیز می پردازیم، پس با ما همراه باشید.

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

اغلب، برنامه نویسان به دلیل کمبود وقت از نوشتن کد تمیز خودداری می کنند، آن‌ها عجله می کنند که پروژه را سریع‌تر پیش ببرند اما آنچه در واقعیت اتفاق می افتد خلاف این است زیرا کد‌نویسی کثیف اشکالات بیشتری را در برنامه ایجاد می‌ کند که توسعه دهنده مجبور است برای رفع این مشکلات دوباره به همان کد‌های قبلی بپردازد و خط به خط آن‌ها را بخواند، بدانید مدت زمان صرف شده برای این کار بسیار بیشتر از مدت زمان صرف شده برای نوشتن کد است، یک مطالعه نشان داده است که نسبت زمان صرف شده برای خواندن کد در مقابل نوشتن کد بیش از 10 به 1 است!

فرقی نمی کند مبتدی باشید یا باتجربه، سعی کنید یک برنامه نویس خوب باشید، به یاد داشته باشید که شما مسئولیت کیفیت کد خود را بر عهده دارید، بنابراین برنامه خود را به اندازه کافی خوب تهیه کنید تا سایر توسعه دهندگان هم بتوانند به آسانی کد شما را درک کنند. اما چگونه می توان کد تمیز نوشت؟

 

1. اصل مسئولیت واحد(SRP)

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

  1. کلاس ها و توابع تا حد ممکن کوچک باشند.
  2. آن ها فقط و فقط یک کار را انجام دهند.

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


2. از نوشتن کامنت‌های غیرضروری خودداری کنید

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

3. کد قابل خواندن بنویسید

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

 

بیشتر بخوانید: 8 چیزی که برای برنامه نویس شدن به آن نیاز ندارید surprise

 

4. وابستگی ها را مدیریت کنید

اصول مهمی برای مدیریت وابستگی در توسعه برنامه های شی گرا وجود دارد، توجه داشته باشید که اگر وابستگی ها درست مدیریت نشوند، مشکلاتی شبیه موارد زیر در برنامه ایجاد می شود:


    •  اگر بخواهیم بخشی از برنامه را تغییر دهیم، مجبور خواهیم بود که قسمت های بسیار دیگری را هم تغییر دهیم و همین باعث هدر رفتن وقت و انرژی زیادی می شود.
    •  نمی توانیم قابلیت جدیدی به برنامه اضافه کنیم.
    •  به دلیل وجود وابستگی های چندطرفه اگر قسمتی از برنامه را تغییر دهیم، قسمت های دیگر برنامه از کار می افتند و دچار مشکل می شوند.
    •  قابلیت استفاده مجدد از تکه کدهای برنامه وجود ندارد زیرا کدها آن چنان به یکدیگر وابستگی تودرتو دارند که به هیچ عنوان نمی توان تکه کدی را جدا کرد و از آن در برنامه های دیگر استفاده کرد. 


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

5. پروژه خود را به خوبی سازماندهی کنید

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

 

مقالات مرتبط

تفاوت dp و px در برنامه نویسی اندروید

واحد های اندازه گیری اندروید
زهرا چگینی
10

به نظر شما تفاوت dp و px در برنامه نویسی اندروید، این دو واحد اندازه گیری چیست؟ پس ما را همراهی کنید.

delegate چیست؟

Delegate ها چرا به زبان سی شارپ اضافه شدند؟
مرضیه فتاحی
15

delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟ با ما همراه شوید تا تمامی این سوال ها دریابید.

اکشن (Action) در سی شارپ، راهی برای خواناتر شدن کدها

موارد استفاده ی Action در سی شارپ
زهرا چگینی
10

Action در سی شارپ از پایه و اساس Delegate ها استفاده میکند، درحقیقت همان Delegate های هستند که کار را برای ما راحت تر میکنند.

Extension method درسی شارپ، راهی برای کارایی بالا در کدها

اکستنشن (extension) درسی شارپ
مرضیه فتاحی
10

هدف ما دانستن نکات مهمextension method در سی شارپ، نحوه استفاده و همچنین کاربرد آن در کدنویسی است. پس با ما همراه شوید.

لیست کامل تگ های html که هیچ کس به شما نخواهد گفت

آشنایی با تگ های html
زهرا چگینی
15

تگ ها در html نقش مهمی دارند زیرا تمامی کارهای html با تگ انجام می‌شود. به همین دلیل ما یک لیست کامل از تگ‌های html برای شما آماده کرده‌ایم تا از آن استفاده کنید.

ویژگی های جدید asp.net core که حیرت برنامه نویسان را برانگیخت

معرفی ویژگی های جدید asp.net core از مایکروسافت
مرضیه فتاحی
10

ویژگی های جدید asp.net core چیست؟ مایکروسافت در این نسخه چه امکاناتی را برای برنامه نویسانش قرار داده است. اگر شما هم خواهان دانستن این مطالب هستید، ما را همراهی کنید.