Короткий ответ… потому что управляемая моделью часто связана с генерацией кода, а код хрупок; что нам нужно, так это устранение кода, и модель, управляемая моделью, безусловно, является подходящим способом.
Некоторые отклонили вопрос, утверждая, что золотого молотка не существует и что разработка программного обеспечения по своей сути сложна.
Я полностью согласен с ними в том, что золотого молотка нет, но я не думаю, что управляемая модель - это поиск золотых молотков или серебряных пуль!
Я хотел бы пойти дальше со сложностью; Есть два вида сложности, которые я называю органической или естественной сложностью, сложность, которая присуща бизнесу и его процессам, но у нас также есть церемониальная сложность.
Сложность, которая проникает в системную инструкцию по инструкции, день за днем. Церемониальная сложность - ненужная сложность - возникает в основном из-за неконтролируемого искажения технического кода с помощью бизнес-ориентированного кода, а также из-за отсутствия структуры и единообразия в системе.
Сегодня вся сложность, которая преследует развитие информационных систем и вызывает отказ и талию, - это церемониальная сложность; сложность, которая может быть устранена.
Церемониальная сложность - это пустая трата, трата, вызванная кодом, меньшая стоимость, изменение неблагоприятного, инвариантного кода; код, который должен быть сведен к своему строгому минимуму.
Как это сделать? Просто! Просто не пиши и не генерируй, во-первых!
Необходимый, инвариантный технический код; код, который используется для чтения / записи, отображения, общения ... Вот где модели попадают, описывая логическую структуру данных - я бы добавил реляционным способом - модели могут обеспечивать общую обработку стандартного чтения / записи, отображения и передачи данные.
Это как операционная система, вы не переписываете ее для каждого проекта, который вы используете. Поэтому необходим технический движок, который обрабатывает инвариантные аспекты программного обеспечения для данной модели. Я называю это движком AaaS (архитектура как услуга).
Что касается ненужного кода, то это ненужный код, поэтому он может оставить его неписанным.
Это оставляет нам необходимый бизнес-ориентированный код, который должен быть написан, необходимые бизнес-ориентированные данные, которые должны быть разработаны, и необходимый пользовательский интерфейс и опыт, который должен быть спроектирован и представлен.
Устраняя хрупкий код, мы можем использовать архитектуру как услугу в качестве новой парадигмы разработки программного обеспечения, основанной в большей степени на моделировании и проектировании, чем на коде.