С опытом приходит суждение узнать, когда код действительно плох, а когда он просто написан в другом стиле. Если он идеально функционирует и обслуживается, и имеется хорошее автоматизированное тестовое покрытие , то это неплохо, и вам просто нужно открыть свой разум. Вы, вероятно, чему-то научитесь. Плохой код не является функциональным и обслуживаемым.
Вот некоторые маркеры действительно плохого кода:
- Большие блоки логики были дублированы вместо рефакторинга.
- Круговые зависимости между классами или пакетами
- Высокая связь; низкая когезия
- Неиспользуемые переменные, запись в переменные, которые никогда не читаются, недоступный код.
- Повторная реализация стандартных библиотечных функций, например форматирование даты.
- Излишне сложная логика; то есть 50 строк кода, где 10 будет хорошо.
- Нет комментариев, описывающих назначение классов или методов.
- Вводящие в заблуждение комментарии.
Отсутствие автоматизированных тестов не означает, что код плохой, но означает, что проект плохой.
Это не вопрос вкуса; эти методы делают обслуживание программы намного дороже.
Как ты готовишься?
Примите тот факт, что для успешной работы над новой кодовой базой требуется некоторое время. Если оно «идеально обслуживаемо» и имеет высокий охват тестированием, это займет меньше времени, но все равно не произойдет немедленно. Если код плохой, то первое, что я делаю, это предупреждаю заинтересованные стороны, что он в плохом состоянии, и первоначальный прогресс будет медленным. Если они скептически относятся к делу, то я подтверждаю свое утверждение, показывая им пример проблем в реальном коде и объясняя, как оно отличается от лучших отраслевых практик.