Блог 2018-12-29

SOLID, DRY(DIE), KISS, YAGNI

SOLID, DRY(DIE), KISS, YAGNI

Метою використання цих підходів в програмуванні є сприяння гнучкому, зрозумілому та корисному коду.

Паралельне використання підходів полегшує подальшу підтримку і розвиток программи.

SOLID (скор. від англ. Single responsibility, open-closed, Liskov substitution, interface segregation і dependency inversion)  мнемонічний акронім, введений Майклом Фезерсом (Michael Feathers) для перших п'яти принципів, названих Робертом Мартіном на початку 2000-х, які означали п'ять основних принципів об'єктно-орієнтованого програмування і проектування.

Single responsibility principle (SRP) - принцип єдиної відповідальності  стверджує, що клас повинен мати тільки одну відповідальність. Ця єдина відповідальність повинна бути повністю інкапсульована класом.

Open/closed principle (OCP) - принцип відкритості/закритості визначає, що суб'єкти програмного забезпечення повинні бути відкритими для розширення, але закриті для модифікації.

Liskov substitution principle (LSP) - принцип заміни стверджує, що успадкований клас повинен доповнити, а не замінити поведінку базового класу

Interface segregation principle (ISP) - принцип розділення інтерфейсу. Дотримання цього принципу допомагає системі залишатися гнучкою при внесенні змін до логіку роботи і придатною для рефакторінга. Клієнти не повинні залежати від методів, які вони використовують. Принцип поділу інтерфейсів говорить про те, що занадто "товсті" інтерфейси необхідно розділяти на більш дрібні і сфокусовані.

Dependency inversion principle (DIP) - принцип інверсії залежностей. Інверсія залежностей визначає, що сутності повинні залежати від абстракцій, а не від конкретизації. Модуль високого рівня не повинен залежати від модуля низького рівня, і обидва повинні залежати від абстракцій. Дотримуючись цього принципу зменшується об'єднання об'єктів.

 

DRY - Don't Repeat Youself (не повторюйся) або DIE - Duplication Is Evil - дублювання це зло. Уникати повторювань одного і того же кода. Краще використовувати універсальні власності та функції.

 

KISS - Keep It Simple, Stupid - не ускладнювати