Durante mucho tiempo sostuve que tenían el mismo valor, o tan cerca de igual que la posible ganancia al tomar la decisión correcta estaba muy, muy por debajo del costo de discutir sobre eso.
Sin embargo, ser consistente es importante . Así que dije que volteemos una moneda y empecemos a escribir el código.
He visto a programadores resistirse a cambios como este antes. ¡Superalo! He cambiado muchas veces en mi carrera. Incluso uso diferentes estilos en mi C # que en mi PowerShell.
Hace unos años, estaba trabajando en un equipo (~ 20 desarrolladores) que decidió solicitar información y luego tomar una decisión y luego aplicarla en toda la base de código. Tendríamos 1 semana para decidir.
Muchos gemidos y ojos rodantes. Un montón de "Me gusta mi camino, porque es mejor", pero sin sustancia.
Mientras estábamos estudiando los puntos más finos de la pregunta, alguien preguntó cómo lidiar con este problema en un estilo de refuerzo en la misma línea:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Tenga en cuenta que no es inmediatamente obvio dónde termina la lista de parámetros y comienza el cuerpo. Comparar con:
void MyFunction(
int parameterOne,
int parameterTwo)
{
int localOne,
int localTwo
}
Leímos un poco sobre cómo la gente de todo el mundo había tratado este problema, y encontramos el patrón de agregar una línea en blanco después del paréntesis abierto:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Si vas a hacer un descanso visual, también puedes hacerlo con un aparato ortopédico. Entonces tus pausas visuales también se vuelven consistentes.
Editar : Dos alternativas a la solución de 'línea en blanco adicional' cuando se usa K&R:
1 / Sangrar los argumentos de la función de manera diferente del cuerpo de la función
2 / Coloque el primer argumento en la misma línea que el nombre de la función y alinee más argumentos en nuevas líneas con ese primer argumento
Ejemplos:
1 /
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
2 /
void MyFunction(int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
/Editar
Todavía sostengo que la consistencia es más importante que otras consideraciones, pero si no tenemos un precedente establecido , entonces prepararse en la siguiente línea es el camino a seguir.