کتاب صوتی Object-Oriented Design Principles for Cleaner Code
کدنویسی تمیز با اصول طراحی شیء گرا: یک قدم تا حرفهای شدن! کدنویسی تمیز با اصول طراحی شیء گرا: یک قدم تا حرفهای شدن! معرفی دوره آیا از دست کدهای پیچیده، گیجکننده و غیرقابل توسعه خسته شدهاید؟ آیا می...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره 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. اصول پکیجبندی: انسجام و وابستگی در سطح پکیج
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
clean code
Cleaner Code
code quality
design patterns
object-oriented design
OOP
Principles
Programming
Refactoring
SOLID principles
اصول SOLID
الگوهای طراحی
برنامه نویسی
طراحی شیء گرا
کدنویسی تمیز
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.