Серия твитов Грейди Буча о архитектуре программного обеспечения:
https://twitter.com/Grady_Booch/status/1301810358819069952
Тема о архитектуре систем, интенсивно использующих программное обеспечение.
В мире систем, интенсивно использующих программное обеспечение, есть гораздо больше, чем веб-ориентированные платформы в масштабе.
Хорошая архитектура характеризуется четкими абстракциями, хорошим разделением ответственности, четким распределением обязанностей и простотой. Все остальное — детали.
Вы не можете снизить сложность системы, интенсивно использующей программное обеспечение; лучшее, что вы можете сделать, — это управлять ею.
Со временем все жизнеспособные архитектуры должны развиваться.
Старое программное обеспечение никогда не умирает; вы должны его убить.
Некоторые архитектуры намеренные, некоторые случайные, большинство — возникающие.
Значимая архитектура — это живой, динамичный процесс обсуждения, проектирования и принятия решений.
Неустанное накопление кода в течение дней, месяцев, лет и даже десятилетий быстро превращает каждый успешный новый проект в устаревший.
Покажи мне организацию твоей команды, и я покажу тебе архитектуру твоей системы.
Все хорошо структурированные системы, интенсивно использующие программное обеспечение, полны паттернов.
Архитектор программного обеспечения, который не пишет код, — это как повар, который не ест.
Сосредоточение внимания на паттернах и сквозных проблемах может привести к архитектуре, которая меньше, проще и более понятна.
Решения по проектированию поощряют то, что может делать конкретный заинтересованный участник, а также ограничивают то, что он не может делать.
В начале архитектура системы, интенсивно использующей программное обеспечение, — это выражение видения. В конце архитектура каждой такой системы — это отражение миллиардов и миллиардов малых и больших, намеренных и случайных решений по проектированию, принятых на этом пути.
Вся архитектура — это проектирование, но не все проектирование — это архитектура.
Архитектура представляет собой набор значительных решений по проектированию, которые определяют форму и функцию системы, где значительность измеряется стоимостью изменения.
Автор: Chuck Conway — инженер AI с почти 30-летним опытом разработки программного обеспечения. Он создает практические системы AI — конвейеры контента, агенты инфраструктуры и инструменты, которые решают реальные проблемы — и делится тем, что он узнает на этом пути. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube и на SubStack.