Принципы софтостроения
2024-03-15 18:11![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Для начала я просто список составлю. Американцы любят ёмкие сокращения, поэтому у каждого принципа или правила есть короткое название из трёх-четырёх-пяти букв. Принципы можно условно разделить на две группы: позитивные и негативные.
Позитивные принципы советуют вам, как следует поступать.
Негативные принципы предостерегают от всякой фигни.
Позитивные принципы советуют вам, как следует поступать.
- SRP - Single Responsibility Principle
- SLA - Single Level of Abstraction
- OCP - Open-Closed Principle
- LSP - Liskov Substitution Principle
- ISP - Interface Segregation Principle
- DIP - Dependency Inversion Principle
- FCoI - Favor Composition over Inheritance
- PLA - Principle of Least Astonishment
Негативные принципы предостерегают от всякой фигни.
no subject
Date: 2024-03-16 08:34 (UTC)В теории всё это очень хорошие принципы. Да интерпретация, бывает, сильно различается. YAGNI я слышал в Гугле каждый раз, когда что-нибудь обобщал. А...
Мои любимые - KISS, LoD, PLA.
DIP тоже хорошая вещь, да его, опять же, интерпретируют обычно криво.
no subject
Date: 2024-03-16 22:07 (UTC)Я в последнее время по работе получил возможность вернуться к предыдущему проекту и весь его переулучшить. Все вышеперечисленные методы пошли в дело по полной программе.
no subject
Date: 2024-03-16 08:45 (UTC)no subject
Date: 2024-03-16 14:54 (UTC)no subject
Date: 2024-03-16 15:59 (UTC)По-моему эти принципы либо толком не определены, либо взаимно противоречивы. Отсюда непонятно, как им следовать.
Например, в правиле DRY написано "don't repeat yourself", а в следующем правиле AHA написано "prefer duplication over the wrong abstraction". Вместе получается "за всё хорошее и против всего плохого".
no subject
Date: 2024-03-16 17:57 (UTC)no subject
Date: 2024-03-16 22:01 (UTC)