З досвідом виходить визнати, коли код насправді поганий і коли він просто написаний в іншому стилі. Якщо це ідеально функціонально і легко піддається технічному обслуговуванню і є добре автоматизоване тестове покриття , то це непогано, і вам просто потрібно відкрити свою думку. Ви, напевно, щось навчитесь. Поганий код не функціональний і не піддається ремонту.
Ось кілька маркерів справді поганого коду:
- Великі блоки логіки були скопійовані замість реконструкції.
- Кругові залежності між класами або пакетами
- Висока муфта; низька згуртованість
- Невикористані змінні, запис до змінних, які ніколи не читаються, недоступний код.
- Повторне виконання стандартних функцій бібліотеки, наприклад, форматування дати.
- Зайве складна логіка; тобто 50 рядків коду, де 10 було б непогано.
- Немає коментарів, що описують мету занять чи методи.
- Неправильні коментарі.
Відсутність автоматизованих тестів не означає, що код поганий, але це означає, що проект поганий.
Це не питання смаку; ці практики значно покращують обслуговування програм.
Як ви готуєтесь?
Прийміть той факт, що для успішної роботи над новою базою коду потрібен певний час. Якщо це "ідеально піддається технічному обслуговуванню" та є високий рівень тестового покриття, це займе менше часу, але все одно це не відбудеться одразу. Якщо код поганий, перше, що я роблю, - попередити зацікавлених сторін, що він у поганій формі, і початковий прогрес буде повільним. Якщо вони скептично налаштовані, тоді я підкріплюю свою заяву, показуючи їм зразок проблем у фактичному коді та пояснюючи, як це залежить від найкращої практики в галузі.