1.3Kпросмотров
18 марта 2024 г.
questionScore: 1.4K
Знаете что такое SOLID? Читаю сейчас Роберта Мартина «Чистая архитектура» и с удивлением узнаю что дядька который сформулировал SOLID вообще не то вкладывал в SRP как его трактуют большинство известных мне разработчиков, как в прочем и я сам. Ну тобишь не «Класс должен делать одну вещь». Что удивительно даже Википедия вкладывает в принцип единой ответственности тот же смысл, хотя может и не удивительно😀
В книге Робер Мартин описывает такую семантику: A module should be responsible to one, and only one, actor — Robert C. Martin, Clean Architecture
Получается что единица к которой применяется SRP принцип должна изменяться под влиянием только одного стейкхолдера. В книге приведен пример с классом Employee в котором два метода: calculatePay и reportHours, где два метода используются разными бизнес-заказчиками: бухгалтерия и департамент персонала. Ну и допустим эти два метода используют в работе общий кусок логики в котором считаются отработанные часы. Далее проблемы начинаются от того что один из стейкхолдеров может заафектить своими хотелками на второго. Что ж, жизненно, будем знать.