Faccio parte di un team di consulenti che implementa una nuova soluzione per un cliente. sono responsabile della maggior parte delle recensioni di codice sulla codebase lato client (React e javascript).
Ho notato che alcuni membri del team usano schemi di codifica univoci a tal punto che potrei scegliere un file a caso per capire chi era l'autore dallo stile da solo.
Esempio 1 (funzioni inline una tantum)
React.createClass({
render: function () {
var someFunc = function () {
...
return someValue;
};
return <div>{someFunc()}</div>
}
});
L'autore sostiene che assegnando un nome significativo ad alcuniFunc il codice sarà più facile da leggere. Credo che, integrando la funzione e aggiungendo un commento, si possa ottenere lo stesso effetto.
Esempio 2 (funzioni non associate)
function renderSomePart(props, state) {
return (
<div>
<p>{props.myProp}</p>
<p>{state.myState}</p>
</div>
);
}
React.createClass({
render: function () {
return <div>{renderSomePart(this.props, this.state)}</div>;
}
});
Questo è il modo in cui lo facciamo (evita di passare stato e oggetti di scena):
React.createClass({
renderSomePart: function () {
return (
<div>
<p>{this.props.myProp}</p>
<p>{this.state.myState}</p>
</div>
);
},
render: function () {
return <div>{this.renderSomePart()}</div>;
}
});
Sebbene questi schemi di codifica siano tecnicamente corretti, non sono coerenti con il resto del codice base, né con lo stile e i modelli che Facebook (l'autore di React) suggerisce in tutorial ed esempi.
Dobbiamo mantenere un ritmo veloce per consegnare in tempo e non voglio sovraccaricare la squadra inutilmente. Allo stesso tempo, dobbiamo avere un livello di qualità ragionevole.
Sto cercando di immaginarmi come lo sviluppatore di manutenzione dei clienti di fronte a incongruenze come queste (ogni componente potrebbe richiedere di capire un altro modo di fare la stessa cosa).
Domanda:
Qual è il valore percepito dal cliente e dai suoi sviluppatori di manutenzione su una base di codice coerente rispetto a consentire a incoerenze come queste di rimanere e potenzialmente diffondere?