Что такое хорошая архитектура программного обеспечения: мнение опытного инженера Matthew Hawthorne
🤔
Мэтт много работал в бигтехе, а сейчас еще и пишет книгу Push to Prod or Die Trying 📖
Во время работы в Netflix каждый инженер ежедневно принимал архитектурные решения и часто выпускал новые фичи, которые становились доступны десяткам миллионов пользователей — и всё это без единого упоминания должности «архитектор».
По его мнению, вот характеристики хорошей архитектуры:
1️⃣ Архитекторы не являются решением архитектурных проблем сами по себе.
2️⃣ Перекладывание сегодняшних проблем на «завтра»: переход в облако (например, на AWS) может решить текущие боли, но породить новые.
3️⃣ Хорошая архитектура — это характеристики, которые балансируют практические и амбициозные цели, объединяют людей и системы, и не зависят просто от хорошего кода.
4️⃣ Плохая архитектура — это большое количество работы, при которой мало что меняется. Подобно перестановке мебели в доме, который надо снести и построить заново.
5️⃣ В проектах Netflix применялись архитектурные компромиссы: делать нетипичные выборы, строить инструменты для уменьшения операционной нагрузки, жертвовать одними ограничениями ради других, модернизировать системы так, чтобы они работали лучше в будущем.
6️⃣ Как улучшить свои архитектурные навыки: проектировать системы на случай поломки, знать свою аудиторию, фокусироваться на правильных деталях и быть полезным в разных ролях.
🐸 Библиотека программиста