Предварительное исследование метода архитектурного проектирования

задняя часть Архитектура Google Microsoft

Автор: Чен Цайхуа (добро пожаловать на caison@aliyun.com)

Недавно я изучил учебник по архитектурному дизайну Ли Юньхуа, старшего технического эксперта Ali, и многому научился.Позвольте мне подвести итоги.

1 Основная концепция и цель

架构设计的基本概念和目的

Цель проектирования архитектуры состоит в том, чтобы решить проблемы, вызванные сложностью системы. Он не должен быть всеобъемлющим. Не обязательно, чтобы каждая архитектура обладала характеристиками высокой производительности, высокой доступности и высокой степени расширения, но необходимо определить сложности реальной деловой ситуации.Целенаправленное решение проблем,который:Целеустремленный, не жадный. В реальных ситуациях не каждую систему нужно проектировать архитектурно, ее нужно сочетать с реальной ситуацией. Иногда самый простой дизайн и эффективность разработки являются самыми высокими.В конце концов, проектирование архитектуры требует затрат времени и рабочей силы.Если эта часть инвестиций используется для раннего кодирования, проект может быть выполнен быстрее.

2 источника сложности архитектурного дизайна

высокая производительность

高性能

Высокая доступность

高可用

Масштабируемость

可扩展性

Низкая стоимость, безопасность, масштаб

低成本、安全、规模

3 Три принципа архитектурного проектирования

架构设计三原则

принцип соответствия

Почему GFS родилась в Google, а не в Microsoft, где Google имеет такой огромный объем данных, является основным фактором, а не потому, что инженеры Google умнее, чем инженеры Microsoft.

По-настоящему хорошая архитектура — это предприятиеРазработан с учетом ограничений текущей рабочей силы, условий, бизнеса и других аспектов., может разумно интегрировать ресурсы вместе и оказывать максимальный эффект, а также может быстро приземляться. Это также является причиной того, что многие архитекторы из BAT не достигают результатов, когда приходят в небольшие компании или предпринимательские команды, потому что у них нет платформы, ресурсов и накопления крупных компаний, и они просто имитируют практику крупных компаний, и эффективность отказа очень высока.

простой принцип

软件领域的复杂性

Будь то сложность структуры или сложность логики, возникнут различные проблемы, поэтому при проектировании архитектуры, если как простые, так и сложные решения могут соответствовать требованиям, лучше всего выбрать простое решение. KISS (Искусство программирования UNIX)Keep It Simple,Stupid!) принципы в равной степени применимы к архитектурному дизайну.

эволюционный принцип

Для программных систем изменение является темой. Архитектура программного обеспечения должна постоянно меняться по мере развития бизнеса. Если вы не уверены"Архитектура программного обеспечения должна меняться в соответствии с развитием бизнеса«По сути, при проектировании архитектуры легко впасть в заблуждение: пытаясь спроектировать архитектуру программного обеспечения за один шаг, ожидая, что независимо от того, как изменится бизнес, архитектура будет надежной.

Для достижения такой цели либо копируйте планы, опубликованные крупными компаниями отрасли, либо вкладывайте огромные ресурсы и время в различные прогнозы, анализы и разработки. В любом случае последствия очевидны: вложения огромные, а до посадки далеко. Что еще более расстраивает, так это то, что даже после спотыканий и отчаянных попыток наконец приземлиться многие прогнозы и анализы оказываются ненадежными.

На практике архитекторы должны напоминать себе не жадничать до совершенства и следовать принципу, что эволюция лучше, чем одношаговое внедрение, потому что развитие бизнеса и изменения всегда происходят быстро, ** Какой бы хорошей ни была команда, она невозможно идеально предсказать все пути развития и изменения бизнеса. ** На практике вы можете обратиться к следующим предложениям:

  • Во-первых, проектируемая архитектура должна бытьудовлетворить потребности бизнеса в данный момент.

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

  • В-третьих, когда бизнес меняется, архитектуру нужно расширять, рефакторить или даже переписывать, код может быть переписан, но ценный опыт, уроки, логика, дизайн и т. д. могут быть продолжены в новой архитектуре.

4 Процесс архитектурного проектирования

架构设计的流程

Использованная литература:

Изучаем архитектуру с 0 - Ли Юньхуа

Схема архитектуры -- "4+1" Модель просмотра архитектуры программного обеспечения