Soy parte de un equipo de consultores que implementa una nueva solución para un cliente. yo soy responsable de la mayoría de las revisiones de código en el código base del lado del cliente (React y javascript).
Me he dado cuenta de que algunos miembros del equipo utilizan patrones de codificación únicos hasta un punto en el que podía elegir un archivo al azar para decir quién era el autor del estilo solo.
Ejemplo 1 (funciones en línea únicas)
React.createClass({
render: function () {
var someFunc = function () {
...
return someValue;
};
return <div>{someFunc()}</div>
}
});
El autor argumenta que al asignar un nombre significativo a someFunc, el código será más fácil de leer. Creo que al alinear la función y agregar un comentario, en su lugar, se podría lograr el mismo efecto.
Ejemplo 2 (funciones no vinculadas)
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>;
}
});
Así es como solemos hacerlo (evita tener que aprobar estados y apoyos):
React.createClass({
renderSomePart: function () {
return (
<div>
<p>{this.props.myProp}</p>
<p>{this.state.myState}</p>
</div>
);
},
render: function () {
return <div>{this.renderSomePart()}</div>;
}
});
Si bien estos patrones de codificación son técnicamente correctos, no son consistentes con el resto de la base de código ni con el estilo y los patrones que Facebook (el autor de React) insinúa en tutoriales y ejemplos.
Necesitamos mantener un ritmo rápido para poder entregar a tiempo y no quiero cargar al equipo innecesariamente. Al mismo tiempo, debemos estar en un nivel de calidad razonable.
Estoy tratando de imaginarme a mí mismo como el desarrollador de mantenimiento de los clientes frente a inconsistencias como estas (cada componente podría requerir que entiendas otra forma de hacer lo mismo).
Pregunta :
¿Cuál es el valor percibido por el cliente y sus desarrolladores de mantenimiento de una base de código coherente en lugar de permitir que las inconsistencias como estas permanezcan y se propaguen?