Il nostro team ha recentemente concordato alcuni standard di codifica molto chiari e abbiamo bisogno di un mezzo per farli rispettare. Abbiamo già una pratica di integrazione continua matura che include frequenti, piccoli check-in e commit pre-testati.
Stiamo prendendo in considerazione due metodi per implementare un meccanismo di applicazione: un hook SVN pre-commit o una configurazione di build dedicata sul server CI. Ecco i trade-off che abbiamo considerato finora:
- Un hook SVN ...
- (-) richiede i privilegi di amministratore del server SVN per l'installazione, che non abbiamo. Possiamo lavorare con l'IT, ma evitare l'overhead è bello.
- (-) punta a uno script, che vorremmo tenere sotto controllo di versione con il resto del prodotto. Non so immediatamente come indirizzare il corretto script di hook, tenendo conto di rami, tag e lavoro sul tronco.
- (-) richiede più lavoro per la segnalazione. Lo script dovrebbe gestire sia la generazione che la pubblicazione del report.
- (+) fornisce un feedback rapido.
- (+/-) fornisce l'applicazione rigida: il codice esegue il check-in o non lo fa. Solitamente una cosa buona (si chiama "enforcement" per una ragione), ma può dare falsi positivi.
- La configurazione di build CI ...
- (-) consuma tempo sia sul server CI che su un agente. Potrebbe essere banale, ma si aggiunge.
- (-) introduce una latenza aggiuntiva, rendendo meno immediato il feedback.
- (+) gestisce facilmente gli standard che si evolvono nel tempo, facendo riferimento alla versione dello script esistente in qualsiasi ramo su cui stiamo lavorando.
- (+) fornisce report più semplici. Utilizziamo già il sistema CI per altri report. Aggiungerne uno nuovo sarebbe immediato.
- (+) applicazione configurabile: più semplice per ammorbidire i requisiti, se necessario. Potremmo raccogliere un elenco di violazioni per risolvere fuori banda o fornire avvertenze sugli standard che adottiamo in base alla prova.
Quali sono i compromessi di questi diversi metodi nel far rispettare gli standard di codifica qui?
correlati : Gli standard di codifica devono essere applicati dal server CI? - Aumenta alcuni punti positivi, ma non considera gli hook SVN.