Go meta - Обычно это означает, что после решения проблемы мы ищем более общий/абстрактный способ решения подобных проблем. Если это удается, то найденный способ покрывает более широкую предметную область или решает проблему более гибко. Зачастую такие решения требуют переосмысления проблемы и способа ее выражения, а это, как правило, происходит на уровне метаданных.

Тут может произойти интересное разделение. Если какую-то задачу необходимо выполнять раз за разом, то мы можем либо научиться делать это быстрее руками (то есть, автоматизировать Бизнес-процесс, либо придумать “мета”-способ решения, это тоже что-то вроде автоматизации, только в онтологической плоскости. Переформулировать проблему так, чтобы найти универсальное, расширяемое решение.


  • В целом, это укладывается в соблюдение Open-Closed Principle и является еще одним хорошим примером Производство vs Способность к производству.

  • Цикл TDD можно представить как формулирование специфичной проблемы (новый тест), решение этой конкретной проблемы (код, удовлетворяющий тест) и поиск мета-решения (рефакторинг, прояснение и обобщение семантики решения).