На мій досвід найкращий спосіб - дозволити команді дірок зробити перегляд коду. У кожному проекті ми використовуємо список розсилки комітів, де ви можете відстежувати всі зміни коду в системі контролю версій. Більшість наших розробників підписалися на розсилку розсилки для конкретного проекту, оскільки вони зацікавлені у зміні коду.
Коли хтось помічає поганий шлях у новому вихідному коді, він або пояснює виконавцю, як він може зробити це кращим чином, якщо вчитель є стажистом, або він починає дискусію про це, якщо це був більш досвідчений вчитель.
Звичайно, цей метод не гарантує перегляду нового коду, особливо в стресові періоди, коли ніхто з членів команди не має дозвілля стежити за кожною зміною коду. Крім того, не кожен розробник відповідально ставиться до того, щоб кожен розробник зробив свою роботу добре, тільки за це ви не можете гарантувати її перевірку. Але, принаймні, в наших командах завжди є технічний менеджер, який відповідає за технічну якість.
Я справжній шанувальник оглядів кодів, якщо вони відповідають наступним показникам:
- кожен розробник має можливість переглянути весь код та аргументувати свою думку
- ніхто не має права зловживати іншим кодом
- не тільки поганий код активує дискусію, але й хороший код
- обговорення закінчуються щасливими для кожного залученого
- огляд відбувається майже в режимі реального часу, принаймні до завершення функції
Що я дізнався, це те, що якщо ви хтось, хто переглядає кожен рядок коду і думає, що вам доведеться контролювати такі речі, як якість коду з точки зору форматування коду чи ефективності коду, то ви самостійно дуже неефективні, оскільки ви робите те, для чого можуть робити машини. ти. Вашою метою має бути використання системи безперервної інтеграції, яка контролює якість збірки та коду кожного внеску коду. Якщо ця система створює звіти та надсилає їх учасникам, все ідеально.
Я мушу визнати, що якщо вам доведеться переглянути код, тому що ви повинні контролювати чи оцінювати якість програміста, то мої пропозиції не мають сенсу. У цьому випадку я б також не переглядав вихідний код рядок за рядком. Я б переглянув такі речі, як:
- чи є питання щодо безпеки
- призначені API, що використовуються
- чи застосував код вказаної архітектури
- він писав корисні тести (але тільки якщо він неявно пройшов інструктаж, я повинен був навчитися)
- Документація
- збір-процес
- ... і ще деякі, напевно
Якщо ви досвідчений розробник, ви завжди знайдете такі речі, як петлі, які ви могли б зробити з кращою продуктивністю. Звичайно, корисно пояснити іншим такі знання, але це не повинно бути частиною сеансу огляду. Якщо існують значні проблеми з продуктивністю, то не тому, що він (або вона) використовував менш ефективний варіант типу списку.
Оскільки початкове питання полягало в тому, чому деякі люди, здається, роблять кращий огляд, як інші, я відповів би, що ці люди, можливо, роблять попередній перегляд до початку реального огляду, означає, що вони, ймовірно, підготовлені самі, щоб вони точно знали, що хочуть переглянути. .