کتاب صوتی رفاکتورینگ (Refactoring) کد بر اساس اصول OOP

کد خود را به الماس تبدیل کنید: رفاکتورینگ شیءگرا برای کدنویسان حرفه‌ای کد خود را به الماس تبدیل کنید: رفاکتورینگ شیءگرا برای کدنویسان حرفه‌ای آیا از کدهای پیچیده و غیرقابل نگهداری خسته شده‌اید؟ آیا می...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 124,963 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره رفاکتورینگ (Refactoring) کد بر اساس اصول OOP

موضوع کلی: برنامه نویسی

موضوع میانی: برنامه‌نویسی شیءگرا (OOP)

📋 سرفصل‌های دوره

  • 1. مقدمه‌ای بر رفاکتورینگ: چرا و چگونه؟
  • 2. بدهی فنی (Technical Debt) و نقش رفاکتورینگ
  • 3. چرخه عمر توسعه نرم‌افزار و زمان‌بندی رفاکتورینگ
  • 4. معرفی بوی بد کد (Code Smells): نشانه‌های نیاز به تغییر
  • 5. اهمیت تست‌های واحد (Unit Tests) در رفاکتورینگ
  • 6. نوشتن تست‌های امنیتی قبل از رفاکتورینگ
  • 7. اصول برنامه‌نویسی شیءگرا: مرور و کاربرد در رفاکتورینگ
  • 8. اصل کپسوله‌سازی (Encapsulation) و رفاکتورینگ
  • 9. اصل وراثت (Inheritance) و رفاکتورینگ
  • 10. اصل چندریختی (Polymorphism) و رفاکتورینگ
  • 11. اصل انتزاع (Abstraction) و رفاکتورینگ
  • 12. معرفی اصول SOLID: راهنمای طراحی شیءگرا
  • 13. تفکر رفاکتورینگ: تغییرات کوچک و گام‌به‌گام
  • 14. ابزارهای خودکارسازی رفاکتورینگ در IDEها
  • 15. فرهنگ رفاکتورینگ در تیم و سازمان
  • 16. متدهای طولانی (Long Method): شناسایی و راه‌حل‌ها
  • 17. کلاس‌های بزرگ (Large Class): نشانه‌ها و اثرات
  • 18. داده‌های تکراری (Duplicate Code): مشکل و ریشه‌ها
  • 19. نام‌های نامفهوم (Obscure Names): تاثیر بر خوانایی
  • 20. لیست پارامترهای طولانی (Long Parameter List)
  • 21. وابستگی‌های زیاد (Feature Envy): حسادت ویژگی
  • 22. کلاس‌های داده‌ای (Data Class): ضد الگوی OOP
  • 23. سوئیچ‌های شرطی پیچیده (Switch Statements): نشانه‌های کد بد
  • 24. کلاس‌های تنبل (Lazy Class): بی‌مصرفی کلاس‌ها
  • 25. کلاس‌های میانی (Middle Man): واسطه‌های اضافی
  • 26. گروه‌های داده‌ای (Data Clumps): تکرار داده‌ها
  • 27. وسواس به نوع اولیه (Primitive Obsession)
  • 28. تغییرات پراکنده (Divergent Change): نقض SRP
  • 29. جراحی پراکنده (Shotgun Surgery): تغییرات گسترده
  • 30. کد مرده (Dead Code) و کد بلااستفاده
  • 31. نام‌گذاری بهتر: تغییر نام (Rename) متغیرها، متدها و کلاس‌ها
  • 32. استخراج متد (Extract Method): کوچک‌سازی و افزایش خوانایی
  • 33. جاسازی متد (Inline Method): حذف واسطه‌های غیرضروری
  • 34. جایگزینی متغیر موقت با کوئری (Replace Temp with Query)
  • 35. معرفی متغیر توضیح‌دهنده (Introduce Explaining Variable)
  • 36. تقسیم متغیر موقت (Split Temporary Variable)
  • 37. جایگزینی عدد جادویی با ثابت نام‌گذاری شده (Replace Magic Number with Symbolic Constant)
  • 38. انتقال متد (Move Method): انتقال مسئولیت به کلاس صحیح
  • 39. انتقال فیلد (Move Field): انتقال داده به کلاس صحیح
  • 40. استخراج کلاس (Extract Class): شکستن کلاس‌های بزرگ
  • 41. جاسازی کلاس (Inline Class): ادغام کلاس‌های کم‌فایده
  • 42. پنهان کردن نماینده (Hide Delegate): کاهش وابستگی
  • 43. حذف واسطه (Remove Middle Man)
  • 44. معرفی شیء پارامتر (Introduce Parameter Object): کوتاه‌سازی لیست پارامتر
  • 45. جایگزینی انتصاب به پارامتر با متد (Remove Assignments to Parameters)
  • 46. استفاده از Factory Method به جای Constructor
  • 47. استخراج اینترفیس (Extract Interface): تعریف قرارداد
  • 48. معرفی کلاس انتزاعی (Introduce Abstract Class): انتزاع رفتار مشترک
  • 49. فرم‌بندی متد الگو (Form Template Method)
  • 50. جایگزینی الگوریتم (Substitute Algorithm)
  • 51. تجزیه شرطی (Decompose Conditional): ساده‌سازی منطق شرطی
  • 52. جایگزینی شرطی‌های تو در تو با Guard Clauses
  • 53. جایگزینی شرطی با چندریختی (Replace Conditional with Polymorphism)
  • 54. رفاکتورینگ برای الگوی Strategy: جایگزینی شرطی با رفتار
  • 55. رفاکتورینگ برای الگوی State: مدیریت حالت‌های شیء
  • 56. جایگزینی کد نوع با کلاس/زیرکلاس (Replace Type Code with Class/Subclasses)
  • 57. جایگزینی کد نوع با الگوهای State/Strategy
  • 58. معرفی شیء Null (Introduce Null Object): حذف بررسی‌های null
  • 59. پارامترسازی متد (Parameterize Method): افزایش انعطاف‌پذیری
  • 60. جداسازی کوئری از تغییردهنده (Separate Query from Modifier)
  • 61. حذف پرچم کنترلی (Remove Control Flag)
  • 62. یکپارچه‌سازی عبارت‌های شرطی (Consolidate Conditional Expression)
  • 63. یکپارچه‌سازی قطعات شرطی تکراری (Consolidate Duplicate Conditional Fragments)
  • 64. جایگزینی حلقه با Pipeline (Replace Loop with Pipeline)
  • 65. کپسوله‌سازی مجموعه (Encapsulate Collection)
  • 66. SRP: شناسایی نقض اصل مسئولیت یگانه (Single Responsibility Principle)
  • 67. SRP: اعمال Extract Class برای رعایت مسئولیت یگانه
  • 68. SRP: رفاکتورینگ به الگوی Command برای SRP
  • 69. OCP: طراحی برای اصل باز/بسته (Open/Closed Principle)
  • 70. OCP: رفاکتورینگ با الگوی Strategy برای توسعه‌پذیری
  • 71. OCP: رفاکتورینگ با الگوی Template Method برای توسعه‌پذیری
  • 72. LSP: درک نقض اصل جایگزینی لیسکوف (Liskov Substitution Principle)
  • 73. LSP: اطمینان از زیرنوع‌سازی رفتاری
  • 74. LSP: رفاکتورینگ سلسله مراتب وراثت برای LSP
  • 75. ISP: اهمیت اصل جداسازی اینترفیس (Interface Segregation Principle)
  • 76. ISP: استخراج اینترفیس‌های وظیفه‌محور
  • 77. ISP: رفاکتورینگ اینترفیس‌های حجیم (Fat Interfaces)
  • 78. DIP: معرفی اصل وارونگی وابستگی (Dependency Inversion Principle)
  • 79. DIP: درک تزریق وابستگی (Dependency Injection)
  • 80. DIP: رفاکتورینگ به تزریق وابستگی (پیاده‌سازی دستی)
  • 81. DIP: رفاکتورینگ با Containerهای IoC (مقدمه)
  • 82. DIP: رفاکتورینگ برای قابلیت تست‌پذیری (Mocks و Stubs)
  • 83. بررسی رابطه بین Cohesion و Coupling در رفاکتورینگ
  • 84. رفاکتورینگ برای رعایت اصل وابستگی‌های بدون چرخه (Acyclic Dependencies Principle)
  • 85. رفاکتورینگ برای رعایت اصل وابستگی‌های پایدار (Stable Dependencies Principle)
  • 86. استراتژی‌های رفاکتورینگ کد میراثی (Legacy Code)
  • 87. متد میکادو (Mikado Method) برای کد میراثی
  • 88. معرفی تست‌های کاراکتریزاسیون (Characterization Tests)
  • 89. رفاکتورینگ دیتابیس‌ها: اصول و چالش‌ها
  • 90. اعمال رفاکتورینگ در معماری میکروسرویس‌ها
  • 91. ملاحظات عملکردی در رفاکتورینگ (Performance Refactoring)
  • 92. ملاحظات امنیتی در رفاکتورینگ (Security Refactoring)
  • 93. رفاکتورینگ برای مدیریت همروندی (Concurrency Refactoring)
  • 94. رفاکتورینگ ضدالگوها (Anti-Patterns)
  • 95. اندازه‌گیری تاثیر رفاکتورینگ و معیارهای آن
  • 96. رفاکتورینگ در محیط تیمی و مشارکت
  • 97. برنامه‌نویسی زوجی (Pair Programming) و رفاکتورینگ
  • 98. بازبینی کد (Code Review) برای شناسایی فرصت‌های رفاکتورینگ
  • 99. رفاکتورینگ در برابر بازنویسی کامل (Rewriting vs. Refactoring)
  • 100. آینده رفاکتورینگ و نقش هوش مصنوعی
EXPRESS24 AUDIO EXPERIENCE
یادگیری را بشنوید؛ زندگی کنید
کتاب‌های صوتی و پادکست‌های آموزشی، راهی دلنشین برای کشف ایده‌های تازه، گسترش دانش و استفاده بهتر از لحظه‌های روزمره هستند.
دانش، الهام و تجربه؛ این بار با صدای زندگی
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفت‌وآمد هستید، قدم می‌زنید، استراحت می‌کنید یا کارهای روزمره‌تان را انجام می‌دهید. محتوای صوتی کمک می‌کند از این لحظه‌ها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفت‌وآمد، پیاده‌روی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربه‌ای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازه‌ای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایده‌های تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادت‌های شخصی‌تان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، می‌توانید داستان‌ها، آموزش‌ها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتاب‌ها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفت‌وگو، روایت، توضیح آموزشی یا مجموعه‌ای از قسمت‌های صوتی؛ مناسب برای کشف ایده‌ها و آشنایی با دیدگاه‌های گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاه‌های تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپ‌تاپ
با پخش‌کننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکته‌های مهم را یادداشت کنید یا پس از پایان شنیدن، آن‌ها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتاب‌های صوتی و پادکست‌های آموزشی، دنیای تازه‌ای از ایده‌ها، روایت‌ها و آموختنی‌ها را به لحظه‌های خود اضافه کنید.
کشف محصولات بیشتر در اکسپرس ۲۴
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرم‌افزار مورد استفاده بستگی دارد.
AUDIO PREVIEW
قبل از انتخاب، گوش کنید!
بخشی از سبک محتوای محصولات صوتی ما را بشنوید و با فضای آن آشنا شوید.
♫
نمونه صوتی از سبک محصولات صوتی ما
پیش‌نمایش کوتاهی از سبک پادکست های صوتی محصولات ما
پخش آنلاین
برای تجربه بهتر، می‌توانید از هدفون استفاده کنید.
تگ‌ها: clean code design patterns Java Object Oriented Programming OOP PHP Python Refactoring Software Development برنامه نویسی شیءگرا توسعه نرم افزار رفاکتورینگ طراحی الگو کد تمیز کدنویسی

نظرات

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

وارد شوید تا نظر ثبت کنید.