Por muito tempo eu argumentei que eles eram de igual valor, ou então
muito próximos de igual que o possível ganho fazendo a escolha certa estava muito abaixo do
custo de discutindo sobre isso.
Ser consistente é importante , no entanto. Então eu disse, vamos jogar uma moeda e começar a escrever código.
Eu já vi programadores resistirem a mudanças assim 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.
Há alguns anos, eu estava trabalhando em uma equipe (~ 20 desenvolvedores) que decidiu solicitar informações e, em seguida, tomar uma decisão e, em seguida, aplicá-la em toda a base de código. Nós teríamos uma semana para decidir.
Muitos gemidos & revirar os olhos. Muitos "eu gosto do meu jeito, porque é melhor", mas sem substância.
Como estávamos estudando os pontos mais delicados da pergunta, alguém perguntou como lidar com esse problema no estilo de usar a mesma linha:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Note que não é imediatamente óbvio onde a lista de parâmetros termina e o corpo começa. Compare com:
void MyFunction(
int parameterOne,
int parameterTwo)
{
int localOne,
int localTwo
}
Fizemos algumas leituras sobre como as pessoas em todo o mundo lidaram 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ê vai fazer uma pausa visual, você pode fazer isso com uma chave. Então, suas quebras visuais se tornam consistentes também.
Editar : duas alternativas para a solução "linha extra em branco" ao usar o K & R:
1 / Indente 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 mais argumentos em novas linhas para o 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ós não tivermos um precedente estabelecido , então o brace-on-next-line é o caminho a ser seguido.