برنامه نویسی و طراحی سایت

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

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

«کد تمیز» (کلین کد | Clean Code) به کدهایی گفته می‌شود که درک و فهم آن‌ها آسان است، به راحتی می‌توان آن‌ها را ویرایش کرد و نگهداری از آن‌ها را هم می‌توان به سادگی انجام داد. کد تمیز یا همان کد نویسی تمیز نتیجه حاصل شده از ارزش‌ها، اصول و روش‌هایی در توسعه نرم افزار است که در این مطلب به آن‌ها پرداخته‌ایم و سعی شده است به طور جامع شرح دهیم که کلین کد یا همان کد تمیز چیست و به اصول Clean Code هم پرداخته شده است. در این نوشتار علاوه بر شرح جامع چیستی کد تمیز یا همان کلین کد، به معرفی بهترین کتاب کد تمیز و همچنین کد تمیز یا کلین کد در پایتون هم پرداخته و مثال‌هایی کاربردی و ساده به زبان پایتون ارائه شده است.

فهرست مطالب این نوشته
کد تمیز چیست ؟

چیستی کد تمیز از دیدگاه خالق زبان C++‎

رویکرد کلین کد در مدرسه توسعه دهنده کد تمیز

کد نویسی و توسعه کد تمیز

ارزش های کد تمیز چیست ؟

ارزش تغییرپذیری در کد تمیز چیست ؟

ارزش صحت و درستی در کد تمیز

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

ارزش بهبود مداوم در کد تمیز

کدام ارزش های کلین کد مهم تر هستند؟

معرفی فیلم های آموزش برنامه نویسی

اصول و روش های کلین کد چیست ؟

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

اصل DRY عدم تکرار در کد تمیز چیست ؟

اصل KISS رعایت سادگی در کلین کد چیست ؟

توجه به بهینه سازی در کد تمیز

ارجح دانستن ترکیب بر ارث بری

اصل مسئولیت یگانه در کلین کد چیست ؟

رعایت سطح انتزاع یگانه در کد تمیز

قراردادهای کد منبع

تفکیک بخش ها در کلین کد چیست ؟

اصل وارونگی وابستگی DIP

اصل جداسازی واسط ISP

اصل کم ترین غافل گیری یا POLA در کد تمیز چیست ؟

اصل جایگزینی لیسکوف LSP

اصل CSP

اصل باز بسته OCP در کد تمیز چیست ؟

اصل پنهان سازی اطلاعات در کلین کد

قانون دمیتر Demeter یا LoD

اصل بگو اما نپرس TDA

اصل عدم تداخل طراحی و پیاده سازی نرم افزار

انعکاس طراحی در اجرا

پرهیز از کار غیر ضروری

اصل SOLID چیست ؟

روش های کد تمیز چیست ؟

رعایت قانون پیشاهنگی

انجام تحلیل علت ریشه ای Root Cause Analysis

استفاده از سیستم های کنترل نسخه

اعمال الگوهای ساده بازسازی و بهبود پیوسته

باز اندیشی روزانه

ردیابی مشکلات

استفاده از تست های یکپارچگی خودکار Automated Integration Tests

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

مطالعه و ارتقای دانش

استفاده از تست واحد خودکار Automated Unit Tests

استفاده از ماکت ها Mockups

تجزیه و تحلیل پوشش کد Code Coverage

انجام بازسازی پیچیده Complex Refactoring

شرکت در رویدادهای حرفه ای

به دنبال ادغام مستمر بودن

جمع آوری سنجه ها Metrics

استفاده از وارونگی نگهدارنده کنترل Inversion of Control Container

انتقال تجربیات

خطاها در تخمین

به دنبال تحویل مستمر بودن

انجام توسعه تکرار شونده

توسعه با شیوه قطعه محور Component Oriented

اول از همه تست Test First

کد تمیز در فعالیت های روزانه: نکاتی برای استفاده از کلین کد

نکات و ترفندهای کلی برای رعایت کد تمیز

نکات و ترفندهای کد تمیز در طراحی و معماری نرم افزار

نکات و ترفندهای مربوط به قابل درک بودن

نکات و ترفندهای مربوط به نام گذاری در برنامه نویسی برای رعایت کد تمیز

نکات و ترفندهایی برای توابع برای رعایت کلین کد

نکات و ترفندهای کامنت گذاری در کلین کد

نکات و ترفندهای کد تمیز در خصوص ساختار کدهای منبع

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

دل مشغولی مستمر برای کد تمیز

بهترین کتاب کد تمیز چیست ؟

بهترین کتاب های کلین کد کدامند؟

کد تمیز در پایتون

الگوهای نوشتن کد تمیز در پایتون چیست ؟

قراردادهای نام گذاری برای نوشتن کد تمیز در پایتون

مثال استفاده از نام های طولانی و توصیفی خوانا

مثال استفاده از اسامی تفضیلی نشان دهنده قصد و نیت

مثالی برای اجتناب از نام گذاری خلاصه و مبهم در پایتون

مثالی برای انسجام در دایره واژگان برای نام گذاری در پایتون

مثالی برای شروع به ردیابی مشکلات پایگاه کد در کد ادیتور

مثالی در خصوص عدم استفاده از اعداد جادویی Magic Numbers

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

مثالی برای ثابت قدم بودن در قبال رعایت قراردادهای نام گذاری توابع در پایتون

مثالی برای حفظ سادگی و اجرای تنها یک عملکرد در توابع

چارچوب های کد تمیز در پایتون برای کلاس ها

ماژول بندی کردن کدها برای نوشتن کد تمیز در پایتون

جمع‌بندی

faradars mobile

کد تمیز چیست ؟

«کد تمیز» (کلین کد | Clean Code) اصطلاحی است که در حوزه توسعه نرم افزار مطرح می‌شود. کد تمیز به معنی پیاده‌سازی واضح، قابل فهم، قابل ردیابی، منطقی و اصولی کدهای برنامه نویسی است.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

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

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

چیستی کد تمیز از دیدگاه خالق زبان C++‎

این گفته از «بیان استراواستراپ» (Bjarne Stroustrup) خالق زبان برنامه نویسی C++‎ به وضوح مشخص می‌کند که دقیقاً‌ کد تمیز چیست.

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

کلیک کنید

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

Bjarne Stroustrup سازنده زبان سی پلاس پلاس
«بیان استراواستراپ» (Bjarne Stroustrup) خالق زبان برنامه نویسی C++‎

از سخنان خالق C++‎ می‌توان برخی از خصوصیت‌ها و ویژگی‌های مهم کد تمیز را متوجه شد.

  • کد تمیز متمرکز است. هر تابع، کلاس یا ماژول باید یک کار انجام دهد و آن یک کار باید به خوبی انجام شود.
  • خواندن و درک کلین کد آسان است. به گفته «گَری بوچ» (Gary Booch) نویسنده کتاب «تحلیل و طراحی شی‌گرا و کاربردهای آن»، کد تمیز درست مثل نثر و نوشته خوب و باکیفیت است.
  • دیباگ کردن کلین کد آسان است.
  • نگهداری از کد تمیز آسان است. یعنی به راحتی می‌توان کد تمیز را خواند و به وسیله دیگر برنامه‌نویسان بهبود داد.
  • کد تمیز به میزان زیادی کارامد و موثر است.
تعریف کد تمیز Bjarne Stroustrup

رویکرد کلین کد در مدرسه توسعه دهنده کد تمیز

در خط مشی‌های امروزی توسعه نرم افزار، این مسئله چندان غیرعادی نیست که کدهایی که کار می‌کنند، لزوماً «تمیز» (Clean) نباشند. این تمیز نبودن کدها در طول ایجاد سازگاری‌های لازم یا مشکلات مربوط به گسترش، خیلی سریع به بروز خطا و باگ منجر می‌شود.

آموزش مبانی توسعه نرم افزاری Agile چابک
فیلم آموزش مبانی توسعه نرم افزاری Agile چابک در تم آف

کلیک کنید

مثلاً این بروز خطا در اثر تمیز نبودن کدها می‌تواند زمانی اتفاق بیوفتد که تغییری کوچک به آبشاری از تغییرات پشت سر هم می‌انجامد و آنگاه نگهداری و توسعه بیشتر نرم افزار هم بی‌دلیل پیچیده می‌شود. رویکردی که در «مدرسه توسعه دهنده کد تمیز» (Clean Code Developer School) [+] اشاعه داده می‌شود، در ادامه آمده است.

  • تجزیه و تحلیلی در ابتدا انجام می‌شود و به دنبال آن نیز طراحی و معماری خاصی می‌آید، در کل به آن «تجزیه و تحلیل تمیز و طراحی تمیز» (Clean Analysis and Clean Design) می‌گویند. این تجزیه و تحلیل تمیز و طراحی تمیز مستقل از نوع پروژه یعنی «پروژه دست نخورده» (Greenfield) یا «در حال توسعه» (Brownfield) انجام می‌شود.
  • توسعه تدریجی به وسیله همکاری نزدیک با مشتری در حالی که همزمان یادگیری و واکنش‌پذیری لازم اتفاق بیوفتد؛ یعنی در یک کلمه «چابک» (Agile) باشیم.
  • تعریف مفاهیم، ارزش‌ها، اصول و روش‌های هدایت‌کننده‌ای که برای توسعه، بسیار اساسی و بنیادین به حساب می‌آیند و لازم است متناسب با آن‌ها اقدامات لازم در نظر گرفته شوند.
مدرسه توسعه دهنده کلین کد

این رویکرد از ایجاد «بدهی فنی» (Technical Debt) جلوگیری می‌کند، یا حداقل آن را در کم‌ترین میزان ممکن نگه می‌دارد. اگرچه برای پیاده‌سازی کد تمیز در ابتدا نسبتاً نیاز به تلاش‌های بیشتری وجود دارد، اما در طول چرخه حیات توسعه نرم افزار، این تلاش‌ها به سرعت به بار خواهند نشست و بسیار نتیجه‌بخش خواهند بود. بنابراین، کد تمیز نه تنها از منظر فناوری بهینه و پایدار به حساب می‌آید، بلکه همچنین به لحاظ اقتصادی هم معقول است.

ارزش ها ، اصول و روش های کد تمیز چیست

کد نویسی و توسعه کد تمیز

در حالی که کارهای اولیه «رابرت مارتین» (Robert C. Martin) در کتاب کد تمیز و «داستین بازول» (Dustin Boswell) در «هنر کدهای خوانا» اساساً روی شکل ساده متنی کدها تمرکز داشته‌اند، مدرسه توسعه دهنده کدهای تمیز رویکرد وسیع‌تری را در پیش می‌گیرد. این نهاد، به فرایند توسعه می‌نگرد و ارزش‌ها، اصول و روش‌های متعددی را تعریف و تعیین کرده است.

آموزش مقدماتی مهندسی نرم افزار
فیلم آموزش مقدماتی مهندسی نرم افزار در تم آف

کلیک کنید

اگرچه، از همه مهم‌تر، این گروه اهمیت رویکرد چابُک و ملاحظات ساختاری پیش از پیاده‌سازی یعنی تجزیه و تحلیل و طراحی را نیز به رسمیت می‌شناسد. بدون ساختاری مناسب، پیاده‌سازی نیازمندی‌های غیرعملکردی بسیار دشوار و نزدیک به غیرممکن است.

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

اول تجزیه-تحلیل و طراحی، بعد پیاده‌سازی

یا به بیان دیگر:

ابتدا تفکر تمیز و بعد پیاده‌سازی کد تمیز

زیربنا و اساس کد تمیز یا کلین کد را ارزش‌های آن تشکیل می‌دهند، بنابراین در ادامه این مطلب به این پرسش پاسخ می‌دهیم که ارزش‌های کد تمیز چیست و آن‌ها را شرح خواهیم داد.

کد تمیز ماشین

ارزش های کد تمیز چیست ؟

رویکرد پیاده‌سازی کد تمیز مبتنی بر ۴ ارزش اساسی و زیربنایی است که در ادامه فهرست شده‌اند:

  • «تغییرپذیری» (Changeability)
  • «صحت و درستی» (Correctness)
  • «بهینگی تولید» (Production Efficiency)
  • «بهبود مداوم» (Continuous Improvement)
آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

حالا در ادامه هر یک از این ۴ ارزش بنیادی در زیربخش‌هایی به طور جداگانه شرح داده می‌شوند.

ارزش تغییرپذیری در کد تمیز چیست ؟

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

آموزش مدیریت چابک Agile پروژه ها با MSP یا ام اس پروجکت MS Project
فیلم آموزش مدیریت چابک Agile پروژه ها با MSP یا ام اس پروجکت MS Project در تم آف

کلیک کنید

این تحول‌پذیری را می‌توان به وسیله استفاده از اصول طراحی مختلفی افزایش داد که معماری نرم افزار را تحت تاثیر قرار می‌دهند. برخی از اصول ارزش تغییر پذیری در کد تمیز در ادامه فهرست شده‌اند.

  • انتزاع اطلاعات (Abstraction of Information)
  • تفکیک مسئولیت‌ها (Separation of Responsibilities)
  • استفاده از واسط‌ها (Use of Interfaces)
  • پیوند قطعات (Coupling of Components)

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

Changeability نرم افزار

ارزش صحت و درستی در کد تمیز

صحت و درستی به عنوان ارزش، ممکن است در ابتدا پیش پا افتاده و کلیشه‌ای به نظر برسد. اما صحت و درستی تنها به اجرای صحیح توابع، استفاده درست از کلاس‌ها و متُدها یا کاربرد اصول و روش‌های توسعه نرم افزار محدود نمی‌شود.

آموزش مهندسی نرم افزار ۱
فیلم آموزش مهندسی نرم افزار ۱ در تم آف

کلیک کنید

صحت و درستی همچنین به مدیریت نیازمند‌ی‌ها هم مرتبط است. اغلب توسعه‌دهندگان حتی نیازمندی‌های مشتریان را هم نمی‌دانند. آن‌ها هیچ اطلاعی از ملاک پذیرش ندارند.

آن‌ها هیچ یک از شرایط چارچوب‌ها و بستر سیستم را نمی‌شناسند و راجع به سناریوهای اپلیکیشن و هیچ یک از نیازمندی‌های غیرعملکردی اطلاعی ندارند.

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

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

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

آموزش اسکرام برای مدیریت چابک فرایند توسعه اپلیکیشن های وب و موبایل
فیلم آموزش اسکرام برای مدیریت چابک فرایند توسعه اپلیکیشن های وب و موبایل در تم آف

کلیک کنید

  1. توسعه نرم افزار نیازمند تلاش و صرفه هزینه است. کدهایی که خواندن، ویرایش، گسترش یا نگهداری از آن‌ها سخت است، باعث می‌شوند زمان توسعه افزایش پیدا کند و چنین کدهایی بهینه نیستند. هر چه نرم افزاری گسترده‌تر شود و توسعه آن بیشتر ادامه پیدا کند، این مشکلات عمیق‌تر می‌شوند. بهینگی تولید یعنی توسعه نرم افزار می‌تواند برای سال‌ها ادامه داشته باشد، چون تاکید بر کد تمیز وجود دارد. جایگزین ممکن است به جای بهبود، توسعه مجدد باشد و این اغلب جایگزین جذاب و مطلوبی نخواهد بود.
  2. بهینگی تولید تخمینی از سایر ارزش‌ها به حساب می‌آید. از یک طرف، بهینگی تولید مثلاً برای جلوگیری از این مسئله اهمیت دارد که از سعی و تلاش دائم برای اطمینان از عملکرد صحیح نرم افزار جلوگیری شود. از طرف دیگر هم بهینگی تولید برای کنترل جنبه‌هایی مثل انجام کار اضافی یا به اصطلاح «آبکاری طلا» (Gold Plating) ضروری است که در آن با نیت مثبت، نسبت به آنچه با مشتری توافق شده است، قابلیت‌ها و ویژگی‌های بیشتری توسعه داده می‌شوند. همچنین یک مورد دیگر هم بیش از حد پیچیده کردن یا به اصطلاح «Over Engineering» است که در آن نرم افزار با کیفیت بیشتری نسبت به نیاز مشتری توسعه و عرضه می‌شود.
کلین کد چیست

ارزش بهبود مداوم در کد تمیز

ارزش «بهبود مداوم» (Continuous Improvement)، بهبود پیاده‌سازی را به معنای واقعی کلمه خطاب قرار نمی‌دهد، زیرا این جنبه خودش از قبل بخشی از قابلیت تکامل هست. بهبود مداوم نیازمند این است که برنامه‌نویسان به شیوه‌های کاری خودشان رسیدگی کنند. برای مثال، می‌توان پرسش‌های زیر را مد نظر قرار داد.

آموزش مهندسی نرم افزار پیشرفته
فیلم آموزش مهندسی نرم افزار پیشرفته در تم آف

کلیک کنید

  • چه تجربیاتی در «برنامه نویسی ۲ نفره» (Pair Programming) یا «برنامه نویسی تیمی» (Mob Programming) بدست آمده است؟
  • دلایل بُروز «نابه‌سامانی کُدها» (Code Smell) چیست؟
  • چطور می‌توان همکاری داخل تیم و همکاری با مشتریان را بهبود داد؟
  • از جلسه‌های ‌«مرور و بررسی کدها» (Code Review) چه چیزهایی را آموخته‌ایم؟
  • در «باز نویسی» (Iteration) بعدی چه چیزی را باید بهبود دهیم؟
  • تمرین یادگیری مهارت‌های جدید در کدنویسی را که اصطلاحاً به آن «Code Kata» می‌گویند چگونه می‌تواند بهینه‌سازی شود؟

بنابراین بهبود مداوم ارزشی است که به بازتاب عملکرد تیم برنامه نویسی مربوط می‌شود و مبتنی بر تیم است.

ارزش های کد تمیز چیست

کدام ارزش های کلین کد مهم تر هستند؟

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

با این حال، تغییرپذیری به صورت آگاهانه اولین اولویت به حساب می‌آید. تغییرپذیری بر پایه نگرشی اساسی استوار است، آغوش باز برای نیازمندی‌های آتی و تحولات، حتی وقتی که این تغییر و تحولات و ملزومات هنوز شناسایی هم نشده‌اند.

درست مثل اینکه شعار «اول ایمنی» در صنعت هوانوردی اعمال می‌شود، تغییرپذیری هم باید اولین ارزشی باشد که در صنعت توسعه نرم افزار اعمال می‌شود. ارزش‌های کد تمیز از طریق اصول و روش‌های منسجم و ملموس کلین کد پشتیبانی می‌شوند. بنابراین در ادامه این مطلب به این موضوع پرداخته‌ایم که اصول و روش‌های کد تمیز چیست.

معرفی فیلم های آموزش برنامه نویسی

آموزش برنامه نویسی تم آف

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

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

  • برای شماهده همه فیلم های آموزش برنامه نویسی + اینجا کلیک کنید.

اصول و روش های کلین کد چیست ؟

حتی اگر ارزش‌ها برای توسعه‌دهندگان نرم افزار جهت‌دهی را فراهم کرده باشند، در هر صورت این ارزش‌ها برای پیاده‌سازی ملموس بسیار انتزاعی هستند. به همین دلیل است که «اصول و روش‌هایی» (Principles and Practices) وجود دارند که می‌توان از آن‌ها استفاده کرد.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

  • «اصول» (Principles) کد تمیز معیارهایی برای ساختاردهی به نرم افزار هستند. این اصول متمم یکدیگر به حساب می‌آیند. به طور ایده‌آل، همیشه حداکثر اصول رعایت می‌شوند. اگر نرم افزار بر خلاف این اصول توسعه داده شود، اثرات آن حداکثر در میان مدت مثلاً از طریق افزایش هزینه‌های اصلاحات و تنظیم سازگاری آشکار خواهد شد. هر پیاده‌سازی و اجرایی خودش آشکار می‌کند که آیا اصلی از کد تمیز رعایت شده است یا خیر.
  • «روش‌ها» (Practices) دستورالعمل‌هایی برای اقدام عملی هستند. این‌ها در واقع متُدها و تکنیک‌هایی هستند که برای رعایت کلین کد به طور مداوم مورد استفاده قرار می‌گیرند. برخی از روش‌ها نیازمند استفاده از بعضی ابزارها هستند. همیشه نمی‌توان از اجرا و پیاده‌سازی تشخیص داد که آیا روشی انجام شده است یا خیر.

حال در ادامه به شرح اصول کد تمیز پرداخته می‌شود.

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

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

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

آموزش اسکرام برای مدیریت چابک فرایند توسعه اپلیکیشن های وب و موبایل
فیلم آموزش اسکرام برای مدیریت چابک فرایند توسعه اپلیکیشن های وب و موبایل

کلیک کنید

  • «کار تکراری انجام نده» (Don’t Repeat Yourself | DRY)
  • «کارها را ساده و احمقانه انجام بده» (Keep It Simple and Stupid | KISS)
  • «حواست به بهینه‌سازی باشد» (Beware of Optimizations)
  • «ترکیب را بر ارث‌بری ترجیح بده» (Favor Composition over Inheritance | FCoI)
  • «اصل مسئولیت واحد» (Single Responsibility Principle | SRP)
  • «سطح انتزاع یگانه» (Single Level of Abstraction | SLA)
  • «قراردادهای کد منبع» (Source Code Conventions)
  • «تفکیک بخش‌های نرم افزار» (Separation of Concerns | SoC)
  • «اصل وارونگی وابستگی» (Dependency Inversion Principle | DIP)
  • «اصل جداسازی واسط» (Interface Segregation Principle | ISP)
  • «اصل کم‌ترین غافل‌گیری» (Principle of Least Astonishment | POLA)
  • «اصل جایگزینی لیسکوف» (Liskov Substitution Principle | LSP)
  • «اصل باز و بسته» (Open Closed Principle | OCP)
  • «اصل پنهان‌سازی اطلاعات» (Information Hiding Principle)
  • «قانون دمتر» (Law of Demeter |‌ LoD)
  • «اصل بگو ولی نپرس» (Tell, Don’t Ask Principle | TDA)
  • «عدم ایجاد همپوشانی در طراحی و پیاده‌سازی»
  • «پیاده‌سازی بازتاب‌دهنده طراحی» (Implementation Reflects Design)
  • «نیازی به آن نخواهی داشت» (You Ain’t Gonna Need It | YAGNI)
مطلب پیشنهادی:

10 نکته برای نوشتن کد بهتر و ساده‌تر — یک راهنمای جامع در خصوص کدنویسی مرتب

شروع مطالعه

 

اصل DRY عدم تکرار در کد تمیز چیست ؟

هدف اصل DRY کاستن تکرار الگوهای نرم افزاری، جایگزینی آن‌ها با انتزاعات یا استفاده از روش‌های نرمال‌سازی و استانداردسازی داده‌ها برای جلوگیری از رخداد افزونگی است.

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

کلیک کنید

اصل KISS رعایت سادگی در کلین کد چیست ؟

طبق اصل KISS تا حد امکان باید سادگی را رعایت کرد. بر اساس این اصل، نباید موارد را خیلی پیچیده انگاشت یا به کونه‌ای پیچیده آن‌ها را اجرا و پیاده‌سازی کرد. همیشه باید به دنبال ساده‌ترین راه‌حل برای یک مسئله باشیم و آسان‌ترین روش را به کار بگیریم.

کلین کد چیست

توجه به بهینه سازی در کد تمیز

بهینه‌سازی‌ها معمولاً هزینه‌های زیادی را در پی دارند. انجام بهینه‌سازی‌ها اغلب نه کاربردی و نه الزام‌آور است. بنابراین، قانونی ساده این است که حواسمان به بهینه‌سازی باشد. همچنین اگر هم بهینه‌سازی انجام می‌دهیم، باید آن را تنها پس از یک تجزیه و تحلیل تمام و کمال انجام دهیم.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

ارجح دانستن ترکیب بر ارث بری

اصل FCoI استفاده از ترکیب به جای ارث‌بری را رواج می‌دهد تا کلاس‌ها از الگوریتم‌ها و جزئیاتشان جداسازی شوند و بتوان رفتار کلاس را در زمان اجرا تغییر داد.

مطلب پیشنهادی:

اصول کدنویسی که همه باید بدانند — راهنمای کاربردی

شروع مطالعه

 

اصل مسئولیت یگانه در کلین کد چیست ؟

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

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

رعایت سطح انتزاع یگانه در کد تمیز

اصل SLA بیان می‌دارد سطوح مختلف انتزاع توابع برای افزایش خوانایی، درک و نگهداری کدها نباید با هم ترکیب شوند.

مطلب پیشنهادی:

شی گرایی چیست ؟ — در برنامه نویسی و به زبان ساده

شروع مطالعه

 

قراردادهای کد منبع

در قراردادهای کد منبع دستورالعمل‌هایی تعریف شده‌اند که به بهبود کیفیت نرم افزار به لحاظ ساختاری کمک می‌کنند. این قراردادها شامل قوانین نام‌گذاری، کامنت‌ها، اعلان‌ها، گزاره‌ها، فضاهای خالی و سایر موارد می‌شود.

آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت
فیلم آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت در تم آف

کلیک کنید

تفکیک بخش ها در کلین کد چیست ؟

اصل SoC بر این مسئله تاکید دارد که یک کلاس بر جنبه مشخصی متمرکز است تا بتوان بخش‌ها (قطعات نرم افزار) را جداگانه تست و ارزیابی کرد و تنظیمات را به گونه‌ای قابل مدیریت انجام داد.

اصل تفکیک بخش ها در کلین کد

اصل وارونگی وابستگی DIP

اصل DIP بیان می‌دارد که ماژول‌های سطح بالاتر به ماژول‌های سطح پایین‌تر وابسته نیستند، ماژول‌ها به انتزاعات وابسته هستند و انتزاع‌ها نباید به جزئیات وابسته باشند بلکه جزئیات باید به انتزاع‌ها وابسته باشند.

آموزش توابع و برنامه نویسی ماژولار (پیمانه ای) (رایگان)
فیلم آموزش توابع و برنامه نویسی ماژولار (پیمانه ای) (رایگان) در تم آف

کلیک کنید

اصل جداسازی واسط ISP

اصل ISP بیان می‌دارد که واسط‌ها دارای میزان زیادی از انسجام هستند و تنها باید حاوی عناصری باشند که به یکدیگر تعلق دارند. هدف این است که «وابستگی» (Coupling) میان اجزا را تا حد امکان کمینه و واضح سازیم.

اصل کم ترین غافل گیری یا POLA در کد تمیز چیست ؟

به اصل کم‌ترین شگفتی گاهی علاوه بر POLA به آن POLS یا «Principle of Least Surprise» (اصل کم ترین تعجب) هم می‌گویند. این اصل بیان می‌دارد که واسط کاربری باید همیشه به گونه‌ای طراحی شود که کاربر کم‌ترین غافل‌گیری ممکن را تحمل کند.

مطلب پیشنهادی:

عجیب‌ترین اصول برنامه‌نویسی که نمی‌دانستید

شروع مطالعه

 

اصل جایگزینی لیسکوف LSP

به بیان ساده، اصل لیسکوف بیان می‌دارد که اشیای یک «ابَرکلاس» (سوپر کلاس) باید با اشیای زیرکلاس‌های خود بدون آسیب زدن به اپلیکیشن قابل جایگزینی باشد. به بیان دیگر، آنچه می‌خواهیم این است که اشیای زیرکلاس‌های ما به همان شکل اشیای سوپرکلاس رفتار کنند.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

اصل CSP

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

اصل باز بسته OCP در کد تمیز چیست ؟

اصل OCP به گسترش‌پذیری ماژول‌ها، کلاس‌ها، متدها و سایر موارد مربوط می‌شود که بر اساس آن، این اجزا باید قابل بسط و گسترش باشند اما برای تغییرات و ویرایش‌ها بسته باشند. یعنی باید به‌گونه‌ای نوشته شوند که نیاز به تغییر آن‌ها در آینده وجود نداشته باشد، اما در صورت نیاز بتوان قابلیت‌های آن‌ها را گسترش داد.

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

کلیک کنید

اصل پنهان سازی اطلاعات در کلین کد

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

قانون دمیتر Demeter یا LoD

قانون دمیتر که همچنین آن را با عنوان قانون «کم‌ترین آگاهی» (Least Knowledge) هم می‌شناسند، بیان می‌دارد که برای کاهش وابستگی اشیا تنها باید با اشیای حاضر در محیط بلافصل‌شان ارتباط داشته باشند.

قانون دمیتر در کلین کد

اصل بگو اما نپرس TDA

اصل TDA راجع به بسته‌بندی کردن داده‌ها به وسیله کارکردهایی است که با این داده‌ها کار می‌کنند. به جای اینکه از یک شی درخواست داده شود، به منظور کار با این داده‌، باید کاری که لازم است انجام شود را از شی بخواهیم.

اصل عدم تداخل طراحی و پیاده سازی نرم افزار

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

آموزش پروژه محور سی شارپ و پایتون – ساخت ربات اینستاگرام
فیلم آموزش پروژه محور سی شارپ و پایتون – ساخت ربات اینستاگرام در تم آف

کلیک کنید

انعکاس طراحی در اجرا

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

پرهیز از کار غیر ضروری

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

اصل YAGNI در کد تمیز چیست

اصل SOLID چیست ؟

اصل مسئولیت واحد، اصل باز و بسته، اصل جایگزینی لیسکوف و اصل وارونگی وابستگی را به همراه یکدیگر «اصل SOLID» می‌نامند. رابرت مارتین در کتاب «توسعه چابُک نرم افزار» این اصول (SOLID) را برای توسعه کد تمیز بسیار ضروری می‌داند.

آموزش اصول طراحی سالید SOLID در سی شارپ C#‎
فیلم آموزش اصول طراحی سالید SOLID در سی شارپ C#‎ در تم آف

کلیک کنید

روش های کد تمیز چیست ؟

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

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد

کلیک کنید

  • رعایت قانون پیشاهنگی (Boy Scout Rule)
  • انجام «تحلیل علت ریشه‌ای» (Root Cause Analysis)
  • استفاده از سیستم‌های کنترل نسخه
  • اعمال الگوهای ساده بازسازی و بهبود پیوسته
  • بازاندیشی روزانه
  • ردیابی مشکلات
  • استفاده از «تست‌های یکپارچگی خودکار» (Automated Integration Tests)
  • انجام نقد و بررسی و بازنگری‌های مداوم
  • مطالعه و ارتقای دانش
  • استفاده از «تست واحد خودکار» (Automated Unit Tests)
  • استفاده از «ماکت‌ها» (Mockups)
  • تجزیه و تحلیل «پوشش کد» (Code Coverage)
  • انجام «بازسازی پیچیده» (Complex Refactoring)
  • شرکت در رویدادهای حرفه‌ای
  • به دنبال ادغام مستمر بودن
  • جمع‌آوری «سنجه‌ها» (Metrics)
  • استفاده از «وارونگی نگهدارنده کنترل» (Inversion of Control Container)
  • انتقال تجربیات
  • خطاها در تخمین
  • به دنبال تحویل مستمر بودن
  • انجام توسعه تکرارشونده
  • توسعه با شیوه قطعه‌محور Component Oriented
  • «اول از همه تست» (Test First)
مطلب پیشنهادی:

تست نرم افزار چیست ؟ – روش ها و اهمیت به زبان ساده

شروع مطالعه

 

رعایت قانون پیشاهنگی

قانون پیشاهنگی بیان می‌دارد:

  • همیشه یک محل را در شرایط بهتری نسبت به شرایط ابتدای حضورتان ترک کنید.
Boy Scout Rule در کد تمیز
قانون پسر پیشاهنگ (Boy Scout Rule)

بنابراین، موارد کوچک در کدها باید بهبود داده شوند و باگ‌ها باید پیش از تبدیل شدن به مشکلات بزرگ‌تر رفع شوند.

انجام تحلیل علت ریشه ای Root Cause Analysis

تجزیه و تحلیل علت ریشه‌ای وقوع، به جای حذف علائم، بر حذف علت‌ها تمرکز دارد. این شیوه در میان مدت بسیار کارامدتر است.

استفاده از سیستم های کنترل نسخه

در کنترل نسخه با مدیریت فایل‌ها شامل آرشیو کردن، واقعه‌نگاری، بهبود و هماهنگی دسترسی سر و کار داریم. محقق شدن توسعه نرم افزار بدون کنترل نسخه غیر قابل تصور است.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

اعمال الگوهای ساده بازسازی و بهبود پیوسته

اصطلاح «Refactoring» (بازسازی و بهبود پیوسته) به این مسئله اشاره دارد که ساختار نرم افزار تغییر کند، در حالی که محدوده توابع و عملکردها حفظ شود. روش‌های استخراج یا تغییر نام‌های غیر قابل درک، الگوهای ساده بازسازی و بهبود به حساب می‌آیند.

مطلب پیشنهادی:

راهنمای Refactor یا بازسازی کد — به زبان ساده

شروع مطالعه

 

باز اندیشی روزانه

«باز اندیشی» (Reflect) پیش‌نیاز یادگیری فعالانه است. البته تجربه نشان می‌دهد که این مهم تنها در صورتی به صورت روزانه اتفاق می‌افتد که با جدیت در تقویم زمان‌بندی شده باشد، در غیر اینصورت،‌ باز اندیشی قربانی امور و کارهای روزمره خواهد شد.

ردیابی مشکلات

«ردیبای مشکلات» (Issue Tracking) که با عنوان «ردیابی باگ» (Bug Tracking) هم شناخته می‌شود، فرایند ثبت تا از بین بردن باگ‌ها، مسائل باز، درخواست‌ها و سایر موارد را توصیف می‌کند.

مطلب پیشنهادی:

باگ چیست ؟ — Bug در برنامه نویسی و انواع به زبان ساده

شروع مطالعه

 

استفاده از تست های یکپارچگی خودکار Automated Integration Tests

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

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

چه در حین انجام برنامه نویسی دو نفره، «بازنگری‌های دقیق» (Peer Review) یا بررسی و بازنگری کدها، نقد و بررسی و بازنگری‌های مداوم باعث می‌شود کیفیت کدها افزایش پیدا کند. هدف، بهبود مداوم کیفیت کدها است.

بازنگری دقیق Peer Review
«بازنگری‌های دقیق» (Peer Review)

مطالعه و ارتقای دانش

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

آموزش اصول مطالعه – مهارت های تند خوانی و دقیق خوانی
فیلم آموزش اصول مطالعه – مهارت های تند خوانی و دقیق خوانی در تم آف

کلیک کنید

استفاده از تست واحد خودکار Automated Unit Tests

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

آموزش تست نرم افزار با xUnit.net
فیلم آموزش تست نرم افزار با xUnit.net در تم آف

کلیک کنید

استفاده از ماکت ها Mockups

برای تست ایزوله شده هر یک از اجزاء و قطعات نرم افزار، لازم است وابستگی‌ها حذف شوند. ماکت‌ها (Mockup) یا «شی‌های آزمایشی» (Mock Object) موجودیت‌هایی ساختگی هستند که با قطعه‌ای که قرار است آزمایش شود، مثلاً برای اینکه شی مربوطه هنوز در دسترس نیست، تعامل برقرار می‌کنند.

تجزیه و تحلیل پوشش کد Code Coverage

«پوشش کد» (Code Coverage) بیان می‌کند که چه بخشی از کدهای منبع، گزاره‌ها، شاخه‌ها، مسیرها و شرط‌ها به وسیله «موارد آزمون» (Test Case) اجرا شده‌اند. هدف پیدا کردن بخش‌هایی است که هنوز تست نشده‌اند.

مطلب پیشنهادی:

تست نرم افزار چیست ؟ – روش ها و اهمیت به زبان ساده

شروع مطالعه

 

انجام بازسازی پیچیده Complex Refactoring

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

مطلب پیشنهادی:

راهنمای Refactor یا بازسازی کد — به زبان ساده

شروع مطالعه

 

شرکت در رویدادهای حرفه ای

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

ملاقات برنامه نویسان

به دنبال ادغام مستمر بودن

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

جمع آوری سنجه ها Metrics

تجزیه و تحلیل ایستای کدها برای مثال به بررسی درستی به وسیله تست‌های خودکار یا برای مشخص کردن انطباق با نیازمند‌ی‌ها کمک می‌کند. تغییرپذیری نرم افزار را نیز می‌توان به وسیله سنجه‌ها مشخص کرد.

استفاده از وارونگی نگهدارنده کنترل Inversion of Control Container

نگهدارنده یا همان کانتینر IoC به نمونه‌سازی و اتصال بسیاری از اشیای کوچکی کمک می‌کند که در نتیجه اصل SoC ایجاد شده‌اند. همچنین IoC Container به پیکربندی مجدد کلاس‌ها برای موارد آزمون هم کمک می‌کند.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

انتقال تجربیات

دانش و آگاهی داشتن خوب است، انتقال دانش و معلومات اما بسیار خوب است.

ایده نهفته در این جمله این است که:

  • تنها از طریق انتقال دانش بازتاب واقعی و نفوذ به مباحث تخصصی اتفاق می‌افتد و همه افراد ذینفع از مزایای آن بهره‌مند می‌شوند.
انتقال تجربیات برنامه نویسی

خطاها در تخمین

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

به دنبال تحویل مستمر بودن

منظور از «تحویل مستمر» فرایند تحویل به‌روزرسانی‌های آزمایش شده است که در آن‌ها راه‌اندازی و استقرار خودکارسازی شده است. تحویل مستمر به دنبال ادغام مستمر انجام می‌شود.

آموزش آشنایی با مبانی توسعه و تست نرم افزار
فیلم آموزش آشنایی با مبانی توسعه و تست نرم افزار در تم آف

کلیک کنید

انجام توسعه تکرار شونده

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

توسعه با شیوه قطعه محور Component Oriented

شیوه توسعه قطعه‌محور بهره‌وری را از طریق پیاده‌سازی موازی تقویت می‌کند، شفافیت اپلیکیشن را بهبود می‌دهد و تست هر کامپوننت یا همان قطعه را آسان‌تر می‌کند.

مطلب پیشنهادی:

برنامه نویسی کامپوننت-محور چیست؟ — راهنمای کاربردی

شروع مطالعه

 

اول از همه تست Test First

منِش Test First این مسئله را اشاعه می‌دهد که واسط‌ها و رفتارهای متقابل مورد انتظار به وسیله تست‌ها توصیف می‌شوند. در این رویکرد، مستندات مشخصه‌ها در قالب کدهای اجرایی تولید می‌شوند که به صورت خودکار مورد بررسی قرار می‌گیرند.

آموزش تست نرم افزار با xUnit.net
فیلم آموزش تست نرم افزار با xUnit.net در تم آف

کلیک کنید

کد تمیز در فعالیت های روزانه: نکاتی برای استفاده از کلین کد

ارزش‌ها، اصول و روش‌های کد تمیز چگونه به هم می‌پیوندند؟ نکات و ترفندهای پیاده‌سازی کلین کد چه هستند؟ در این بخش به این پرسش‌ها پاسخ می‌دهیم.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

نکات و ترفندهای کلی برای رعایت کد تمیز

در این بخش فهرستی از نکات و ترفندهای کلی در خصوص کد تمیز ارائه شده است.

  • از کنوانسیون‌ها تبعیت کنید.
  • تا حد امکان پیچیدگی را کاهش دهید.
  • هر چه کدها ساده‌تر باشند، بهتر است.
  • مثل یک گروه پیشاهنگی عمل کنید و در اتمام کار، کدها را بهتر از آنچه قبلاً بودند تحویل دهید.
  • همیشه در جستجوی علائم مشکل نباشید، بلکه به دنبال علت بگردید.

نکات و ترفندهای کد تمیز در طراحی و معماری نرم افزار

نکات ترفندهای مربوط به فاز طراحی و معماری نرم افزار برای رعایت کلین کد در ادامه فهرست شده‌اند.

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

کلیک کنید

  • داده‌های قابل پیکربندی را در سطح بالایی نگه دارید.
  • به جای if/else یا switch/case از «پُلی‌مورفیسم» (چندریختی) استفاده کنید.
  • از کدهای چندنخی مجزا استفاده کنید.
  • از قابلیت پیکربندی بیش از حد جلوگیری و از «تزریق وابستگی» (Dependency Injection) استفاده کنید.
  • از قانون دمیتر تبعیت کنید.

نکات و ترفندهای مربوط به قابل درک بودن

ترفندها و نکته‌های مرتبط با قابل فهم بودن در ادامه آمده است.

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

نکات و ترفندهای مربوط به نام گذاری در برنامه نویسی برای رعایت کد تمیز

از نام‌های توصیف‌گرانه، بدون ابهام، دارای مفهوم، قابل تلفظ و قابل جستجو استفاده کنید و اعداد جادویی را با ثابت‌های نام‌گذاری شده جایگزین کنید و از رمزگذاری‌ها هم اجتناب شود.

آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت
فیلم آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت در تم آف

کلیک کنید

نکات و ترفندهایی برای توابع برای رعایت کلین کد

با پیاده‌سازی تنها یک عملکرد، توابع را کوچک نگه دارید. از نام‌های توصیف‌گرانه برای توابع استفاده کنید و کم‌ترین تعداد آرگومان ممکن را در توابع برنامه نویسی به کار بگیرید. از وقوع «عوارض جانبی» (Side Effect) اجتناب شود. در برنامه نویسی تابعی عارضه جانبی زمان رخ می‌دهد که تابعی به چیزی خارج از پارامترهای خودش برای انجام کاری متکی باشد یا نیاز به تغییر آن داشته باشد.

نکات و ترفندهای کامنت گذاری در کلین کد

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

نکات و ترفندهای کد تمیز در خصوص ساختار کدهای منبع

نکات و ترفندهای مربوط به ساختار کدهای منبع برای اجرایی کردن کلین کد در ادامه فهرست شده‌اند.

  • متغیرها را نزدیک به محل استفاده از آن‌ها تعریف کنید.
  • توابع وابسته و مشابه باید نزدیک به هم باشند.
  • توابع را در جهت رو به پایین قرار دهید و از تنظیم و هم‌ترازی افقی بپرهیزید.
  • خطوط کدها را کوتاه نگه دارید.
  • از فاصله‌های خالی برای مرتب کردن یا جداسازی جنبه‌ها استفاده کنید و «دندانه‌گذاری» (تورفتگی | Indentation) را هم به کار بگیرید.

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

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

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

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

دل مشغولی مستمر برای کد تمیز

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

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

کلیک کنید

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

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

بهترین کتاب کد تمیز چیست ؟

کتاب «کد تمیز: راهنمایی برای حرفه‌ای شدن در نرم افزار چابُک» (Clean Code: A Handbook of Agile Software Craftsmanship) نوشته «رابرت مارتین» (Robert C. Martin) ملغب به «عمو باب» (Uncle Bob) محبوب‌ترین و برترین کتاب کد تمیز به حساب می‌آید.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد

کلیک کنید

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

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

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

کتاب کد تمیز عمو باب به فارسی هم ترجمه شده است و می‌توان آن را با جستجو در اینترنت خریداری کرد.

همچنین کتاب خلاصه‌تری هم به زبان فارسی به رایگان در اینترنت در دسترس است که در ۳۶ صفحه در آن به کدنویسی تمیز پرداخته می‌شود و می‌توان آن را دانلود و مطالعه کرد.

کتاب کلین کد

در ادامه تعدادی دیگر از بهترین کتاب‌های کد تمیز معرفی شده‌اند.

بهترین کتاب های کلین کد کدامند؟

در این بخش علاوه بر کتاب کد تمیز عمو باب، ۵ تا از بهترین کتاب‌هایی معرفی شده‌اند که به شما کمک می‌کنند تا بهترین شیو‌ه‌های کدنویسی تمیز را بشناسید، بیاموزید و آن‌ها را در کدهایتان به کار بگیرید.

  1. کتاب «برنامه‌نویس عملگرا» (Pragmatic Programmer) نوشته «اندرو هانت» (Andrew Hunt) و «توماس دیوید» (Thomas David)
  2. کتاب «آموزش کد کامل» (Code Complete) نوشته «استیو مک‌کانِل» (Steve McConnell)
  3. کتاب «کلین کد در پایتون» (Clean Code in Python) نوشته «ماریانو آنایا» (Mariano Anaya)
  4. کتاب «برنامه نویس تمیز» (The Clean Coder) نوشته رابرت سی مارتین (عمو باب)

اکنون در آخرین بخش این مقاله به این بحث پرداخته‌ایم که کد تمیز در پایتون چیست و چطور می‌توان آن را در این زبان رعایت کرد.

کد تمیز در پایتون

پایتون یکی از زبان‌های برنامه نویسی فاخر و تمیز (از لحاظ کدنویسی) به حساب می‌آید، اما به هر حال وجود سینتکسی زیبا و تمیز با پیاده‌سازی اصول کد تمیز متفاوت است. با وجود مناسب بودن سینتکس پایتون، برنامه‌نویسان همچنان باید بهترین روش‌های کد نویسی پایتون را بیاموزند و الگوهای طراحی با پایتون را یاد بگیرند تا بتوانند کد تمیز بنویسند.

آموزش برنامه نویسی پایتون پیشرفته – ترفندهای Python
فیلم آموزش برنامه نویسی پایتون پیشرفته – ترفندهای Python در تم آف

کلیک کنید

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

کد تمیز در پایتون

الگوهای نوشتن کد تمیز در پایتون چیست ؟

الگو‌های کد تمیز در پایتون را می‌توان به صورت زیر دسته‌بندی کرد.

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

  • الگوهای کد تمیز در پایتون برای نام‌گذاری
  • الگوهای مربوط به توابع برای نوشتن کد تمیز در پایتون
  • چارچوب‌های کد تمیز مربوط به کلاس‌ها در پایتون

در ادامه هر یک از این موارد به همراه مثال شرح داده شده‌اند.

قراردادهای نام گذاری برای نوشتن کد تمیز در پایتون

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

آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت
فیلم آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت در تم آف

کلیک کنید

در ادامه چند مثال برای درک بهتر اصول و توافق‌های نام‌گذاری اجزای برنامه در پایتون بر پایه کد تمیز ارائه شده است.

مثال استفاده از نام های طولانی و توصیفی خوانا

مشابه مثال زیر، با استفاده از اسامی تفصیلی که خواندن آن‌ها آسان است، نیاز به نوشتن کامنت‌های غیرضروری از بین می‌رود.

# Not recommended
# The au variable is the number of active users
au = 105

# Recommended 
total_active_users = 105

مثال استفاده از اسامی تفضیلی نشان دهنده قصد و نیت

دیگر برنامه‌نویسان هم باید بتوانند از روی نام انتخاب شده بفهمند متغیرهای شما چه چیزی را ذخیره کرده‌اند. به طور خلاصه، خواندن کدهای شما باید آسان باشد و به راحتی بتوان آن‌ها را درک کرد.

# Not recommended
c = [“UK”, “USA”, “UAE”]

for x in c:
print(x)

# Recommended
cities = [“UK”, “USA”, “UAE”]
    for city in cities:
        print(city)

مثالی برای اجتناب از نام گذاری خلاصه و مبهم در پایتون

نام متغیرها نباید کوتاه و گیج‌کننده باشد. لازم است نام‌هایی توصیف کننده و طولانی‌تر انتخاب کنیم. در این خصوص مثالی در ادامه آمده است.

# Not recommended
fn = 'John'
Ln = ‘Doe’
cre_tmstp = 1621535852

# Recommended
first_name = ‘JOhn’
Las_name = ‘Doe’
creation_timestamp = 1621535852

مثالی برای انسجام در دایره واژگان برای نام گذاری در پایتون

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

آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت
فیلم آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت در تم آف

کلیک کنید

این کار را باید برای نام‌گذاری متغیرها، فایل‌ها، توابع و حتی ساختار دایرکتوری‌ها اجرایی کنیم. در ادامه مثالی برای درک بهتر نحوه انجام این کار ارائه شده است.

# Not recommended
client_first_name = ‘John’
customer_last_name = ‘Doe;

# Recommended
client_first_name = ‘John’
client_last_name = ‘Doe’

Also, consider this example:
#bad code
def fetch_clients(response, variable):
    # do something
    pass

def fetch_posts(res, var):
    # do something
    pass

# Recommended
def fetch_clients(response, variable):
    # do something
    pass

def fetch_posts(response, variable):
    # do something
    pass

مثالی برای شروع به ردیابی مشکلات پایگاه کد در کد ادیتور

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

  • بدست آوردن دید کامل نسبت به بدهی فنی
  • مشاهده زمینه و بافت مربوطه برای هر مشکل موجود در پایگاه کد
  • کاهش «تغییر زمینه» (Context Switching)
  • رفع مداوم بدهی فنی

می‌توان از ابزارهای متعددی برای ردیابی بدهی فنی استفاده کرد، اما ساده‌ترین و سریع‌ترین راه برای شروع استفاده از افزونه رایگان Stepsize در VSCode یا JetBrains است که می‌توان آن را با جیرا، Linear، آسانا و دیگر ابزارهای مدیریت پروژه قابل ادغام کرد.

Stepsize in VsCode

مثالی در خصوص عدم استفاده از اعداد جادویی Magic Numbers

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

import random

# Not recommended
def roll_dice():
    return random.randint(0, 4)  # what is 4 supposed to represent?

# Recommended
DICE_SIDES = 4

def roll_dice():
    return random.randint(0, DICE_SIDES)

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

در خصوص توابع در پایتون نیز اصول، قواعد و روش‌هایی برای نوشتن کد تمیز یا همان کلین کد وجود دارد که در ادامه به شرح آن‌ها پرداخته‌ایم و مثال‌هایی هم برای هر مورد ارائه کرده‌ایم.

آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت
فیلم آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت در تم آف

کلیک کنید

مثالی برای ثابت قدم بودن در قبال رعایت قراردادهای نام گذاری توابع در پایتون

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

# Not recommended
def get_users(): 
    # do something
    Pass

def fetch_user(id): 
    # do something
    Pass

def get_posts(): 
    # do something
    Pass

def fetch_post(id):
    # do something
    pass

# Recommended
def fetch_users(): 
    # do something
    Pass

def fetch_user(id): 
    # do something
    Pass

def fetch_posts(): 
    # do something
    Pass

def fetch_post(id):
    # do something
    pass

مثالی برای حفظ سادگی و اجرای تنها یک عملکرد در توابع

هر تابع باید تنها یک کار را انجام دهد، اما همان یک کار را به درستی انجام دهد. باید توابعی کوتاه و ساده بنویسیم که تنها یک وظیفه را اجرا می‌کنند. یک روش تجربی خوب در این خصوص این است که وقتی نام تابع شما مثلاً حاوی کلمه «and» باشد، آنگاه به احتمال زیاد بهتر است تابع خود را به ۲ تابع مختلف تبدیل و تقسیم کنید. در ادامه مثالی در خصوص حفظ اصل سادگی توابع در پایتون ارائه شده است.

# Not recommended
def fetch_and_display_users():
users = [] # result from some api call

    for user in users:
        print(user)


# Recommended
def fetch_usersl():
    users = [] # result from some api call
        return users

def display_users(users):
for user in users:
        print(user)

چارچوب های کد تمیز در پایتون برای کلاس ها

در خصوص کلاس در پایتون، نباید زمینه مازاد اضافه کنیم. این مسئله می‌تواند به وسیله اضافه کردن غیرضروری برخی کلمات به نام متغیرها در هنگام کار با کلاس‌ها رخ دهد. در ادامه برای درک بهتر این موضوع مثالی ارائه شده است.

# Not recommended
class Person:
    def __init__(self, person_username, person_email, person_phone, person_address):
        self.person_username = person_username
        self.person_email = person_email
        self.person_phone = person_phone
        self.person_address = person_address

# Recommended
class Person:
    def __init__(self, username, email, phone, address):

        self.username = username
        self.email = email
        self.phone = phone
        self.address = address

در مثال بالا، چون ما همین حالا در داخل کلاس Person هستیم، نیازی به اضافه کردن پیشوند Person به هر یک از متغیرهای کلاس وجود ندارد و کاری اضافه به حساب می‌آید.

ماژول بندی کردن کدها برای نوشتن کد تمیز در پایتون

برای اینکه کدها سازماندهی بهتری داشته باشند و نگهداری کدها آسان‌تر شود، در پایتون می‌توان منطق برنامه را در قالب چند فایل یا کلاس به نام ماژول بخش‌بندی کرد. ماژول در پایتون به بیان ساده فایلی است که نام آن به پسوند «.py» ختم می‌شود.

آموزش برنامه نویسی شی گرا در پایتون Python
فیلم آموزش برنامه نویسی شی گرا در پایتون Python در تم آف

کلیک کنید

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

آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد
فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در تم آف

کلیک کنید

جمع‌بندی

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

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

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.