Ho sempre pensato che uno dei tratti distintivi di un buon vantaggio sia qualcuno che fornisce l'addestramento aggiuntivo necessario in ogni ciclo di sviluppo. Per me, ciò significa che non sto solo codificando me stesso o rivedendo il codice, ma seduto con altri sviluppatori junior, accoppiare la programmazione con loro per aiutarli a evitare il tipo di mine antiuomo che ho calpestato.
Principalmente, non ho l'illusione che il nostro obiettivo primario sia educativo, non lo è. Che tu sia un senior, un lead o uno sviluppatore junior, l'obiettivo non è la tua edificazione. L'obiettivo è sempre quello di fornire al cliente un codice di qualità. Preferibilmente in tempo, a budget, facendo quello che vogliono. Riconosco, tuttavia, che è impossibile per me portare a termine tutto il lavoro da solo, quindi spetta a me essere un vantaggio per aiutare tutti ad aiutare il team ad avere successo. Ciò significa riconoscere le opportunità di formazione quando appaiono in natura.
Quindi, alla tua domanda sul fatto che le richieste pull siano il posto giusto per allenare i giovani, dovrei dire che non è raro che durante questi momenti sorgano momenti insegnabili. Ehi, dovrai affrontare il tuo primo conflitto di unione, andiamo oltre dopo la revisione. Oh guarda, non hai incluso nessun test unitario per il tuo DAO, rimanderemo la tua recensione fino a quando non avremo avuto la possibilità di coprire quei nuovi metodi. Perché hai pensato che sarebbe meglio usare le doppie primitive in questo calcolo finanziario rispetto a BigDecimals? Sì, non è insolito.
Quindi, mentre direi che certamente può succedere, ma chiaramente non è l'obiettivo principale di una richiesta pull. Né ritengo ci sia l'aspettativa che il codice in una richiesta pull sia pronto per la produzione. Spesso non lo è.
Se stai usando funzionalità e rilasci di rami in una strategia di ramificazione in stile gitflow, le tue richieste pull diventano qualcosa di più simile ai candidati al rilascio. Non pronto per la produzione, ma qualcosa di più approssimativo. Sai che il tuo codice viene compilato (a destra) e hai una prova di prova sufficiente per affermare che soddisfa gli obiettivi della storia dell'utente. E poiché hai già eseguito diversi test di integrazione nel tuo ambiente di sviluppo, hai una grande demo pronta per partire se ti viene chiesto di dimostrare le tue modifiche, cosa che farai, durante la revisione del tuo PR.
In definitiva, ritengo che dovremmo fornire assistenza durante le revisioni del PR, ma l'assistenza non riguarda la codifica generale. Al contrario, è associato alla preparazione del codice proposto per l'inclusione con una base operativa di codice di qualità di produzione. Il PR è un'opportunità per gli sviluppatori di dimostrare di avere una giustificazione e una solida comprensione di ogni modifica che hanno incluso nel PR. E anche allora - anche dopo averli appesantiti con test unitari, dimostrazioni e un sacco di domande - non ci si può aspettare che le modifiche proposte siano pronte per la produzione.
Il codice è vicino dopo tutto ciò. Ma poi permettiamo al QA di torturarlo.