Site icon AppTractor

Чистая архитектура — это большая ложь, в которую мы продолжаем верить

«Вам следует использовать чистую архитектуру» — звучит умно. Кажется правильным. Но так ли это?

Погодите — вы точно только что прочитали это ?

Да, я это сказал. Чистая архитектура, как ее проповедуют в каждой второй статье на Medium и в руководствах на YouTube, часто является скорее религией, чем разумным подходом. Особенно во Flutter, где разработчики тратят недели на настройку «идеальных слоев» только для того, чтобы создавать TODO-приложения.

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

Иллюзия структуры

На бумаге чистая архитектура дает нам:

Отличные цели. Но в реальной жизни?

Вы создаете 5 папок, чтобы написать «fetchUser()» в 5 разных местах и ​​называете это чистотой?

Настоящая причина, по которой разработчики используют чистую архитектуру во Flutter

Вот неприятная правда.

Большинство Flutter-разработчиков используют чистую архитектуру, потому что они использовали ее в Android, Java, .NET или Spring Boot, а не потому, что это имеет смысл во Flutter.

Это привычность, а не пригодность.

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

Это все равно, что пытаться использовать чертежи автомобиля для сборки велосипеда.

Flutter — это не бэкенд

Большинство руководств по чистой архитектуре написаны с учетом бэкенд-мышления.

Но Flutter?

Создание классов UserUseCase для каждого действия в вашем приложении — это просто синдром Java в одежде Dart.

Накладные расходы, о которых никто не говорит

Давайте будем честны:

Так почему же мы занимаемся архитектурой так, будто создаем программное обеспечение для атомной станции?

Чистая архитектура ≠ Архитектура Flutter

Давайте будем Flutter-реалистами:

Тем не менее, многие разработчики все еще обертывают свои приложения в:

И в конечном итоге душат производительность еще до того, как приложение загрузится.

Настоящие вопросы, которые мы должны задать

Прежде чем добавлять еще один слой, спросите себя:

Распространенные ловушки, которые ошибочно принимают за чистую архитектуру во Flutter

Эти ловушки выглядят чистыми, но на самом деле загромождают вашу кодовую базу:

Чистый код ≠ Чистая архитектура

Повторяйте за мной:

То, что оно многослойное, не значит, что оно лучше.

Хорошая архитектура — это:

Иногда это означает меньше слоев, а не больше.

Что вам на самом деле нужно в большинстве проектов Flutter

Вместо полной чистой архитектуры рассмотрите:

Суровая правда

Чистая архитектура как молоток — полезна, но не каждый проект — гвоздь.

Использование ее по умолчанию, а не в качестве осознанного инструмента — вот настоящий миф.

Есть ли реальный прирост производительности?

Нет. Не во Flutter-разработке, рендеринге кадров, дереве виджетов или времени запуска.

Чистая архитектура не дает:

Но многие разработчики верят, что это каким-то образом «оптимизирует» их приложение.

Это не стратегия производительности, а стратегия папок.

Так когда же вам действительно нужна чистая архитектура?

Используйте его, когда:

Не беспокойтесь, если:

Используйте чистую архитектуру, когда она решает реальную проблему, а не для того, чтобы произвести впечатление на ваш GitHub.

Давайте поговорим

Я знаю, что этот пост вызовет раздражение. Хорошо. Давайте поговорим:

Вы использовали чистую архитектуру в продакшене?

Это действительно помогло? Или замедлило работу?

Какую структуру вы используете вместо этого и почему?

Напишите свои мысли в комментариях. Мне искренне интересно, что думает сообщество.

Заключительная мысль

Пишите чистый код. Создавайте понятные системы. Но не поддавайтесь карго-культу архитектуры. Потому что иногда самое чистое, что вы можете сделать, — это сделать все просто.

Источник

Exit mobile version