معکوس سازی وابستگی (Dependency Inversion) در برنامه نویسی

۱. ماژول های سطح بالا نباید به ماژول های سطح پایین وابستگی داشته باشند. هر دو این ماژول ها باید به یک سطح انتزاعی وابسته باشند.

۲. انتزاع ها نباید به جزئیات وابسته باشند بلکه جزئیات باید به انتزاع ها وابسته باشند

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

اگر از دو تعریف بالا که دو قانون مربوط به معکوسی سازی وابستگی بود چیزی سردرنیاوردید به مثال زیر توجه کنید:

ادامه خواندن “معکوس سازی وابستگی (Dependency Inversion) در برنامه نویسی”

مفهوم جدایی واسط ها (Interface Segregation Principle) در مهندسی نرم افزار

تا اینجا با مفاهیم زیادی از اصول SOLID در برنامه نویسی و مهندسی نرم افزار آشنا شدیم. در این قسمت میخواهیم به چهارمین حرف از اصول SOLID بپردازیم که به آن Interface Segregation یا جدا سازی واسط ها میگویند. برای درک بهتر این درس باید با Inteface ها یا موارد مشابه آن در یک زبان برنامه نویسی کار کرده باشید. اجازه بدهید با یک مثال این درس را جلو ببریم:

ادامه خواندن “مفهوم جدایی واسط ها (Interface Segregation Principle) در مهندسی نرم افزار”

مفهوم جایگزینی لیسکو (Lisko Substitution Principle) در برنامه نویسی

در درس های گذشته، با دو حرف اول SOLID آ شنا شدیم. ابتدا Single Responsibility را بحث کردیم و سپس به مفهوم Open Closed پرداختیم. در این درس میخواهیم به سومین حرف از مفهوم SOLID بپردازیم که به آن Lisko Substitution Principle یا همان مفهوم جایگزینی لیسکو میگویند. در میان مفاهیم موجود در SOLID شاید این مفهوم برای درک شدن کمی نیاز به تفکر بیشتری داشته باشد.

ادامه خواندن “مفهوم جایگزینی لیسکو (Lisko Substitution Principle) در برنامه نویسی”

مفهوم باز-بسته (Open-Closed) در برنامه نویسی و مهندسی نرم افزار

در درس قبل با اولین حرف از اصل SOLID در مهندسی نرم افزار آشنا شدیم. به طور خلاصه: اصل SOLID برای نوشتن نرم افزارهایی با معماری خوب و منعطف برای تغییرات بعدی کاربرد دارد. نرم افزارهای متوسط و بزرگ به دلیل تغییرات زیاد و طول عمر بلند مدت تر، نیاز دارند تا از یک سری اصول مهندسی نرم افزار پیروی کنند. یکی از این اصول SOLID بود.

در این درس به دومین حرف از کلمه SOLID که مفهوم باز-بسته (Open-Closed) است میپردازیم تا ببنیم این اصل چگونه میتواند به نوشتن یک برنامه با کیفیت و منعطف در برابر تغییرات کمک کند.

ادامه خواندن “مفهوم باز-بسته (Open-Closed) در برنامه نویسی و مهندسی نرم افزار”

مسئولیت واحد (Single Responsibility) در مهندسی نرم افزار و برنامه نویسی

حتما میدانید که در برنامه نویسی شی گرا در یک پروژه نرم افزاری، کلاس ها (Class) و توابع (Function) مختلف حضور دارند. این کلاس ها در فایل های مختلف قرار میگیرند و هر کدام کاربردهای خاص خود را دارند. مانند افراد مختلف در یک سازمان که هر کدام مسئولیت های مشخصی بر عهده داند.

ادامه خواندن “مسئولیت واحد (Single Responsibility) در مهندسی نرم افزار و برنامه نویسی”