В Интернете существует множество ресурсов, которые ссылаются на запахи кода. Однако я никогда не видел информации об архитектурных запахах . Это определено где-нибудь, и есть ли список? Были ли проведены какие-либо формальные исследования дефектов архитектуры и их влияния на скорость проекта, дефекты и тому подобное?
Изменить: я не искал список ответов, но документация (в Интернете или в книге) об запахах архитектуры.
architecture
code-smell
quality
Пересекать
источник
источник
Ответы:
Полное отсутствие обратного также верно.
Вот ссылка на десятку ошибок архитектуры программного обеспечения .
источник
Все настраивается . Когда архитектор говорит вам, что его система защищена от изменений или имеет широкие возможности настройки из-за обширной настраиваемости, это - запах архитектуры.
Проблема в том, что вы действительно можете предоставить механизмы конфигурации только для того, что, по вашему мнению, сейчас нужно будет настроить, но как только ваше приложение будет запущено, этого будет недостаточно. Затем механизмы конфигурации расширяются и расширяются, и в конечном итоге вы получаете эффект внутренней платформы.
И тогда вы в программном аду.
источник
База данных, разработанная ORM! Или серверная часть базы данных, которая не является реляционной и должна быть реляционной. Или база данных, в которой вы разрабатываете использование представлений, которые вызывают представления, которые вызывают представления, они не только слишком медленные (базы данных должны быть спроектированы для обеспечения производительности с самого начала, но не позднее), но когда вам нужно внести изменения, их ужасно отслеживать (Из-за абстракции, как сказал @AmirResaei, легко потеряться в коде, когда вам нужно исправить что-то, что находится внизу всех этих слоев.)
источник
Кодовые запахи и архитектурные запахи - это одно и то же. Код начинает «пахнуть» из-за неоптимальной архитектуры.
В основной книге Мартина Фаулера по теме « Рефакторинг» он представляет серию запахов кода и определяет способ их рефакторинга из вашей системы. « Рефакторинг шаблонов» Джошуа Кериевского еще более подчеркивает эту идею, предоставляя конкретные архитектурные шаблоны для исправления различных запахов кода (и как выполнять рефакторинг для них шаг за шагом).
Большая часть рефакторинга выполняется для облегчения неоптимального кода с помощью улучшенной архитектуры. Можно утверждать, что единственным естественным «архитектурным запахом» (кроме Big Ball of Mud) будет архитектура BDUF (Big Design Up Front). Где вы пытаетесь разместить все, что вам нужно, до того, как написана первая строка кода. Гибкий программный проект, в котором дизайн выполняется по мере необходимости (даже, полагаю, когда код рассматривается как дизайн ), его архитектура будет расти органично.
источник
(Много) Соединение - в любой форме - это то, что заставляет архитектуры пахнуть. Чем больше он связан, тем больше он пахнет.
Тем не менее, отсутствие связи вообще часто пахнет проблемами производительности.
источник
Вот один конкретный запах архитектуры / дизайна, с которым я сталкиваюсь все время: анализ и составление отчетов непосредственно из транзакционной базы данных.
Это, конечно, хорошо в некоторых ситуациях (например, легкие отчеты), но во многих случаях требования к отчетности и обработке транзакций находятся в конфликте. Тем не менее, поскольку это простая / недорогая вещь, отчеты запускаются непосредственно из транзакционной БД. Это вызывает все виды головных болей с обеих сторон уравнения.
Это обычно видно в приложениях Enterprise LOB, кстати. Я понимаю, что многие SMB просто не имеют ресурсов или ноу-хау для создания хранилищ и информационных таблиц (забудьте о кубах или настройках сокращения карт), но многие большие организации, с которыми я работал, имеют те же проблемы.
При проектировании системы архитектор должен учитывать, что отчетность, особенно аналитические отчеты, и требования к транзакциям лучше всего рассматривать как отдельные проблемы, а не просто объединять их на уровне базы данных.
источник
Я не уверен, подходит ли это на уровне архитектуры, но если я увижу кучу классов / модулей менеджера в том, что должно быть ОО-проектом, то это гарантия того, что единственный человек, который поймет архитектуру / дизайн сам архитектор / дизайнер без большого объяснения / изучения другими.
источник
Сообщество задокументировало множество архитектурных запахов. Обычно встречающийся набор следующий.
Я недавно подготовил таксономию запахов . В настоящее время он документирует 38 запахов архитектуры и более 260 запахов кода.
источник