На форуме в очередной раз всплыл двоякий вопрос «всё ли я правильно делаю». Как и всегда, этот вопрос может подразумевать много чего, но так как был замешан архитектурный паттерн, то я не удержался напомнить про паттерны в общем.
Архитектурные паттерны вроде clean architecture или hexagonal architecture мало чем отличаются от привычных паттернов проектирования в плане их применения. Как и с паттернами с свойственной им стадией «паттернизма», с архитектурными паттернами случается ровно то же. Практически все в определённый момент читают про очередной модный паттерн и начинают его бездумно применять. Не потому что он решает их конкретные проблемы, а потому что модно и «правильно».
Применять любой паттерн без должного анализа решаемой проблемы вредно.
В идеале должен происходить следующий процесс:
- Анализ решаемой проблемы.
- Выделение мест, которые должны быть гибкими.
- Выделение болей. Поиск паттернов, которые могут их решить или изобретение решений (это часто не хуже).
- Повторный анализ решения, которое получится. Можно ли проще?