کتاب برنامهنویسی شیءگرا: کلید توسعه نرمافزارهای مقیاسپذیر، کارآمد و قابل نگهداری در دنیای واقعی با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
برنامهنویسی شیءگرا: کلید توسعه نرمافزارهای مقیاسپذیر، کارآمد و قابل نگهداری برنامهنویسی شیءگرا: کلید توسعه نرمافزارهای مقیاسپذیر، کارآمد و قابل نگهداری در دنیای واقعی آیا رویای خلق نرمافزارهای ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی شیءگرا: کلید توسعه نرمافزارهای مقیاسپذیر، کارآمد و قابل نگهداری در دنیای واقعی
موضوع کلی: برنامه نویسی
موضوع میانی: برنامهنویسی شیءگرا (OOP)
📋 سرفصلهای دوره
- 1. مقدمهای بر پارادایمهای برنامهنویسی
- 2. برنامهنویسی رویهای و محدودیتهای آن
- 3. تغییر نگرش: معرفی برنامهنویسی شیءگرا (OOP)
- 4. مفهوم شیء (Object): وضعیت (State) و رفتار (Behavior)
- 5. مفهوم کلاس (Class): طرح اولیه یا نقشه اشیاء
- 6. ویژگیها (Attributes) و متدها (Methods)
- 7. نمونهسازی (Instantiation): خلق یک شیء از روی کلاس
- 8. چهار ستون اصلی شیءگرایی: یک نمای کلی
- 9. مزایای OOP: قابلیت استفاده مجدد، نگهداری و مقیاسپذیری
- 10. اولین برنامه شیءگرا: "سلام، دنیای شیءگرا!"
- 11. کپسولهسازی (Encapsulation): پنهانسازی پیچیدگی
- 12. سطوح دسترسی: Public, Private, Protected
- 13. مخفیسازی داده (Data Hiding)
- 14. متدهای Getter و Setter (Accessors & Mutators)
- 15. اهمیت تعریف یک رابط عمومی (Public Interface)
- 16. سازندهها (Constructors): مقداردهی اولیه اشیاء
- 17. سازنده پیشفرض (Default Constructor)
- 18. سازندههای پارامتردار (Parameterized Constructors)
- 19. سربارگذاری سازندهها (Constructor Overloading)
- 20. کلمه کلیدی this (یا self) برای ارجاع به شیء فعلی
- 21. وراثت (Inheritance): ایجاد روابط "is-a"
- 22. کلاس والد (Superclass) و کلاس فرزند (Subclass)
- 23. استفاده مجدد از کد از طریق وراثت
- 24. کلمه کلیدی extends (یا معادل آن در زبانهای مختلف)
- 25. بازنویسی متدها (Method Overriding)
- 26. حاشیه نویسی @Override (یا معادل آن)
- 27. فراخوانی متدهای کلاس والد با کلمه کلیدی super
- 28. استفاده از super در سازندههای کلاس فرزند
- 29. نقش سطح دسترسی Protected در وراثت
- 30. وراثت تکی (Single Inheritance)
- 31. وراثت چند سطحی (Multilevel Inheritance)
- 32. وراثت سلسله مراتبی (Hierarchical Inheritance)
- 33. مشکل وراثت چندگانه: مسئله الماس (The Diamond Problem)
- 34. متدهای نهایی (Final Methods): جلوگیری از بازنویسی
- 35. کلاسهای نهایی (Final Classes): جلوگیری از وراثت
- 36. چندریختی (Polymorphism): یک رابط، چندین پیادهسازی
- 37. چندریختی ایستا (زمان کامپایل): سربارگذاری متدها
- 38. قوانین و تفاوتهای سربارگذاری (Overloading) و بازنویسی (Overriding)
- 39. چندریختی پویا (زمان اجرا): اتصال دیرهنگام (Late Binding)
- 40. ارسال دینامیک متد (Dynamic Method Dispatch)
- 41. Upcasting: تبدیل نوع فرزند به والد
- 42. قدرت Upcasting در آرایهها و پارامترهای متد
- 43. Downcasting: تبدیل نوع والد به فرزند
- 44. بررسی نوع شیء با عملگر instanceof
- 45. خطر استثناء ClassCastException در Downcasting
- 46. انواع بازگشتی هممتغیر (Covariant Return Types)
- 47. Polymorphism در عمل: پیادهسازی یک سیستم انعطافپذیر
- 48. انتزاع (Abstraction): تمرکز بر موارد ضروری
- 49. کلاسهای انتزاعی (Abstract Classes)
- 50. متدهای انتزاعی (Abstract Methods)
- 51. قوانین استفاده از کلاسها و متدهای انتزاعی
- 52. چه زمانی از یک کلاس انتزاعی استفاده کنیم؟
- 53. رابطها (Interfaces): انتزاع محض
- 54. تعریف و پیادهسازی رابطها
- 55. تفاوتهای کلیدی بین کلاسهای انتزاعی و رابطها
- 56. متدهای پیشفرض و استاتیک در رابطها (ویژگیهای مدرن)
- 57. Marker Interfaces: رابطهای نشانگر
- 58. مفاهیم پیشرفته و روابط بین کلاسها
- 59. رابطه وابستگی (Association)
- 60. رابطه تجمیع (Aggregation): رابطه "has-a" ضعیف
- 61. رابطه ترکیب (Composition): رابطه "has-a" قوی
- 62. تفاوت Aggregation و Composition با مثالهای واقعی
- 63. اعضای استاتیک (Static): متغیرها و متدهای کلاس
- 64. کلمه کلیدی static و کاربردهای آن
- 65. بلوکهای مقداردهی اولیه استاتیک
- 66. کلاسهای داخلی (Inner Classes)
- 67. کلاسهای داخلی محلی (Local Inner Classes)
- 68. کلاسهای بینام (Anonymous Classes)
- 69. کاربرد کلاسهای بینام در مدیریت رویدادها
- 70. شمارشها (Enums) به عنوان کلاسهای خاص
- 71. مقدمهای بر Generic ها: ایجاد کلاسها و متدهای امن از نظر نوع
- 72. اصول طراحی نرمافزار شیءگرا (SOLID)
- 73. مقدمهای بر اصول طراحی و اهمیت آنها
- 74. اصل DRY: خودت را تکرار نکن (Don't Repeat Yourself)
- 75. اصل KISS: ساده نگهشدار (Keep It Simple, Stupid)
- 76. مقدمهای بر اصول SOLID
- 77. اصل تک مسئولیتی (Single Responsibility Principle - SRP)
- 78. اصل باز/بسته (Open/Closed Principle - OCP)
- 79. اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP)
- 80. اصل تفکیک رابطها (Interface Segregation Principle - ISP)
- 81. اصل وارونگی وابستگی (Dependency Inversion Principle - DIP)
- 82. وارونگی کنترل (Inversion of Control - IoC)
- 83. تزریق وابستگی (Dependency Injection - DI)
- 84. قانون دیمیتر (Law of Demeter)
- 85. انسجام (Cohesion): تلاش برای انسجام بالا
- 86. وابستگی (Coupling): تلاش برای وابستگی کم
- 87. الگوهای طراحی (Design Patterns) و کاربردهای واقعی
- 88. الگوهای طراحی چیستند؟ راهحلهای اثبات شده
- 89. دستهبندی الگوهای طراحی: ایجادی، ساختاری، رفتاری
- 90. الگوی ایجادی: Factory Method
- 91. الگوی ایجادی: Singleton
- 92. الگوی ساختاری: Adapter
- 93. الگوی ساختاری: Decorator
- 94. الگوی رفتاری: Strategy
- 95. الگوی رفتاری: Observer
- 96. کلاس Object: ریشه تمام کلاسها
- 97. بازنویسی متدهای equals() و hashCode()
- 98. بازنویسی متد toString() برای نمایش معنادار اشیاء
- 99. بازآرایی (Refactoring) کد به سمت طراحی شیءگرای بهتر
- 100. جمعبندی: شیءگرایی کلید توسعه نرمافزارهای پایدار
تگها:
Object Oriented Programming
OOP
اصول OOP
برنامهنویسی
برنامهنویسی شیءگرا
توسعه نرمافزار
طراحی نرمافزار
کدنویسی
مفاهیم برنامهنویسی
مهندسی نرمافزار
نرمافزار قابل نگهداری
نرمافزار کارآمد
نرمافزار مقیاسپذیر
یادگیری برنامهنویسی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.