احسان گازار

برنامه نویس، مدرس، بلاگر و صخره نورد

دوره آنلاین کد تمیز

دوره آنلاین کد تمیز


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


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


یعنی فرض کنید قرار است اطلاعات را از API بخوانید! آن‌ها از شما می‌خواهند که اطلاعات بیشتری را نمایش دهید و یا تحلیل کرده و سپس نمایش دهید


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


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


این‌ها مقالاتی است که من در سایت انگلیسی خود در این موضوع منتشر کرده‌ام

و این‌ها کتاب‌هایی است که در این موضوع خوانده‌ام و اگر علاقه‌مندید می‌توانید شما هم بخوانید

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

در این دوره چه یاد خواهید گرفت؟

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

سوالات متداول:

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

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

محتوای دوره

  • مقدمات

  • معرفی دوره کد تمیز یا Clean Code و تعریف چرایی و چگونگی آن
  • لینک به تلگرام پروژه
  • اصول کلی

  • معرفی Loose Coupling و نحوه‌ی برنامه‌نویسی آن
  • معرفی مفهوم High Cohesion
  • معرفی مفهوم Change is Local
  • تعریف Mind Size بودن هر Component یا Function
  • نعریف Easy to Remove بودن Function ها یا Component ها
  • تعاریف و اصطلاحات

  • معرفی اصطلاحات KISS , DRY و YAGNI
  • نام‌گذاری

  • اسم گذاری با مفهوم و معنی برای متغیر‌ها و کلاس‌ها و همه چی
  • نکات در Function ‌ها

  • از تعداد کمی ورودی در function ها استفاده کنید! حداکثر 2 تا یا کمتر
  • استفاده از functionهای کوچکتر برای هر کار! و هر Function بهتر است تنها یک کار انجام دهد
  • ورودی‌های function ها را تغییر ندهید
  • از شرط برای گرفتن نتایج مختلف در Function ها استفاده نکنید
  • در Function ها از Side Effect دوری کنید
  • شرط‌ها را encapsulate کنید
  • از نوشتن شرط‌های منفی خودداری کنید
  • نکات در Objectها و Data Structure ‌ها

  • نوشتن getter و setter همیشه بهتر است
  • نکات در Class ها

  • استفاده از Method Chaining
  • در Class ها به Composition ارجحیت بیشتری نسبت به Inheritance بدهید
  • آشنایی و معرفی SRP و پیاده‌سازی آن
  • معرفی و برررسی مفهوم OCP در کلاس‌ها
  • نکات در Testing

  • هر تست می‌بایست یک concept معنا دار را اجرایی کند
  • هر تست می‌بایست در محیط ایزوله خود اجرا شود
  • نکات در Comment ها

  • به اندازه‌ی کافی Comment بنویسید نه بیشتر
  • لینک به گیت‌هاب کد‌های بررسی شده در این دوره
  • آموزش‌ بیشتر

  • آشنایی با Software Architecture ها