Культ оверинженеринга
Выхожу из творческого отпуска.
Я часто сталкиваюсь с заумными техническими решениями от учеников и коллег.
Будто сложное решение = качественное. Это не так.
Вот пример. В коде нельзя было использовать Rx/Flow, но без реактивщины — никуда. К началу нового года коллеги изобрели CustomRxJava4 на тайпалиасах (первые рабочие дни были тяжелыми, понимаю). И тут я придумал простую эвристику:
не можешь разобраться в модуле за 30 минут — рефактори. В этом коде было достаточно заменить тайпалиасы на прямое использование нашего Observer'а и Interactor'а.
Не забывайте про принципы
Бритвы Оккама и
Open/Closed: хорош не тот модуль, в который нечего добавить, а тот, у которого нечего отнять. Если можно быстро что-то переработать или удалить без потери в качестве и бизнес-логике — сделайте это. Позаботьтесь о проекте.
Соблюдение этих принципов снижает когнитивную нагрузку на программистов --> увеличивает метрику поддерживаемости --> уменьшает время внесения изменений --> увеличивает
TTM.
Упрощайте.