Чтобы научиться грамотно строить архитектуру проекта, рекомендуется:
- Собрать полную информацию о разрабатываемом продукте. 1 Нужно получить детальное описание продукта с точки зрения бизнеса: бизнес-цели, потребности бизнеса, требования к продукту у пользователей и компании, зависимости от других систем. 1
- Определить и описать нефункциональные требования. 1 К ним относят аспекты работы проекта, которые напрямую не влияют на бизнес-показатели, но касаются пользователей и тех, кто будет поддерживать систему. 1 Например, доступность, изменяемость, производительность, безопасность, тестируемость, удобство использования, расширяемость, поддерживаемость, взаимодействие с другими системами. 1
- Детализировать схему системы и подробно описывать назначение каждого компонента. 1 Это позволяет увидеть систему в целом и подготовить описание для технических заданий разработчикам. 1
- Спрашивать мнения коллег и не игнорировать их советы. 1 Обмен идеями позволяет по-новому взглянуть на логику работы проекта и не упустить важные детали на старте работы. 1
- После завершения проектирования проводить презентацию архитектуры саппортам, разработчикам и другим коллегам, которые будут работать с проектом. 1 Они могут задать важные вопросы, которые по какой-то причине не возникли на первых этапах работы. 1
Также можно почитать специальную литературу, например, про архитектурные шаблоны, монолит, микросервисы, паттерны и антипаттерны, распределение нагрузки, репликации. 2
Для более глубокого погружения в тему рекомендуется обратиться к ресурсам, например, серии постов про паттерны проектирования в блоге или книге «Фундаментальный подход к программной архитектуре: паттерны, свойства, проверенные методы» Марка Ричардса и Нила Форда. 1