Ich bin Teil eines Beraterteams, das für einen Kunden eine neue Lösung implementiert. Ich bin für die Mehrheit der Codeüberprüfungen auf der clientseitigen Codebasis (React und Javascript) verantwortlich.
Ich habe festgestellt, dass einige Teammitglieder eindeutige Codierungsmuster verwenden, sodass ich nach dem Zufallsprinzip eine Datei auswählen und feststellen kann, wer der Autor des Stils ist.
Beispiel 1 (einmalige Inline-Funktionen)
React.createClass({
render: function () {
var someFunc = function () {
...
return someValue;
};
return <div>{someFunc()}</div>
}
});
Der Autor argumentiert, dass durch Zuweisen eines aussagekräftigen Namens zu someFunc der Code leichter zu lesen ist. Ich glaube, dass durch Inlinen der Funktion und Hinzufügen eines Kommentars derselbe Effekt erzielt werden kann.
Beispiel 2 (ungebundene Funktionen)
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>;
}
});
So machen wir es normalerweise (ohne Status und Requisiten übergeben zu müssen):
React.createClass({
renderSomePart: function () {
return (
<div>
<p>{this.props.myProp}</p>
<p>{this.state.myState}</p>
</div>
);
},
render: function () {
return <div>{this.renderSomePart()}</div>;
}
});
Obwohl diese Codierungsmuster technisch korrekt sind, stimmen sie weder mit dem Rest der Codebasis noch mit dem Stil und den Mustern überein, auf die Facebook (der Autor von React) in Tutorials und Beispielen hinweist.
Wir müssen ein schnelles Tempo einhalten, um pünktlich zu liefern, und ich möchte das Team nicht unnötig belasten. Gleichzeitig müssen wir auf einem angemessenen Qualitätsniveau sein.
Ich versuche mir vorzustellen, dass ich als Wartungsentwickler des Kunden mit solchen Inkonsistenzen konfrontiert bin (jede Komponente erfordert möglicherweise, dass Sie eine andere Vorgehensweise verstehen).
Frage:
Was ist der Wert, den der Kunde und seine Wartungsentwickler für eine konsistente Codebasis halten, während sich solche Inkonsistenzen möglicherweise ausbreiten können?