Я всегда чувствовал, что одним из отличительных признаков хорошего лидера является тот, кто проводит дополнительное обучение по мере необходимости во время каждого цикла разработки. Для меня это означает, что я не только сам кодирую или рецензирую код, но и сижу с более молодыми разработчиками, парные программисты с ними, чтобы помочь им избежать наземных мин, на которые я наступил.
Главным образом, у меня нет иллюзий, что наша основная цель - это образование, это не так. Являетесь ли вы старшим, ведущим или младшим разработчиком, цель не ваше назидание. Цель всегда состоит в том, чтобы предоставить качественный код клиенту. Желательно вовремя, по бюджету, делать то, что они хотят. Однако я признаю, что я не могу выполнить всю работу самостоятельно, поэтому на меня возложена обязанность помочь всем помочь команде добиться успеха. А это означает признание возможностей обучения, когда они появляются в природе.
Итак, на ваш вопрос о том, являются ли запросы на вытягивание местом обучения юниоров, я должен был бы сказать, что во время этих моментов нередко возникают обучающие моменты. Эй, вам придется иметь дело с вашим первым конфликтом слияния, давайте разберемся с этим после обзора. О, смотрите, вы не включили никаких модульных тестов для вашего DAO, мы отложим ваш обзор до тех пор, пока у нас не будет возможности осветить эти новые методы. Почему вы думаете, что в этом финансовом расчете лучше использовать двойные примитивы, чем BigDecimals? Да, это не редкость.
Так что, хотя я бы сказал, что это, безусловно, может произойти, но это явно не главная цель запроса на удаление. Также я не чувствую, что код в запросе на получение готов к работе. Часто это не так.
Если вы используете ветки функций и выпусков в стратегии ветвления в стиле gitflow, то ваши запросы извлечения становятся чем-то более похожим на кандидаты на выпуск. Не готов к производству, но что-то более приближенное к нему. Вы знаете, что ваш код компилируется (справа), и у вас достаточно тестов, чтобы сделать достойное заявление о том, что он соответствует целям пользовательской истории. И поскольку вы уже провели несколько интеграционных тестов в своей среде разработки, у вас есть отличная демоверсия, готовая к запуску, если вас попросят продемонстрировать изменения, которые вы будете делать, во время проверки вашего PR.
В конечном счете, я чувствую, что мы должны оказывать помощь при рассмотрении PR, но эта помощь не связана с общим кодированием. Вместо этого это связано с подготовкой предложенного кода для включения в рабочую базу кода производственного качества. PR - это возможность для разработчиков продемонстрировать, что они имеют обоснование и твердое понимание каждого изменения, которое они включили в PR. И даже тогда - даже после того, как мы взвесили их с помощью модульных тестов, демонстраций и множества вопросов - все еще не ожидается, что предлагаемые изменения готовы к производству.
Код близок после всего этого. Но тогда мы позволим QA мучить его.