Различные языки, использующиеся в ходе разработки ПО и исполнения программного кода, можно представить в виде точек в некотором континууме, расположив их по мере движения от бизнес-идеи к исполняемому коду:

  1. Бизнес-идея
  2. Жаргон специалистов
  3. Варианты использования
  4. Сценарии
  5. Требования
  6. Тесты
  7. Архитектура (разделение на модули и компоненты)
  8. Код на высокоуровневых языках программирования
  9. Машинный код

Поскольку языки определяют мышление, каждый из этих языков накладывает свои ограничения (см. Ограничивать концепты моделирования концептами реализации неэффективно). Реальность бизнеса и ментальные модели экспертов в предметной области лучше всего отражают языки, используемые в верхней части спектра.

В идеале необходимо стремиться к однозначной трассировке от более низкоуровневых языковых конструкций к более высокоуровневым. В этом, по идее, должен помочь Единый язык, единая философия), а также точная и актуальная документация.

Идея берет начало из Object thinking - West, David и доклада, ссылка на который приведена в заметке по ссылке.

Если точнее, там акцент на том, что влияние объектного подхода наиболее заметно на более абстрактных уровнях, в активностях, приближенных к бизнесу и источнику идей / требований к приложению.

На уровне реализации разница между объектным и необъектным подходами может быть незаметна. Исполняемый код - это всего лишь ноли и единицы. Разница заключается в том, как мы думаем о проблемах и решениях, и сильнее всего проявляется в декомпозиции и распределении обязанностей по “сообществу объектов”. Сообщение и вызов функции могут быть идентичными по синтаксису и их реализации в машинном коде. Но то, кто и кому шлет сообщение, как это сообщение интерпретируется и какой код необходим для ответа на сообщение - все это будет значительно отличаться.