🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: رفاکتورینگ (Refactoring) برای رسیدن به کد تمیز
موضوع کلی: برنامه نویسی
موضوع میانی: کدنویسی تمیز (Clean Code)
📋 سرفصلهای دوره (100 موضوع)
- 1. مقدمه: چرا کد تمیز مهم است؟
- 2. هزینه بدهی فنی (Technical Debt)
- 3. تعریف کد تمیز: ویژگیها و اصول
- 4. رفاکتورینگ چیست؟ (و چه چیزی نیست؟)
- 5. اولین قانون رفاکتورینگ: ابتدا تست بنویسید
- 6. بوی کد (Code Smell) چیست؟
- 7. شناسایی اولین بوهای کد در پروژه شما
- 8. کاتالوگ بوهای کد: یک نمای کلی
- 9. ابزارهای لازم برای رفاکتورینگ امن
- 10. رابطه بین چابکی (Agility) و کد تمیز
- 11. قدرت نامهای با معنی (Meaningful Names)
- 12. انتخاب نامهای گویا برای متغیرها
- 13. نامگذاری توابع: فعل یا عبارت فعلی؟
- 14. نامگذاری کلاسها: اسم یا عبارت اسمی؟
- 15. از رمزگذاری و پیشوندهای مجارستانی بپرهیزید
- 16. ثبات در نامگذاری: قانون یک کلمه برای یک مفهوم
- 17. جایگزینی اعداد جادویی (Magic Numbers) با ثابتهای نامدار
- 18. توابع باید کوچک باشند
- 19. قانون اول توابع: حتی کوچکتر!
- 20. اصل تک مسئولیتی (Single Responsibility Principle) برای توابع
- 21. استخراج متد (Extract Method): اولین و مهمترین تکنیک رفاکتورینگ
- 22. تعداد آرگومانهای یک تابع
- 23. آرگومانهای پرچمی (Flag Arguments) و چگونگی حذف آنها
- 24. اشیاء به عنوان آرگومان: معرفی Parameter Object
- 25. از عوارض جانبی (Side Effects) بپرهیزید
- 26. جداسازی دستور از پرس و جو (Command-Query Separation)
- 27. جایگزینی متغیر موقت با پرس و جو (Replace Temp with Query)
- 28. معرفی متغیر گویا (Introduce Explaining Variable)
- 29. تجزیه عبارت شرطی (Decompose Conditional)
- 30. حذف عبارتهای شرطی تودرتو با Guard Clauses
- 31. جایگزینی شرطی با چندریختی (Replace Conditional with Polymorphism)
- 32. استخراج کلاس (Extract Class) از توابع طولانی
- 33. توابع به عنوان شهروندان درجه اول
- 34. نامهای خوب برای توابع: بیانگر قصد و نیت
- 35. سطوح انتزاع (Levels of Abstraction) در یک تابع
- 36. قانون پایینرفتن (The Step-down Rule): خواندن کد مانند یک روایت
- 37. حذف کدهای مرده (Dead Code) در توابع
- 38. کامنتها دروغ میگویند
- 39. کد خود-مستند (Self-Documenting Code)
- 40. کامنتهای خوب: کامنتهای قانونی و توضیحی
- 41. کامنتهای بد: نویز و اطلاعات اضافی
- 42. حذف کدهای کامنت شده: به کنترل نسخه اعتماد کنید
- 43. قالببندی کد: اهمیت خوانایی
- 44. قالببندی عمودی: فاصلهگذاری و تراکم
- 45. قالببندی افقی: طول خطوط و تورفتگی
- 46. کپسولهسازی (Encapsulation) و پنهانسازی دادهها
- 47. تفاوت بین اشیاء و ساختارهای دادهای
- 48. قانون دیمیتر (Law of Demeter): کمتر صحبت کن
- 49. قطارهای کد (Code Trains) و چگونگی جلوگیری از آنها
- 50. کلاسهای کوچک با مسئولیت واحد
- 51. رفاکتورینگ: انتقال متد (Move Method)
- 52. رفاکتورینگ: انتقال فیلد (Move Field)
- 53. رفاکتورینگ: استخراج کلاس (Extract Class)
- 54. رفاکتورینگ: درونخطی کردن کلاس (Inline Class)
- 55. رفاکتورینگ: پنهان کردن نماینده (Hide Delegate)
- 56. رفاکتورینگ: معرفی متد خارجی (Introduce Foreign Method)
- 57. رفاکتورینگ: معرفی افزونه محلی (Introduce Local Extension)
- 58. کلاسهای خدا (God Classes) و نحوه شکستن آنها
- 59. دادههای چسبنده (Data Clumps) و استخراج آنها به کلاس
- 60. وراثت در مقابل ترکیب (Inheritance vs. Composition)
- 61. اصل جایگزینی لیسکوف (Liskov Substitution Principle)
- 62. کلاسهای انتزاعی و اینترفیسها
- 63. اجتناب از کلاسهای با دادههای صرف (Data Classes)
- 64. مدیریت خطا: بخشی از منطق برنامه
- 65. استفاده از استثناها (Exceptions) به جای کدهای خطا
- 66. استثناهای بررسیشده (Checked) در مقابل بررسینشده (Unchecked)
- 67. نوشتن بلوکهای try-catch-finally تمیز
- 68. از برگرداندن null بپرهیزید
- 69. از ارسال null به متدها بپرهیزید
- 70. مرزها: کار با کدهای شخص ثالث (Third-Party Code)
- 71. سه قانون توسعه تست-محور (TDD)
- 72. تستها به عنوان شبکه ایمنی برای رفاکتورینگ
- 73. ویژگیهای یک تست تمیز: اصول FIRST
- 74. یک Assert در هر تست
- 75. پوشش کد (Code Coverage) چیست و چگونه به ما کمک میکند؟
- 76. تستهای واحد، تستهای یکپارچهسازی و تستهای سرتاسری
- 77. شکستن وابستگیها برای تستپذیری
- 78. استفاده از Mockها و Stubها
- 79. رفاکتورینگ کدهای غیرقابل تست
- 80. حفظ تمیزی کد تست
- 81. الگوی ساخت-عمل-ادعا (Arrange-Act-Assert)
- 82. رفاکتورینگ کاتای بولینگ (Bowling Game Kata)
- 83. رفاکتورینگ تدریجی: تکنیک شاخه با انتزاع (Branch by Abstraction)
- 84. اصل خشک (Don't Repeat Yourself – DRY)
- 85. اصل سادگی (Keep It Simple, Stupid – KISS)
- 86. شما به آن نیاز نخواهید داشت (You Ain't Gonna Need It – YAGNI)
- 87. اصول SOLID: مقدمهای بر طراحی تمیز
- 88. اصل تک مسئولیتی (Single Responsibility Principle – SRP)
- 89. اصل باز-بسته (Open-Closed Principle – OCP)
- 90. اصل جایگزینی لیسکوف (Liskov Substitution Principle – LSP)
- 91. اصل تفکیک رابط (Interface Segregation Principle – ISP)
- 92. اصل وارونگی وابستگی (Dependency Inversion Principle – DIP)
- 93. همزمانی (Concurrency): چالشها و راهکارها
- 94. دفاع از همزمانی: قفل کردن و جداسازی
- 95. شناسایی بوهای کد در سطح معماری
- 96. قانون پسر پیشاهنگ: همیشه کمپ را تمیزتر از آنچه تحویل گرفتی ترک کن
- 97. نقش بازبینی کد (Code Review) در حفظ کد تمیز
- 98. ادغام رفاکتورینگ در فرآیند توسعه روزمره
- 99. مطالعه موردی: رفاکتورینگ یک پروژه واقعی از ابتدا تا انتها
- 100. سفر به سوی استادی: یادگیری و بهبود مستمر
رفاکتورینگ: کلید طلایی کدنویسی تمیز و حرفهای
آیا از کدهای پیچیده و درهم و برهم خسته شدهاید؟ آیا زمان زیادی را صرف فهمیدن کدهای خود و دیگران میکنید؟ آیا از ایجاد باگهای جدید در هنگام تغییر کد میترسید؟ راه حل اینجاست! دوره جامع “رفاکتورینگ برای رسیدن به کد تمیز” به شما کمک میکند تا کدهای خود را به اثری هنری تبدیل کنید: تمیز، خوانا، و قابل توسعه.
تصور کنید کدهایی دارید که به راحتی میتوانید آنها را درک کنید، تغییر دهید و توسعه دهید. کدهایی که باگهای کمتری دارند و نگهداری از آنها بسیار سادهتر است. با دوره رفاکتورینگ، این رویا به واقعیت تبدیل میشود. شما نه تنها اصول رفاکتورینگ را یاد میگیرید، بلکه در عمل با تکنیکها و الگوهای مختلف رفاکتورینگ آشنا میشوید و مهارتهای خود را به سطح جدیدی ارتقا میدهید.
درباره دوره
دوره “رفاکتورینگ برای رسیدن به کد تمیز” یک دوره جامع و عملی است که به شما میآموزد چگونه کدهای موجود خود را به کدهای تمیز و قابل فهم تبدیل کنید. در این دوره، شما با مفاهیم کلیدی کدنویسی تمیز، الگوهای طراحی و تکنیکهای رفاکتورینگ آشنا میشوید و یاد میگیرید چگونه آنها را در پروژههای واقعی به کار ببرید. این دوره شامل مثالهای عملی، تمرینها و پروژههای واقعی است که به شما کمک میکند تا مهارتهای خود را تقویت کنید و در دنیای واقعی به یک برنامه نویس حرفهای تبدیل شوید.
موضوعات کلیدی
- مبانی کدنویسی تمیز
- اصول طراحی SOLID
- الگوهای طراحی (Design Patterns)
- تکنیکهای رفاکتورینگ (Extract Method, Move Method, Inline Method و غیره)
- تشخیص “بوی بد” کد (Code Smells)
- رفاکتورینگ به سمت الگوهای طراحی
- تست نویسی و نقش آن در رفاکتورینگ
- ابزارهای رفاکتورینگ
- رفاکتورینگ پایگاه داده
- رفاکتورینگ در تیمهای بزرگ
مخاطبان دوره
این دوره برای افراد زیر مناسب است:
- برنامه نویسان مبتدی و متوسط که میخواهند کیفیت کدهای خود را ارتقا دهند.
- برنامه نویسان حرفهای که به دنبال روشهای موثر برای بهبود کدهای موجود هستند.
- سرپرستان تیم و معماران نرمافزار که میخواهند استانداردهای کدنویسی را در تیم خود بهبود بخشند.
- دانشجویان رشته کامپیوتر و مهندسی نرمافزار که میخواهند مهارتهای عملی خود را در زمینه کدنویسی افزایش دهند.
- هر کسی که به دنبال نوشتن کدهای تمیز، قابل فهم و قابل نگهداری است.
چرا این دوره را بگذرانیم؟
با گذراندن این دوره، شما:
- کدهای تمیزتر و قابل فهمتری خواهید نوشت.
- زمان کمتری را صرف فهمیدن و رفع اشکال کدهای خود و دیگران خواهید کرد.
- احتمال ایجاد باگهای جدید در هنگام تغییر کد را کاهش خواهید داد.
- کیفیت و پایداری نرمافزارهای خود را افزایش خواهید داد.
- مهارتهای خود را به عنوان یک برنامه نویس حرفهای ارتقا خواهید داد.
- ارزش خود را در بازار کار افزایش خواهید داد.
- از کدنویسی لذت بیشتری خواهید برد!
سرفصلهای دوره
دوره “رفاکتورینگ برای رسیدن به کد تمیز” شامل 100 سرفصل جامع و کاربردی است که شما را از صفر تا صد در این زمینه راهنمایی میکند. در اینجا تنها به برخی از سرفصلهای کلیدی اشاره میکنیم:
- بخش 1: مقدمهای بر کدنویسی تمیز
- تعریف کدنویسی تمیز و اهمیت آن
- اصول و فلسفههای کدنویسی تمیز (READABLE, MAINTAINABLE, TESTABLE)
- تأثیر کدنویسی تمیز بر کیفیت نرمافزار و تیم توسعه
- بخش 2: اصول طراحی SOLID
- اصل تک مسئولیتی (Single Responsibility Principle)
- اصل باز/بسته (Open/Closed Principle)
- اصل جایگزینی لیسکوف (Liskov Substitution Principle)
- اصل جداسازی رابط (Interface Segregation Principle)
- اصل وارونگی وابستگی (Dependency Inversion Principle)
- کاربرد عملی اصول SOLID در پروژهها
- بخش 3: الگوهای طراحی (Design Patterns)
- معرفی الگوهای طراحی و انواع آنها
- الگوهای سازنده (Creational Patterns) مانند Singleton, Factory Method, Abstract Factory, Builder
- الگوهای ساختاری (Structural Patterns) مانند Adapter, Bridge, Composite, Decorator, Facade, Proxy
- الگوهای رفتاری (Behavioral Patterns) مانند Chain of Responsibility, Command, Iterator, Observer, Strategy, Template Method, Visitor
- انتخاب الگوی طراحی مناسب برای حل مسائل مختلف
- بخش 4: تکنیکهای رفاکتورینگ
- تشخیص “بوی بد” کد (Code Smells) و انواع آن (Long Method, Large Class, Duplicate Code, Primitive Obsession و غیره)
- تکنیک Extract Method: تقسیم یک متد طولانی به چند متد کوچکتر
- تکنیک Inline Method: جایگزینی یک متد کوتاه با بدنه آن
- تکنیک Move Method: انتقال یک متد به کلاسی که بیشتر به آن تعلق دارد
- تکنیک Extract Class: جدا کردن بخشی از یک کلاس به کلاس جدید
- تکنیک Replace Temp with Query: جایگزینی متغیر موقت با یک متد
- تکنیک Introduce Parameter Object: جایگزینی چند پارامتر با یک شی
- تکنیک Preserve Whole Object: پاس کردن کل شی به جای چند فیلد آن
- تکنیک Replace Conditional with Polymorphism: جایگزینی عبارات شرطی پیچیده با چندریختی
- تکنیک Replace Magic Number with Symbolic Constant: جایگزینی اعداد جادویی با ثابتهای نامدار
- تمرینهای عملی رفاکتورینگ با استفاده از ابزارهای IDE
- بخش 5: تست نویسی و رفاکتورینگ
- اهمیت تست نویسی در فرایند رفاکتورینگ
- انواع تستها (Unit Tests, Integration Tests, Acceptance Tests)
- نوشتن تستهای قابل اعتماد و کارآمد
- رفاکتورینگ کدها با اطمینان از صحت عملکرد آنها با استفاده از تستها
- تستنویسی پیش از رفاکتورینگ (Test-Driven Development)
- بخش 6: ابزارهای رفاکتورینگ
- معرفی ابزارهای IDE برای رفاکتورینگ (IntelliJ IDEA, Eclipse, Visual Studio)
- استفاده از ابزارهای تحلیل کد (Static Analysis Tools) برای شناسایی مشکلات کد
- استفاده از ابزارهای اتوماتیک رفاکتورینگ
- بخش 7: رفاکتورینگ پایگاه داده
- چالشهای رفاکتورینگ پایگاه داده
- تکنیکهای رفاکتورینگ پایگاه داده (Normalize Data, Introduce Foreign Key, Rename Column و غیره)
- استفاده از ابزارهای مهاجرت پایگاه داده (Database Migration Tools)
- بخش 8: رفاکتورینگ در تیمهای بزرگ
- اهمیت هماهنگی در رفاکتورینگ تیمی
- استفاده از سیستم کنترل نسخه (Version Control System)
- برگزاری جلسات کد ریویو (Code Review)
- تعیین استانداردهای کدنویسی و اجرای آنها
- بخش 9: پروژههای عملی رفاکتورینگ
- کار بر روی پروژههای واقعی و رفاکتورینگ کدهای پیچیده
- تحلیل و بررسی کدهای نمونه و ارائه راهکارهای رفاکتورینگ
- اجرای پروژههای تیمی و همکاری در رفاکتورینگ کدها
- … و دهها سرفصل دیگر!
همین امروز در دوره “رفاکتورینگ برای رسیدن به کد تمیز” ثبت نام کنید و قدم در راه تبدیل شدن به یک برنامه نویس حرفهای بگذارید!
📦 مجموعه شامل:
- ✅ ویدیوهای فارسی
- ✅ پادکست های صوتی فارسی
- ✅ کتاب PDF فارسی
- ✅ کتاب ۱۰۰۰ نکته فارسی خودمونی
- ✅ کتاب ۱۰۰۰ نکته رسمی فارسی
- ✅ کتاب ۱۰۰۰ پرسش و پاسخ ۴ گزینه ای فارسی
📚 محتوای این محصول آموزشی (پکیج کامل)
💡 این محصول یک نسخهٔ کامل و جامع است
تمامی محتوای آموزشی این کتاب در قالب یک بستهی کامل و یکپارچه ارائه میشود و شامل تمام نسخهها و فایلهای موردنیاز برای یادگیری است.
🎁 محتویات کامل بسته دانلودی
- ویدیوهای آموزشی فارسی — آموزش قدمبهقدم، کاربردی و قابل فهم
- پادکستهای صوتی فارسی — توضیح مفاهیم کلیدی و نکات تکمیلی
- کتاب PDF فارسی — شامل کلیهٔ سرفصلها و محتوای آموزشی
- کتاب خلاصه نکات ویدیوها و پادکستها – نسخه PDF — مناسب مرور سریع و جمعبندی مباحث
- کتاب صدها نکته فارسی (خودمونی) – نسخه PDF — زبان ساده و کاربردی
- کتاب صدها نکته رسمی فارسی – نسخه PDF — نگارش استاندارد، علمی و مناسب چاپ
-
کتاب صدها پرسش و پاسخ تشریحی – نسخه PDF
— هر سؤال بلافاصله همراه با پاسخ کامل و شفاف ارائه شده است؛ مناسب درک عمیق مفاهیم و رفع ابهام. -
کتاب صدها پرسش و پاسخ چهارگزینهای – نسخه PDF (نسخه یادگیری سریع)
— پاسخها بلافاصله پس از سؤال قرار دارند؛ مناسب یادگیری سریع و تثبیت مطالب. -
کتاب صدها پرسش و پاسخ چهارگزینهای – نسخه PDF (نسخه خودآزمایی پایانبخش)
— پاسخها در انتهای هر بخش آمدهاند؛ مناسب آزمون واقعی و سنجش میزان یادگیری. -
کتاب تمرینهای درست / نادرست (True / False) – نسخه PDF
— مناسب افزایش دقت مفهومی و تشخیص صحیح یا نادرست بودن گزارهها. -
کتاب تمرینهای جای خالی – نسخه PDF
— تقویت یادگیری فعال و تسلط بر مفاهیم و اصطلاحات کلیدی.
🎯 این بسته یک دورهٔ آموزشی کامل و چندلایه است؛ شامل آموزش تصویری، صوتی، کتابها، تمرینها و خودآزمایی .
ℹ️ نکات مهم هنگام خرید
- این محصول به صورت فایل دانلودی کامل ارائه میشود و نسخهٔ چاپی ندارد.
- تمامی فایلها و کتابها کاملاً فارسی هستند.
- توجه: لینکهای اختصاصی دوره طی ۴۸ ساعت پس از ثبت سفارش ارسال میشوند.
- نیازی به درج شماره موبایل نیست؛ اما برای پشتیبانی سریعتر توصیه میشود.
- در صورت بروز مشکل در دانلود با شماره 09395106248 تماس بگیرید.
- اگر پرداخت انجام شده ولی لینکها را دریافت نکردهاید، نام و نام خانوادگی و نام محصول را پیامک کنید تا لینکها دوباره ارسال شوند.
💬 راههای ارتباطی پشتیبانی:
واتساپ یا پیامک:
09395106248
تلگرام: @ma_limbs





نقد و بررسیها
هنوز بررسیای ثبت نشده است.