Por um longo tempo, argumentei que eles tinham igual valor, ou tão próximos de igual que o possível ganho ao fazer a escolha certa estava muito, muito abaixo do custo de discutir sobre isso.
Ser consistente é importante , no entanto. Então eu disse: vamos jogar uma moeda e começar a escrever o código.
Já vi programadores resistirem a mudanças como essa antes. Deixe isso para trás! Eu mudei muitas vezes na minha carreira. Eu até uso estilos diferentes no meu C # do que no meu PowerShell.
Alguns anos atrás, eu estava trabalhando em uma equipe (~ 20 desenvolvedores) que decidiu pedir informações, tomar uma decisão e aplicá-la em toda a base de código. Teríamos 1 semana para decidir.
Muitos gemidos e revirar os olhos. Muitos "eu gosto do meu jeito, porque é melhor", mas sem substância.
Enquanto estudávamos os pontos mais delicados da pergunta, alguém perguntou como lidar com esse problema no estilo "prepare-se-na-mesma-linha":
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Observe que não é imediatamente óbvio onde a lista de parâmetros termina e o corpo começa. Comparado a:
void MyFunction(
int parameterOne,
int parameterTwo)
{
int localOne,
int localTwo
}
Fizemos algumas leituras sobre como as pessoas em todo o mundo haviam lidado com esse problema e descobrimos o padrão de adicionar uma linha em branco após a chave aberta:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Se você quiser fazer uma pausa visual, é melhor fazê-lo com uma chave. Então suas quebras visuais também se tornam consistentes.
Edit : Duas alternativas para a solução 'extra blank blank' ao usar K&R:
1 / Recuar os argumentos da função de maneira diferente do corpo da função
2 / Coloque o primeiro argumento na mesma linha que o nome da função e alinhe outros argumentos em novas linhas ao primeiro argumento
Exemplos:
1 /
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
2 /
void MyFunction(int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
/Editar
Eu ainda argumento que a consistência é mais importante do que outras considerações, mas se não temos um precedente estabelecido , o melhor caminho é seguir em frente.