Предложить редизайн проекта
Мой вопрос носит общий характер, я даже не уверен, разрешены ли такие вопросы для SO, но он давил на меня последние пару месяцев, и я не мог найти что-нибудь по этому поводу в другом месте. Я должен упомянуть, что я все еще младший разработчик, и это может быть из-за того, что я просто ошибаюсь, но здесь ничего не происходит..
В настоящее время мне поручено поддерживать и развивать приложение Android. Работу, проделанную до того, как я вступил во владение, лучше всего описать как "по крайней мере, это работает, но не совсем". Существует множество функциональных возможностей, сопровождаемых множеством маленьких неуклюжих ошибок, которые случаются периодически, а также другими многозадачными и асинхронными поведенческими проблемами и ограничениями.
Никакой дизайн не был согласован, что, я полагаю, указывает на то, что не было проведено должного исследования, как структурировать все вещи, а javadoc практически не существует. Я считаю, что это единственный подарок от источников, которые были импортированы в этот проект, а не с нуля.
С технической точки зрения, это урезанный MVC с анорексической моделью (геттеры, сеттеры, без поведения) и голодными представлениями (только необходимые виджеты, добавленные туда) с буфетом патологически страдающих ожирением контроллеров в виде действий, чтобы компенсировать все это, Эти действия отвечают за передачу бизнес-логики, взаимодействие с пользователем, манипулирование данными, а также за сетевую связь - от полного анализа сообщения до запуска новых действий на основе ответа сервера.
Очевидно, что каждая проблема должна решаться в действиях, но обходные пути становятся все более и более ограниченными и хитрыми. У меня был другой разработчик, который поддерживал версию для iOS, который был довольно шокирован таким положением вещей, и старший разработчик, который в значительной степени сказал: "Ничего не поделаешь, просто делай, что можешь".
Итак, в заключение, и смысл этого поста в том, что я хотел бы перенести немного мяса и костей в модель, позволяя ей отвечать за взаимодействие с сервером для заполнения своих данных и иметь свое собственное поведение как для предоставления контроллеру, так и для обслуживания. сам. Это изменение почти полностью отделило бы действия от необходимости непосредственно обрабатывать взаимодействие с сервером и вместо этого сосредоточить внимание на бизнес-логике и взаимодействии с пользователем на данный момент.
Что в итоге делают люди с любым опытом, сталкивающимся с чем-то подобным, и как это получается?