Перейти к содержанию

Rule of Three

Rule of Three говорит: обобщать и выносить абстракцию обычно стоит после устойчивого третьего повторения.

Что означает в 1С

Для 1С это удобный практический фильтр между DRY и YAGNI:

  • первый повтор еще может быть случайным;
  • второй уже настораживает;
  • третий обычно показывает устойчивый шаблон.

После этого абстракция уже основана не на догадке, а на повторяющемся факте.

Пример на 1С

  • первый документ получил похожую валидацию;
  • второй документ получил почти ту же валидацию;
  • третий документ повторяет тот же подход.

После этого уже разумно выделить общий сервис проверки или общий контракт, а не держать три почти одинаковых куска кода.

Когда полезен

  • при выносе общих модулей и сервисов;
  • при решении, пора ли делать паттерн или еще рано;
  • при борьбе с преждевременным обобщением.

Когда применяют неправильно

  • когда ждут третьего случая там, где обобщение очевидно уже сейчас;
  • когда считают число повторов механически, без анализа смысла;
  • когда упускают момент и оставляют четыре-пять копий "на потом".