Безліч код записується і об'єднується без належного перегляду коду. Це може працювати. Існує причина, чому його називають запахом коду, а не "зламаним кодом" або чимось для цього ефектом. Відсутність перегляду коду є попереджувальним знаком, а не передвісником приреченості.
Вирішення цієї проблеми полягає в тому, що не існує жодного рішення, яке б відповідало всім випадкам, які ми можемо упакувати у відповідь стилю StackExchange. Це сильний консенсус спільноти з розробки програмного забезпечення, що перегляд коду є важливою «найкращою практикою», і в цьому випадку він пропускається. Ваш розвиток вже не є тим вузьким каналом "дотримання всіх найкращих практик". Вам потрібно буде знайти свій власний шлях.
Що таке «найкраща практика» у будь-якому випадку? Коли ви перейдете до цього, це набір практик, які люди, як правило, думають, що покращують код. Чи правильно вони роблять код? Чорт ні! Інтернет заповнений історіями компаній, які дотримувались "кращих практик" і самі забилися. Можливо, кращою точкою зору "найкращих практик" є те, що вони є рішеннями "пожежу та забудь" у світі програмного забезпечення. Я нічого не можу знати про вашу компанію, ваш проект, вашу команду, і я зможу відмовитись від «найкращих практик» як речей, які допоможуть вам допомогти. Вони є загальною порадою "не нашкодь".
Ви чітко відхилилися від цього плану. На щастя, ви це визнаєте. Хороша робота! Кажуть, знання - це половина битви; якщо так, то обізнаність значно перевищує половину! Тепер потрібне рішення. З вашого опису видно, що бізнес-середовище, в якому ви перебуваєте, розвинулося до того моменту, коли нудна порада «перейдіть на перегляд коду, найкраща практика» не збирається його скорочувати. Для цього я рекомендую ключове правило, яке я використовую, коли мова йде про найкращі практики програмного забезпечення:
Жодна найкраща практика розробки програмного забезпечення не наштовхує на потребу бізнесу.
Чесно кажучи, вони платять вашу зарплату, а виживання бізнесу, як правило, набагато важливіше, ніж якість програмного забезпечення. Ми не любимо цього визнавати, але ідеально написане програмне забезпечення марно, якщо воно потрапляє в тіло компанії, що помирає від її зусиль у підтримці цього ідеально написаного програмного забезпечення.
То куди ти підеш? Слідуйте слідом сили. Ви вказали, що з якихось невстановлених причин нерозумно проходити огляд коду для якогось завдання. На мій досвід, ця причина завжди тимчасова. Це завжди або "недостатньо часу", або "недостатньо грошей, щоб зберегти зарплату, поки ви витрачаєте час". Це бізнес; це добре. Якби це було легко, всі зробили б це. Дотримуйтесь сліду сили вгору і знайдіть управління, яке може допомогти вам зрозуміти, чому огляд коду не є варіантом. Мова є важкою, і досить часто декрет відхиляється від керівництва і спотворюється. Вирішення вашої проблеми може бути приховано в цьому спотворенні.
Відповідь на це, обов'язково, конкретний сценарій випадку. Схоже на спроби передбачити, чи буде кидання монети головами чи хвостами. Найкращі практики говорять про те, щоб перевернути його в 100 разів, і очікується приблизно 50 голів і 50 хвостів, але у вас немає часу перевернути його 1 раз. Тут важливі деталі вашої ситуації. Чи знали ви, що монета, як правило, приземлятиметься в тій же орієнтації, яку вона викидала приблизно з 51% часу? Ви витратили час на спостереження, яким способом була монета перед її киданням? Це може змінити значення.
Одне загальне рішення, яке може бути доступне для вас - спробувати знайти спосіб оформити процес перегляду коду та докласти зусиль з дуже низькими витратами. Більшість витрат на процес перегляду коду полягає в тому, що всі на 100% присвячені огляду коду, поки ви це робите. Це має бути так, оскільки після перегляду коду код блаженний. Можливо, ви можете помістити код в іншу гілку і зробити огляд коду паралельно з розробкою на головному магістралі. Або, можливо, ви навіть можете налаштувати це так, щоб програмне забезпечення робило тестування для вас. Можливо, ви перебуваєте у бізнес-середовищі, де ваші клієнти можуть запускати "новий" код паралельно старому та змушувати їх порівнювати результати. Це перетворює клієнтів на купу пристроїв для створення справ.
Ключовим для всіх цих запущених "майбів" є те, що ви повинні прагнути, щоб ваш код легко розпадався на шматки. Можливо, ви зможете "довести" фрагменти коду, не покладаючись на офіційний огляд коду, використовуючи їх у менш важливих для місії проектах. Це зробити простіше, якщо зміни є меншими шматочками, навіть якщо загальна сума їх занадто велика для експертної оцінки.
Загалом, шукайте рішення, специфічні для вашого проекту, вашої компанії, вашої команди. Відповідь загальної мети була "найкращі практики". Ви не користуєтесь цими, тому на цей раз слід шукати більш спеціальні рішення цієї проблеми. Це бізнес. Якби все пішло так, як ми очікували весь час, IPO було б набагато простіше присвоювати значення, чи не так!
Якщо заміна огляду коду є труднощами, пам’ятайте, що ніколи не було жодного фрагмента коду, який, як було доведено, працює в огляді коду. * Усі огляди коду - це впевненість у коді та можливість внести виправлення перш ніж вони стануть проблемою. Обидва ці цінні продукти огляду коду можна придбати іншими способами. Перегляд коду просто має визнане значення за те, що він особливо хороший.
* Ну, майже: мікрокерел L4 деякий час отримав огляд коду автоматизованою системою підтвердження, яка підтверджує його код, якщо його складе відповідний компілятор C ++, зробить саме те, що йдеться в документації.