درس شماره ک
درس شماره دو
درس شماره سه
درس شماره چهار
دوره عملی الگوها، اصول و تکنیکهای Clean Code
محل برگزاری | مدرس | تاریخ شروع اولین جلسه | روز و ساعت | مدت زمان کل دوره | تعداد جلسات | هزینه ثبتنام زود هنگام | هزینه ثبتنام عادی | لینک ثبت نام |
---|---|---|---|---|---|---|---|---|
آنلاین | مسعود بهرامی | ۹ اردیبهشت ۱۳۹۹ | ۵شنبهها ساعت ۱۵:۰۰ تا ۱۸:۰۰ | ۲۴ ساعت | ۸ جلسه ۳ ساعته | ۱۰۰۰۰۰۰ هزار تومان | ۱۴۰۰۰۰ هزار تومان | ثبت نام |
معرفی دوره
این دوره با هدف آموزش مهمترین الگوها، اصول و روشهای Clean Code طراحی شده است. در این دوره ما به اصول حرفهای گری و استادکاری (Craftsmanship) در نرمافزار و لزوم اهمیت آن و ارتباط آن با Clean Code میپردازیم و همچنین بر اهمیت و لزوم اصول حرفهای گری در توسعه نرمافزار خواهیم پرداخت. سپس در قالب پروژه و تمرینها و چالشها به پیاده سازی مباحث و سرفصلای زیر خواهیم پرداخت.
در طی دوره از زبان #C برای پیادهسازی کدها استفاده میکنیم، اما مباحث و مطالب دوره برای هر زبان شیگرای دیگری نیز قابل استفاده و اعمال میباشد.
برای این دوره چالشها و مسائل مختلف و بسیار زیادی در نظر گرفته شده، و دانشجویان با حل کردن و پیاده سازی این چالشها و مسائل میتوانند با هدایت و آموزش معلم خود به تسلط بیشتر و بهتری بر مطالب ارائه شده دست پیدا کنند.
همچنین در طول دوره چندین جلسه رترو جهت بحث و تبادل نظر و تعمق بیشتر بصورت گروهی برگزار خواهد شد.
سرفصلهای دوره
-
کد کثیف به چه معنی است؟
-
چرا باید کد را تمیز کنیم و تمیز نگه داریم؟
- دلایل و مزیتهای استفاده از اصول و قواعد Clean Code
-
Software Craftsmanship
- توسعه رفتار حرفه ای فردی و استادکاری
- حرفهای گری، استادکاری و Clean Code
-
معیارهای و فاکتورهای کد خوب و بد
-
تبدیل کد بد به کد خود
-
شناسایی رایحههای بد در کد
- Mysterious Name
- Duplicated Code
- Long Function
- Long Parameter List
- Global Data
- Mutable Data
- Divergent Change
- Shotgun Surgery
- Feature Envy
- Data Clumps
- Primitive Obsession
- Repeated Switches
- Loops
- Lazy Element
- Speculative Generality
- Temporary Field
- Message Chains
- Middle Man
- Insider Trading
- Large Class
- Data Class
- Refused Bequest
- Comments
- Alternative Classes with Different Interfaces
- نگاهی دقیق تر به قانون Boy Scout جهت تمیز کردن تدریجی کدهای موجود
- نام گذاری صحیح
- ضرورت و اهمیت انتخاب نام گذاری مناسب
- نگاهی به نام گذاری متغیرها، متدها و کلاسها به عنوان یک ابزار ارتباطی بین اعضای تیم
- معرفی اصول و قواعد نامگذاری برای متغیرها، متدها، کلاسها و اینترفیسها
- بررسی و یادگیری نحوه ساختار بندی متدها در یک کلاس
- اصول، قواعد و تکنیکهای نوشتن متدهای(توابع) تمیز
- Small!
- بررسی مفهوم توابعی که فقط یک کار انجام میدهند
- سطوح انتزاع در متدها و تاثیر آن در خوانایی، فهم و نگهداری کد
- عبارت Switch
- قواعد نامگذاری صحیح و انتخاب نامهای خوش تعریف برای توابع
- آرگومانهای توابع
- بررسی دقیق مفهوم Side-Effect
- Command-Query Seqregation
- بررسی اصل Don’t Repeat Yourself
- نگاهی به مفهوم Fail fast در توابع
- مقایسه و بررسی برگرداندن Error Code یا پرتاب کردن Exception در توابع
- Return Early
- Mayfly variables
- مقایسه سبک برنامه نویسی شیگرا و پروسیجرال
- Data Abstraction
- جریان کنترل برنامه
- Data/object anti-symmetry
- The low of Demeter
- Data Transfer Object
- بررسی اصول برنامهنویسی شیگرا
- Messaging
- Polymorphism
- Encapsulation
- Abstraction
- Inheritence
- مقایسه Inheritance و Composition
- اصول، قواعد و تکنیکهای نوشتن کلاسهای تمیز
- Cohesion
- Coupling
- Single Responsibility Rule
- Isolation from change
- Outline Rule
- Primitive Obsession
- اصل Proximity در تعریف کلاسها
- بررسی کلاسها از نقطه نظر اندازه
- کلاسهایی که بیش از حد کوچک هستند
- کلاسهایی که بیش از حد بزرگ هستند
- Separation of Main
- Dependency Injection
- Cross-Cutting Concern
- Optimize Decision Making
- بررسی دقیق اصول کامنت گذاری صحیح و تمیز در کد
- کامنت گذاری به عنوان یکی از رایحههای کد بد
- احساسات درونی فرد توسعه دهنده و کامنتها
- Bloated Header
- کامنتهای خوب
- کامنتهای بد
- کامنتهای تمیز
- Defect Log
- کامنتهای بیش از اندازه بزرگ یا کوچک
- کامنتهای اضافی و غیر ضرور
- Zombie Code
- Necessity and Crunch
- تبدیل کامنتها به داکیومنت
- بررسی فرمت بندی و استایل کد نویسی و تاثیر آن بر خوانایی و نگهداری کد
- منظور از فرمت و استایل کد نویسی چیست؟
- چرا باید نسبت به فرمت کد حساس بود؟
- فرمت بندی افقی
- فرمت بندی عمودی
- Team rules
- قوانین فرمت و نگارش کد آقای Uncle Bob
- بررسی مکانیزمها و تکنیکهای کنترل خطا در سطوح مختلف برنامه
- بررسی مشکلات نوع برگشتی نال توسط توابع
- بررسی مکانیزمهای Exception خطا در لایههای مختلف برنامه
- بررسی موارد استفاده نابجا و غیر صحیح از Exception
- تعریف و مهیا کردن Context مناسب در Exeptionها
- تریف کلاس Exception از دید استفاده کننده از کلاس
- تستهای واحد (Unit Testing) و TDD
- سه قانون آقای Uncle Bob در مورد TDD
- نوشتن تستهای تمیز
- بررسی رابطه تعداد Assertها موجود در هر سناریوهای Test
- Testهای تمیز
- F.I.R.S.T
- Emergent Design
- ضرورت و اهمیت Emergent Design در دنیای نرمافزار
- اصول و قوانین Simple Design
- طراحی کلاسها و متدهای کوچک
- بررسی دقیق مسائل مرتبط با همزمانی و چند نخی از دید Clean Code
- بررسی باورها و برداشتهای غلط در مورد همزمانی و چند نخی
- بررسی اصول Concurrency Defense
- بررسی دقیق وابستگیها بین متدهایی که باید با هم Sync باشند
- نوشتن تست برای بخشهای که از چند نخی استفاده میکنند
- نوشتن تست برای بخشهای که از همزمانی استفاده میکنند
- معرفی و آشنایی با مهمترین و متدوالترین Heuristicها در طراحی و برنامه نویسی شی گرا و کد تمیز
- شناسایی و حذف dead codeها
- تشخیص و حذف کدهای تکراری
- تعریف پیادهسازی و محاسبه متریکهای ارزیابی سلامت کد و اطمینان از بهبود یافتن کدها
- الگوهای کلاسیک طراحی شیگرا
- Creational Patters
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Structural Patters
- Adapter
- Bridge
- Campsite
- Decorator
- Façade
- Flyweight
- Proxy
- Behavioral Patters
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
- نگاهی به Service Locator به عنوان یک ضد الگو
- بررسی اصول ۵ گانه S.O.L.I.D
- اصل Single Responsibility
- اصل Open-Closed
- اصل Liskove Substitution
- اصل Interface Segregation
- اصل Dependency Inversion
- General Responsibility Assignment Software Patterns(GRASP)
- Creational Patters
این دوره مخصوص چه افرادی است :
- توسعهدهندگان
- طراحان و معماران نرمافزار
- CTOها و
- Team Leader هایی
که دغدغه توسعه یک نرمافزار با کیفیت بالا را دارند.
پیش نیاز :
مخاطبین برای شرکت در این دوره نیاز میباشد که:
- تجربه برنامه نویسی داشته باشند.
- با مفاهیم پایه و ابتدایی برنامه نویسی شیگرا آشنا باشند.
ابزارها، تکنولوژیهای و زبان برنامهنویسی مورد استفاده در دوره:
این دوره آموزشی به زبان برنامهنویسی و یا تکنولوژی خاصی وابسته نیست و محتوای آن قابل پیادهسازی در تمامی زبانهای برنامهنویسی شیگرا میباشد.
در این دوره برای پیادهسازی پروژهها و کدها از زبان برنامهنویسی #C و پلت فرم dot net core استفاده میکنیم.
برخی از لایبرریهای مورد استفاده در طول دوره:
- Moq
- FakeItEasy
- NSubstitute
- NBuilder
- FluentAssertions
- Ncrunch
این محصول هیچ محتوایی جهت دریافت ندارد
You may also like…
1,400,000 تومان 1,000,000 تومان
- دسترسی به فایل محصول به صورت مادامالعمر
- تضمین کیفیت آموزش ها
- فعالسازی آنی لینک دانلود، پس از ثبت سفارش
- فروش فقط از طریق دیجی آکادمی
- به صورت رایگان یک یا چند آموزش را دریافت می کنید.
1,400,000 تومان 1,000,000 تومان
Reviews
There are no reviews yet.