در این پست از رادیو پرووید در رابطه با رادیو پرووید: اصول SOLID در Microservices Architecture صحبت خواهیم کرد. به ادامه ی مطلب بروید.

اصول SOLID در Microservices Architecture

با یکی دیگر از قسمت های پادکست های صوتی رادیو پرووید در خدمت شما عزیزان هستیم. موضوع این قسمت از رادیو پرووید اصول SOLID در Microservices Architecture می باشد.

بسته ی آموزش ویدئویی معماری پیشرفته مایکروسرویس ها در نرم افزار

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی معماری پیشرفته مایکروسرویس ها در نرم افزار دیدن کنید.

همانطور که ممکن است بدانید اصول SOLID در طراحی نرم افزار شامل پنج اصول مهم هستند که اصطلاحاً به آنها Design Principle هم می گویند. در رابطه با اصول SOLID توصیه می کنیم از بسته ی آموزش ویدئویی اصول SOLID در طراحی شی گرا استفاده کنید. کلمه ی SOLID سر نام پنج کلمه ی زیر هستند.

 

  • Single Responsibility
  • Open/Closed
  • Liskov Substitution
  • Interface Segregation
  • Dependency Inversion

در بسته ی آموزش ویدئویی اصول SOLID در طراحی شی گرا از وبسایت پرووید در رابطه با هر کدام از این اصول به طور مفصل و با جزییات تمام صحبت کرده ایم. این پنج اصول در ابتدا توسط Robert C. Martin مطرح شدند. پیاده سازی این اصول در برنامه هایی که به صورت شی گرایی پیاده سازی می شوند بسیاری از مشکلات معمول را از بین می برند. در این قسمت از رادیو پرووید در رابطه با این اصول و در قسمت بعدی از رادیو پرووید در رابطه با ارتباط و اهمیت این اصول در معماری مایکروسرویس ها صحبت خواهیم کرد. توصیه می کنیم که از بسته ی آموزش ویدئویی معماری مایکروسرویس ها در .NET Core نیز استفاده کنید.

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

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی اصول SOLID در طراحی شی گرادیدن کنید.

بررسی اصل Single Responsibility Principle

کلاس ها باید فقط یک دلیل برای تغییر کردن داشته باشند.

بررسی اصل Open/Closed Principle

Entity ها باید برای تغییر بسته و برای گسترش باز باشند.

بررسی اصل Liskov Substitution Principle

اگر T یک Supertype و S یک Subtype باشند، جایگزین کردن اشیایی از نوع T با اشیایی از نوع S نباید عملکرد صحیح سیستم را از بین ببرند.

بررسی اصل Interface Segregation Principle

یک Object فقط باید به اینترفیس هایی که به آنها نیاز دارد وابسته باشد و نباید مجبور به پیاده سازی متد و یا پروپرتی ای باشد که به آن نیازی ندارد.

interface IMatrixOperations
{
    Matrix GetInverseMatrix();
    Matrix Transpose ();
}
internal interface IRegularMatrixOperations
{
    Matrix GetInverseMatrix();
}

interface IMatrixOperations : IRegularMatrixOperations
{
    Matrix Transpose ();
}

بررسی اصل Dependency Inversion Principle

ماژول های سطح بالا نباید به ماژول های سطح پایین وابستگی داشته باشند. هر دو باید به abstraction وابسته باشند.

abstraction ها نباید به detail وابسته باشند. detail باید به abstraction وابسته باشد.

internal class Gear
{
}

internal class Engine
{
    Gear gear;
}

class Car
{
    Engine engine;
}
internal interface IGear
{
}

internal class Gear : IGear
{
}

internal interface IEngine
{
}

internal class Engine : IEngine
{
    IGear gear;
}

class Car
{
    IEngine engine;
}

در رابطه با اصل Dependency Inversion Principle که بسیار اهمیت دارد توصیه می کنیم از بسته ی آموزش ویدئویی Inversion of Control و IoC Container ها از وبسایت پرووید استفاده کنید.

 

دیدگاهتان را بنویسید

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