У питанні є два помітні питання - тактовна частина та частина, що настає в кінцевому порядку. Це окремі питання - перше - питання спілкування та динаміки команди, друге - питання планування та визначення пріоритетності.
Тактовно . Я припускаю, що ви хочете уникати зіпсованих егоїстів та негативних відштовхувань від відгуків. Деякі пропозиції:
- Мати спільне розуміння стандартів кодування та принципів дизайну.
- Ніколи не критикуйте та не переглядайте розробника , а лише код . Уникайте слова "ви" або "ваш код", просто поговоріть про код, що переглядається, відсторонений від будь-якого розробника.
- Покладіть свою гордість на якість заповненого коду, щоб оцінити коментарі, які допоможуть покращити кінцевий результат.
- Запропонуйте покращення, а не попит. Завжди ведіть діалог, якщо не погоджуєтесь. Спробуйте зрозуміти іншу точку зору, коли ви не згодні.
- Нехай огляди йдуть обома способами. Тобто людина, яку ви переглядали, перегляньте свій код далі. Не майте "односторонніх" відгуків.
Друга частина - це пріоритетність . У вас є багато пропозицій щодо вдосконалень, але оскільки наближається термін, є лише час застосувати декілька.
Ну, спочатку ви хочете, щоб цього не сталося в першу чергу! Ви робите це, здійснюючи постійні, поступові огляди. Не дозволяйте розробнику тижнями працювати над функцією, а потім перегляньте її в останній момент. По-друге, огляд коду та час на реалізацію пропозицій щодо огляду повинні бути частиною регулярного планування та кошторису будь-якого завдання. Якщо не вистачає часу на належний огляд, щось пішло не так у плануванні.
Але припустимо, що щось пішло не так у процесі, і ви зараз стикаєтесь з низкою коментарів з огляду, і ви не маєте часу їх впровадити. Ви повинні розставити пріоритети. Потім перейдіть до змін, які буде найважче і ризиковано змінити пізніше, якщо ви відкладете їх.
Назви ідентифікаторів у вихідному коді неймовірно важливі для читабельності та ремонтопридатності, але це також досить легко та з низьким ризиком змінитись у майбутньому. Те саме з форматуванням коду. Тому не зосереджуйтесь на цьому. З іншого боку, розумність відкрито відкритих інтерфейсів повинна бути найвищим пріоритетом, оскільки їх насправді важко змінити в майбутньому. Постійні дані важко змінити - якщо ви вперше починаєте зберігати непослідовні або неповні дані в базі даних, це справді важко виправити в майбутньому.
Області, які охоплені одиничними тестами, мають низький ризик. Ви завжди можете їх виправити пізніше. Області, яких немає, але які можуть бути перевірені одиницею, мають менший ризик, ніж області, які не можуть бути перевірені одиницею.
Скажімо, у вас великий фрагмент коду, що не має одиничних тестів і всілякі проблеми якості коду, включаючи жорстку залежність від зовнішньої служби. Натомість, вводячи цю залежність, ви робите фрагмент коду перевіреним. Це означає, що ви можете в майбутньому додавати тести, а потім працювати над виправленням решти питань. З твердою кодовою залежністю ви навіть не можете додавати тести. Тому спершу перейдіть до цього виправлення.
Але будь ласка, намагайтеся, перш за все, уникати цього сценарію!