私は、顧客向けの新しいソリューションを実装するコンサルタントチームの一員です。クライアント側のコードベース(Reactおよびjavascript)のコードレビューの大部分を担当しています。
一部のチームメンバーが独自のコーディングパターンを使用して、スタイルだけで作者が誰であるかをランダムに選択できるようになっていることに気付きました。
例1(1回限りのインライン関数)
React.createClass({
render: function () {
var someFunc = function () {
...
return someValue;
};
return <div>{someFunc()}</div>
}
});
著者は、someFuncに意味のある名前を割り当てることで、コードが読みやすくなると主張しています。関数をインライン化し、代わりにコメントを追加すると、同じ効果が得られると思います。
例2(非バインド関数)
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>;
}
});
これは通常の方法です(状態と小道具を渡す必要がなくなります)。
React.createClass({
renderSomePart: function () {
return (
<div>
<p>{this.props.myProp}</p>
<p>{this.state.myState}</p>
</div>
);
},
render: function () {
return <div>{this.renderSomePart()}</div>;
}
});
これらのコーディングパターンは技術的には正しいものの、コードベースの他の部分や、Facebook(Reactの作者)がチュートリアルや例で示唆しているスタイルやパターンとは一致していません。
時間通りに納品するには速いペースを維持する必要があり、チームに不必要な負担をかけたくありません。同時に、合理的な品質レベルである必要があります。
顧客のメンテナンス開発者がこれらのような矛盾に直面していると自分自身を想像しようとしています(すべてのコンポーネントは同じことをする別の方法を理解する必要があるかもしれません)。
質問:
顧客とその保守開発者が一貫したコードベースを認識し、これらのような不整合を残し、潜在的に拡散することを認める価値は何ですか?