Rule of Three¶
Rule of Three говорит: обобщать и выносить абстракцию обычно стоит после устойчивого третьего повторения.
Что означает в 1С¶
Для 1С это удобный практический фильтр между DRY и YAGNI:
- первый повтор еще может быть случайным;
- второй уже настораживает;
- третий обычно показывает устойчивый шаблон.
После этого абстракция уже основана не на догадке, а на повторяющемся факте.
Пример на 1С¶
- первый документ получил похожую валидацию;
- второй документ получил почти ту же валидацию;
- третий документ повторяет тот же подход.
После этого уже разумно выделить общий сервис проверки или общий контракт, а не держать три почти одинаковых куска кода.
Когда полезен¶
- при выносе общих модулей и сервисов;
- при решении, пора ли делать паттерн или еще рано;
- при борьбе с преждевременным обобщением.
Когда применяют неправильно¶
- когда ждут третьего случая там, где обобщение очевидно уже сейчас;
- когда считают число повторов механически, без анализа смысла;
- когда упускают момент и оставляют четыре-пять копий "на потом".