کتاب Object-Oriented Design Principles for Cleaner Code با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
کدنویسی تمیز با اصول طراحی شیء گرا: یک قدم تا حرفهای شدن! کدنویسی تمیز با اصول طراحی شیء گرا: یک قدم تا حرفهای شدن! معرفی دوره آیا از دست کدهای پیچیده، گیجکننده و غیرقابل توسعه خسته شدهاید؟ آیا می...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Object-Oriented Design Principles for Cleaner Code
موضوع کلی: برنامه نویسی
موضوع میانی: کدنویسی تمیز (Clean Code)
📋 سرفصلهای دوره
- 1. مقدمهای بر کیفیت کد و بدهی فنی (Technical Debt)
- 2. هزینه نگهداری کدهای کثیف
- 3. کدنویسی تمیز (Clean Code) چیست؟
- 4. مروری بر اصول طراحی شیءگرا (Object-Oriented Design)
- 5. چرا طراحی شیءگرا برای کد تمیز حیاتی است؟
- 6. قانون پسر پیشاهنگ: محوطه اردو را تمیزتر از آنچه تحویل گرفتی، ترک کن
- 7. ذهنیت یک صنعتگر نرمافزار (Software Craftsman)
- 8. نامهای معنادار: شالوده اصلی کد خوانا
- 9. انتخاب نامهای نیتآشکار (Intention-Revealing Names)
- 10. پرهیز از اطلاعات غلط و کلمات بیمعنی در نامگذاری
- 11. قواعد نامگذاری برای کلاسها و اینترفیسها
- 12. قواعد نامگذاری برای متدها و متغیرها
- 13. توابع: قانون اول - کوچک بودن
- 14. توابع: قانون دوم - انجام فقط یک کار
- 15. سطوح انتزاع در یک تابع
- 16. آرگومانهای توابع: کمترین تعداد ممکن
- 17. جلوگیری از اثرات جانبی (Side Effects) در توابع
- 18. جداسازی دستور و پرسوجو (Command-Query Separation)
- 19. مدیریت خطا به جای برگرداندن کدهای خطا
- 20. کامنتها: چه زمانی و چگونه استفاده کنیم
- 21. تفاوت کامنتهای خوب و بد
- 22. حذف کامنتهای زائد و اطلاعات تاریخی
- 23. قالببندی کد برای خوانایی بیشتر
- 24. قالببندی عمودی: فاصلهگذاری و گروهبندی
- 25. قالببندی افقی: طول خطوط و همترازی
- 26. اشیاء و ساختمان دادهها: تفاوت در چیست؟
- 27. انتزاع (Abstraction): پنهانسازی جزئیات پیادهسازی
- 28. کپسولهسازی (Encapsulation): حفاظت از دادهها و رفتار
- 29. ارثبری (Inheritance): رابطه "Is-A"
- 30. چندریختی (Polymorphism): یک رابط، چندین پیادهسازی
- 31. انسجام (Cohesion): چرا کلاسها باید متمرکز باشند؟
- 32. هدف: دستیابی به انسجام بالا (High Cohesion)
- 33. وابستگی (Coupling): ارتباط بین کلاسها
- 34. هدف: دستیابی به وابستگی کم (Loose Coupling)
- 35. ترجیح ترکیب (Composition) به ارثبری
- 36. تفاوت اینترفیسها و کلاسهای انتزاعی
- 37. قانون دیمیتر (Law of Demeter): با غریبهها صحبت نکن
- 38. اصل بگو، نپرس (Tell, Don't Ask)
- 39. مقدمهای بر اصول SOLID
- 40. اصل مسئولیت واحد (Single Responsibility Principle - SRP)
- 41. یک کلاس، یک دلیل برای تغییر
- 42. شناسایی موارد نقض SRP و نشانههای آن
- 43. بازآفرینی (Refactoring) کد برای رسیدن به SRP
- 44. SRP در سطح متدها و ماژولها
- 45. اصل باز/بسته (Open/Closed Principle - OCP)
- 46. باز برای توسعه، بسته برای تغییر
- 47. دستیابی به OCP با استفاده از انتزاع و چندریختی
- 48. شناسایی موارد نقض OCP
- 49. الگوی طراحی استراتژی (Strategy Pattern) به عنوان نمونهای از OCP
- 50. اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP)
- 51. زیرنوعها باید قابل جایگزینی با نوع پایه خود باشند
- 52. مثال کلاسیک "مربع-مستطیل" و نقض LSP
- 53. شناسایی موارد نقض LSP در وراثت
- 54. طراحی قراردادها (Contracts) با در نظر گرفتن LSP
- 55. اصل تفکیک اینترفیس (Interface Segregation Principle - ISP)
- 56. کلاینتها نباید به متدهایی که استفاده نمیکنند وابسته باشند
- 57. نشانههای اینترفیسهای "چاق" (Fat Interfaces)
- 58. تقسیم اینترفیسهای بزرگ به اینترفیسهای کوچکتر و نقشمحور
- 59. ISP و تأثیر آن بر طراحی سیستم
- 60. اصل وارونگی وابستگی (Dependency Inversion Principle - DIP)
- 61. ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند
- 62. هر دو باید به انتزاعها وابسته باشند
- 63. جزئیات باید به انتزاعها وابسته باشند، نه برعکس
- 64. وارونگی کنترل (Inversion of Control - IoC)
- 65. تزریق وابستگی (Dependency Injection - DI)
- 66. انواع تزریق وابستگی: Constructor, Setter, Interface
- 67. کانتینرهای تزریق وابستگی (DI Containers)
- 68. جمعبندی SOLID: چگونه این اصول با هم کار میکنند
- 69. اصل خودت را تکرار نکن (Don't Repeat Yourself - DRY)
- 70. اصل سادگی (Keep It Simple, Stupid - KISS)
- 71. اصل به آن نیاز نخواهی داشت (You Ain't Gonna Need It - YAGNI)
- 72. اصل کمترین شگفتی (Principle of Least Astonishment - POLA)
- 73. جداسازی دغدغهها (Separation of Concerns - SoC)
- 74. توسعه آزمونمحور (Test-Driven Development - TDD) و کد تمیز
- 75. سه قانون TDD
- 76. نوشتن تستهای واحد تمیز
- 77. تستها به عنوان مستندات زنده
- 78. مرزها: کار با کدهای شخص ثالث (Third-Party Code)
- 79. استفاده از الگوهای آداپتور و فاساد در مرزها
- 80. یادگیری تستها (Learning Tests) برای کدهای خارجی
- 81. مدیریت خطاها و استثناها
- 82. استفاده از استثناهای بررسینشده (Unchecked Exceptions)
- 83. ارائه زمینه کافی در پیامهای خطا
- 84. از برگرداندن مقدار null خودداری کنید
- 85. مقدمهای بر الگوهای طراحی (Design Patterns)
- 86. الگوهای طراحی چگونه به کد تمیز کمک میکنند؟
- 87. الگوی فکتوری متد (Factory Method Pattern)
- 88. الگوی سینگلتون (Singleton Pattern): استفاده و سوءاستفاده
- 89. الگوی دکوراتور (Decorator Pattern)
- 90. الگوی آبزرور (Observer Pattern)
- 91. الگوی تمپلیت متد (Template Method Pattern)
- 92. همزمانی (Concurrency) و چالشهای آن
- 93. دفاع از همزمانی: کپسولهسازی دادههای مشترک
- 94. اجتناب از وابستگیهای زمانی (Temporal Coupling)
- 95. شناسایی بوهای بد کد (Code Smells)
- 96. بازآفرینی کد (Refactoring): چیستی، چرایی و زمان
- 97. تکنیکهای رایج بازآفرینی: استخراج متد (Extract Method)
- 98. تکنیکهای رایج بازآفرینی: تغییر نام (Rename)
- 99. تکنیکهای رایج بازآفرینی: بالا بردن متد (Pull Up Method)
- 100. اصول پکیجبندی: انسجام و وابستگی در سطح پکیج
تگها:
clean code
Cleaner Code
code quality
design patterns
object-oriented design
OOP
Principles
Programming
Refactoring
SOLID principles
اصول SOLID
الگوهای طراحی
برنامه نویسی
طراحی شیء گرا
کدنویسی تمیز
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.