Faço parte de uma equipe de consultores que implementa uma nova solução para um cliente. Sou responsável pela maioria das revisões de código na base de código do lado do cliente (React e javascript).
Percebi que alguns membros da equipe usam padrões de codificação únicos a um ponto em que eu poderia escolher um arquivo aleatoriamente para dizer quem era o autor apenas do estilo.
Exemplo 1 (funções inline únicas)
React.createClass({
render: function () {
var someFunc = function () {
...
return someValue;
};
return <div>{someFunc()}</div>
}
});
O autor argumenta que, ao atribuir um nome significativo a someFunc, o código será mais fácil de ler. Acredito que, ao incluir a função e adicionar um comentário, o mesmo efeito pode ser alcançado.
Exemplo 2 (funções não acopladas)
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>;
}
});
É assim que geralmente fazemos (evita ter que passar estado e adereços):
React.createClass({
renderSomePart: function () {
return (
<div>
<p>{this.props.myProp}</p>
<p>{this.state.myState}</p>
</div>
);
},
render: function () {
return <div>{this.renderSomePart()}</div>;
}
});
Embora esses padrões de codificação sejam tecnicamente corretos, eles não são consistentes com o restante da base de código nem com o estilo e os padrões que o Facebook (o autor do React) sugere em tutoriais e exemplos.
Precisamos manter um ritmo acelerado para cumprir o prazo e não quero sobrecarregar a equipe desnecessariamente. Ao mesmo tempo, precisamos estar em um nível de qualidade razoável.
Estou tentando me imaginar como o desenvolvedor de manutenção dos clientes diante de inconsistências como essas (cada componente pode exigir que você entenda outra maneira de fazer a mesma coisa).
Pergunta, questão:
Qual é o valor percebido pelo cliente e seus desenvolvedores de manutenção de uma base de código consistente versus permitir que inconsistências como essas permaneçam e potencialmente se espalhem?