Entry tags:
Принципы софтостроения
Для начала я просто список составлю. Американцы любят ёмкие сокращения, поэтому у каждого принципа или правила есть короткое название из трёх-четырёх-пяти букв. Принципы можно условно разделить на две группы: позитивные и негативные.
Позитивные принципы советуют вам, как следует поступать.
Негативные принципы предостерегают от всякой фигни.
Позитивные принципы советуют вам, как следует поступать.
- 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
В теории всё это очень хорошие принципы. Да интерпретация, бывает, сильно различается. YAGNI я слышал в Гугле каждый раз, когда что-нибудь обобщал. А...
Мои любимые - KISS, LoD, PLA.
DIP тоже хорошая вещь, да его, опять же, интерпретируют обычно криво.
no subject
Я в последнее время по работе получил возможность вернуться к предыдущему проекту и весь его переулучшить. Все вышеперечисленные методы пошли в дело по полной программе.
no subject
no subject
no subject
По-моему эти принципы либо толком не определены, либо взаимно противоречивы. Отсюда непонятно, как им следовать.
Например, в правиле DRY написано "don't repeat yourself", а в следующем правиле AHA написано "prefer duplication over the wrong abstraction". Вместе получается "за всё хорошее и против всего плохого".
no subject
no subject