Минусы подхода «делать всё на ассетах»
В современной разработке всё чаще проекты делаются интеграционными. Я уже про это говорил, но не раскрывал почему это плохо и в каких случаях. А об этом думаю стоит поговорить. Сразу скажу, что речь не про «не использовать ассеты», а помнить про опасности при использовании.
Это удивительное везение, когда готовое решение работает «как надо» без допила или хотя бы из него нужна большая часть функций. Инструменты стоит разделить на три вида: фреймворки, большие плагины и мелкие утилиты.
Пример опасного фреймворка — это дутвин. Почему я считаю это фреймворком. Дутвин для удобства использования требует определённый принцип подхода к написанию кода и накладывает свои ограничения.
Пример хорошего большого плагина — это AVPro. Выделенная функция, которая не делает ничего лишнего. Она не прошивает всю систему, но выполняет большую и важную функцию.
А мелкие утилиты — это обычно сниппеты из интернета, которые выполняют одну совсем небольшую задачу. Типа перемножения матриц :)
Утилиты — можно использовать сколько угодно, у них реализацию легко и править, и поддерживать, так как она микроскопическая)
Большие плагины — имеют проблемы если опираются на какие-то библиотеки типа гугл сервисов (привет фаербейс) Тогда может случиться ад версий. И их в них уже в свою очередь важна поддержка
А вот фреймворки надо юзать с большой осторожностью)
1. Устойчивость системы
К сожалению, операционные системы развиваются, программные платформы меняются и так далее. Сборка может сломаться даже если вы ничего не делаете, просто со временем. Не работать на определённой версии ОС телефона скажем или браузера. Поэтому любой фреймворк и большой плагин — это дополнительная точка отказа. Когда они важны и нужны вам целиком использование оправдано. Но когда ради одной маленькой фичи из фреймворка тянутся какие-то зависимости и т.п. это может стать серьёзной проблемой.
2. Сложность системы
Сложные фреймворки усложняют проект. И это бывает очень плохо в небольших системах, которые разрабатываются скажем пару недель или месяц.
3. Баги в ассетах
Некоторые ассеты имеют баги, которые сложнее поправить, чем сделать разработку с нуля.
4. Проблемы интеграций
Это так же относится к аду dll. Делая всё на ассетах рано или поздно появится проблема разведения зависимостей. Если несколько ассетов опираются на разные версии библиотек — это становится большой проблемой.