آموزش اصول سالید SOLID در برنامه نویسی شی گرا

تعداد ویدئو 67
زمان دوره 04:03:38
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش اصول سالید SOLID در برنامه نویسی شی گرا یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی آموزش اصول SOLID در طراحی شی گرا است که با نام اصلی SOLID Principles of Object Oriented Design از شرکت Pluralsight منتشر شده است.

اصول طراحی شی گرا SOLID چیست؟

SOLID مخفف پنج اصل بسیار مهم در مدیریت وابستگی (Dependency Management) در توسعه ی برنامه های شی گرا می باشد. در واقع هر کدام از حروف کلمه ی SOLID به یکی از این اصول بر می گردد.

یکی از مشکلاتی که طراحی نامناسب برنامه های شی گرا برای برنامه نویسان ایجاد می کند موضوع مدیریت وابستگی در اجزای برنامه می باشد. اگر این وابستگی به درستی مدیریت نشود مشکلاتی شبیه موارد زیر در برنامه ایجاد می شوند:

  • برنامه ی نوشته شده را نمی توان تغییر داد و یا قابلیت جدید اضافه کرد. دلیل آن هم این است که با ایجاد تغییر در قسمتی از برنامه، این تغییر به صورت آبشاری در بقیه ی قسمت ها منتشر می شود و مجبور خواهیم بود که قسمت های زیادی از برنامه را تغییر دهیم. (این مشکل را Rigidity می نامیم.)
  • تغییر دادن برنامه مشکل است و آن هم به این دلیل که با ایجاد تغییر در یک قسمت از برنامه، قسمت های دیگر برنامه از کار می افتند و دچار مشکل می شوند. (این مشکل را Fragility می نامیم.)
  • قابلیت استفاده مجدد از اجزای برنامه وجود ندارد. در واقع، قسمت های مجدد برنامه ی شی گرای شما آنچنان به هم وابستگی تو در تو دارند که به هیچ وجه نمی توانید یک قسمت را جدا کرده و در برنامه ی دیگری استفاده کنید. (این مشکل را Immobility می نامیم.)

SOLID-Principles-of-Object-Oriented-Design-snap-shot

اصول SOLID که قصد رفع کردن این مشکلات و بسیاری مسائل گوناگون را دارند عبارت اند از:

  • Single Responsibility Principle
  • Open-Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

با کنار هم گذاشتن حرف اول هر کدام از این اصول کلمه ی SOLID ایجاد می شود. با در نظر گرفتن این پنج اصل و پیاده سازی آنها در برنامه های خود می توانید به یک طراحی شی گرا پاک و درست دست پیدا کنید.

اصول سالید و یا SOLID Principle در واقع ۵ اصل هستند که در طراحی شی گرا برنامه نویسی مورد استفاده قرار می گیرد. به بیان دیگر، این اصول مجموعه قوانین و best practice هایی هستند که می توانید در طراحی کردن یک برنامه شی گرا از آنها استفاده کنید. استفاده کردن از این ۵ اصل کمک می کنند تا شما بتوانید design pattern های مورد نیاز در برنامه خود را کشف کرده و معماری مناسب تری را در برنامه پیاده سازی کنید. یادگیری اصول سالید و استفاده کردن از آنها یکی از مهمترین توانمندی هایی است که یک برنامه نویس باید بتواند آنها را کسب کند. ضمناً کلمه سالید سرنام 5 اصل بسیار مهم است که در ادامه آن ها را به صورت تیتروار خدمتتان عرض می کنیم:

  • The Single Responsibility PrincipleThe Open-Closed Principle
  • The Liskov Substitution Principle
  • The Interface Segregation Principle
  • The Dependency Inversion Principle

در ادامه سعی می کنیم که کمی در رابطه با هر کدام از این اصول صحبت کنیم.

اصل Single Responsibility Principle: اصل تک وظیفه ای بودن و یا single responsibility principle بیان می کند که یک کلاس فقط باید یک تک وظیفه را داشته باشد و به همین دلیل فقط یک دلیل برای تغییر کردن داشته باشد. اگر بخواهیم این اصل را به صورت فنی تر بیان کنیم می توانیم بگوییم که فقط یک تغییر بالقوه یعنی تغییر در database logic و یا logging logic و الی آخر در یک نرم افزار بایستی که بر روی تعریف یک کلاس تغییر ایجاد کند.

اصل Open-Closed Principle: تغییر به معنی ایجاد تغییر بر روی کد هایی که از قبل نوشته اید می باشد و گسترش به معنی اضافه کردن قابلیت های جدید است. براساس اصل open-closed principle یک نرم افزار بایستی برای ایجاد تغییر، بسته و برای گسترش، باز باشد.

اصل Liskov Substitution Principle: اصل liskov substitution principle بیان می کند که یک subclass باید بتواند جایگزین base class های خود شود.

اصل Interface Segregation Principle: تفکیک یا segregation به معنی جدا کردن اجزای مختلف از یکدیگر است و بنابراین interface segregation principle به معنی تفکیک کردن اینترفیس ها می باشد. براساس این اصل داشتن اینترفیس های کوچکتر و خاص تر بهتر از داشتن اینترفیس های حجیم و عمومی است. کلاینت ها و یا مصرف کننده های یک اینترفیس نباید مجبور باشند که توابعی که از قبل از آنها استفاده نمی کنند را صرف اینکه در یک اینترفیس وجود دارند، پیاده سازی کنند.

اصل Dependency Inversion Principle: اصل dependency inversion principle و یا معکوس سازی وابستگی به این معنی است که کلاس های ما باید به اینترفیس ها و یا abstract class ها وابسته باشند و وابستگی مستقیم به توابع و یا concrete class ها نداشته باشند.

سرفصل مطالب آموزش ویدئویی اصول SOLID در طراحی شی گرا

فصل اول: اصل Single Responsibility

  • مقدمه
  • تعریف اصل Single Responsibility
  • Responsibility ها چه هستند؟
  • بررسی عملی مشکلی که نقض اصل Single Responsibility به وجود می آورد
  • تجزیه و تحلیل مشکل
  • ریفکتور کردن برای رسیدن به طراحی بهتر
  • جمع بندی

فصل دوم: اصل Open/Closed

  • مقدمه
  • تعریف اصل Open/Closed
  • بررسی عملی مشکلی که نقض اصل Open/Closed به وجود می آورد
  • تجزیه و تحلیل مشکل
  • ریفکتور کردن برای رسیدن به طراحی بهتر

فصل سوم: اصل Liskov Substitution

  • مقدمه
  • تعریف اصل Liskov Substitution
  • بررسی عملی مشکلی که نقض اصل Liskov Substitution به وجود می آورد
  • تجزیه و تحلیل مشکل
  • Design Smell های مربوط به اصل Liskov Substitution
  • ریفکتور کردن برای رسیدن به طراحی بهتر
  • نکات
  • جمع بندی

فصل چهارم: اصل Interface Segregation

  • مقدمه
  • بررسی عملی مشکلی که نقض اصل Interface Segregation به وجود می آورد
  • تجزیه تحلیل مشکل
  • ریفکتور کردن برای رسیدن به طراحی بهتر
  • Design Smell ها و نکات مربوط به اصل Interface Segregation
  • جمع بندی

فصل پنجم: اصل Dependency Inversion قسمت اول

  • مقدمه
  • تعریف اصل Dependency Inversion
  • Dependency ها چه هستند؟
  • برنامه نویسی سنتی و مشکل مربوط به معماری سه لایه ی سنتی
  • Dependency های کلاس ها
  • بررسی یک برنامه به صورت عملی
  • بررسی عملی مشکلی که نقض اصل Dependency Inversion به وجود می آورد
  • انجام ریفکتورینگ ها
  • Design Smell ها
  • مکان مناسب برای Instantiate کردن Dependency ها
  • IoC Container ها
  • جمع بندی

فصل ششم: اصل Dependency Inversion قسمت دوم

  • مقدمه
  • تعریف اصل Dependency Inversion
  • Dependency ها چه هستند؟
  • برنامه نویسی سنتی و مشکل مربوط به معماری سه لایه ی سنتی
  • Dependency های کلاس ها

فصل هفتم: اصل Don’t Repeat Yourself قسمت اول

  • مقدمه
  • تعریف اصل Don’t Repeat Yourself
  • برنامه ی نمونه و تجزیه و تحلیل آن
  • ریفکتور کردن Magic String ها
  • ریفکتور کردن کدهای تکراری (Duplicate Logic)
  • ریفکتور کردن دستورات if-then تکراری
  • ریفکتور کردن دستورارت شرطی به Polymorphism
  • جمع بندی

فصل هشتم: اصل Don’t Repeat Yourself قسمت دوم

  • مقدمه
  • تجزیه و تحلیل
  • تست ها و متدهای Static و مشکل Static Cling
  • اضافه کردن Integration Test ها
  • اضافه کردن Unit Test ها
  • استفاده کردن از Mock Object ها
  • جمع بندی

فصل نهم: اصل Don’t Repeat Yourself قسمت سوم

  • مقدمه
  • تجزیه و تحلیل
  • تعریف و کشف Repeated Execution Pattern ها
  • ریفکتور کردن با استفاده از دیلیگیت جنریک Action
  • ریفکتور کردن Data Access با SQLHelper
  • کشف کدهای تکراری با ابزار Atomiq
  • فرآیند تولید کد (Code Generation)
  • فرآیندهای تکراری توسعه ی نرم افزار (Test-Build-Deploy)
  • Automation و ابزار MSBuild برای رفع فرآیندهای ترکاری
  • جمع بندی

نقد و بررسی‌ها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش اصول سالید SOLID در برنامه نویسی شی گرا”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته های محصولات

افزودن به سبد خرید