Я завжди відчував, що однією з відмінних особливостей хорошого керівництва є той, хто забезпечує додаткове навчання в міру необхідності під час кожного циклу розвитку. Для мене це означає, що я не тільки кодую себе або переглядаю код, але сиджу з більш молодими розробниками, парую програмування з ними, щоб допомогти їм уникнути виду мін, на які я наступив.
Головним чином, я не маю ілюзій, що наша основна мета - це освіта. Незалежно від того, ви старший, головний чи молодший розробник, мета - це не ваше збудування. Мета - завжди доставити якісний код замовнику. Переважно вчасно, на бюджет, робити те, що вони хочуть. Я все-таки визнаю, що мені неможливо зробити всю роботу самостійно, тому на мене покладено обов'язок допомагати кожному допомагати команді досягти успіху. А це означає визнати можливості навчання, коли вони з'являються в природі.
Отже, на ваше запитання про те, чи є запити на витягування місцем для тренувань юніорів, я мушу сказати, що не рідко виникають навчальні моменти під час них. Гей, вам доведеться зіткнутися з вашим першим конфліктом злиття, давайте перейдемо до цього після огляду. О, подивіться, ви не включили жодних тестових одиниць для свого DAO, ми відкладемо ваш огляд до того моменту, поки ми не зможемо охопити ці нові методи. Чому, на вашу думку, було б краще використовувати подвійні примітиви у цьому фінансовому розрахунку, ніж BigDecimals? Так, це не дуже рідко.
Так, хоча я б сказав, що це, безумовно, може статися, але це явно не головна мета запиту на притягнення. Також я не вважаю, що очікується, що код у запиті на виклик готовий до виробництва. Часто це не так.
Якщо ви використовуєте функції та випускаєте гілки в стратегії розгалуження стилю gitflow, то ваші запити на виклик стають чимось схожими на кандидатів на звільнення. Не готове виробництво, а щось більш наближене до нього. Ви знаєте, що ваш код складається (праворуч), і у вас є достатньо тестового covfefe, щоб гідно стверджувати, що він відповідає цілям історії користувача. А оскільки ви вже провели декілька тестів на інтеграцію у вашому середовищі розробки, у вас є демонстрація, яка буде готова до запуску, якщо вас попросять продемонструвати свої зміни, які ви будете під час огляду вашого PR.
Зрештою, я вважаю, що нам слід надавати допомогу під час огляду PR, але ця допомога не стосується загального кодування. Натомість це пов'язано з підготовкою запропонованого коду для включення з робочою базою коду якості виробництва. PR - це можливість розробникам продемонструвати, що вони мають виправдання та суцільне розуміння кожної зміни, яку вони включили до PR. І навіть тоді - навіть після того, як ми їх зважили за допомогою одиничних тестів, демонстрацій та запитань, - все ще не очікується, що запропоновані зміни будуть готові до виробництва.
Код після цього закритий. Але тоді ми дозволяємо QA мучити це.