Já houve algumas observações sobre o espaço em branco na discussão sobre posicionamentos de chaves.
Eu próprio tendem a borrifar meu código com linhas em branco, na tentativa de segregar coisas que se juntam em grupos "lógicos" e, espero, facilitar a próxima pessoa a ler o código que acabei de produzir.
Na verdade, eu diria que estruturo meu código como escrevo: faço parágrafos, não mais do que algumas linhas (definitivamente menores que 10), e tento tornar cada parágrafo independente.
Por exemplo:
- em uma classe, agruparei métodos que andam juntos, enquanto os separo por uma linha em branco do próximo grupo.
- se eu precisar escrever um comentário, normalmente colocarei uma linha em branco antes do comentário
- em um método, faço um parágrafo por etapa do processo
No geral, raramente tenho mais de 4/5 linhas agrupadas, o que significa um código muito esparso.
Não considero todo esse espaço em branco um desperdício, porque na verdade eu o uso para estruturar o código (como na verdade eu uso o recuo) e, portanto, acho que vale a pena o espaço de tela necessário.
Por exemplo:
for (int i = 0; i < 10; ++i)
{
if (i % 3 == 0) continue;
array[i] += 2;
}
Considero que as duas afirmações têm objetivos distintos e claros e, portanto, merecem ser separados para torná-lo óbvio.
Então, como você realmente usa (ou não) linhas em branco no código?
fonte
if (i % 3 != 0) { <newline here> array[i] += 2; <newline here> }
, Mas eu vejo o seu ponto :)for (int i = 0; i < 10; i += 3) { <newline here> array[i] += 2; <newline here> }
mas eu vejo o seu ponto :)Respostas:
Sempre
Espaço em branco é crucial para limpar código legível. Uma linha em branco (ou duas) ajuda a separar visualmente os blocos lógicos de código.
Por exemplo, no capítulo Code Complete, Second Edition , de Steve McConnell, sobre Layout e estilo:
fonte
Sim para maior clareza.
Assim como eu fiz nesta resposta.
fonte
Sim, mas certifico-me de documentá-lo colocando
(This line intentionally left blank.)
na linha
fonte
Sim, mas não abusei.
Eu vi código em que todas as linhas de código dentro de um método são separadas por uma linha em branco e duas linhas em branco são usadas onde ocorre uma separação lógica. Isso apenas torna ainda menos legível na minha opinião. Eu também vi espaços em branco usados para fazer alinhamentos malucos, como este:
O mesmo uso indevido do espaço em branco horizontal pode ser aplicado ao espaço em branco vertical. Como qualquer ferramenta, use-a com sabedoria.
fonte
Sou muito criticado por escrever meu código dessa maneira. Não entendo por que alguém não faria dessa maneira.
Legibilidade é tão importante quando você volta a um projeto após um longo período de tempo e ouvi um ditado "Sempre escreva código se o próximo cara que estiver lendo isso for um psicopata que conhece sua localização".
fonte
undo
algumas vezes para fazer o trabalho (as guerras de formatação não não leva à produtividade, por isso não excluo completamente os comentários e os espaços em branco, mas minha preferência é contra eles na maior parte).Nem sempre escrevo software, mas quando escrevo, uso linhas em branco para maior clareza.
fonte
Eu sou a favor de tornar o código o mais claro possível, e o espaço em branco geralmente é uma ferramenta útil nesse esforço. Mas não vamos esquecer a refatoração:
Como você tem vários membros relacionados, eles são candidatos a uma nova classe.
Sempre que o código não é claro o suficiente para querer um comentário, pergunto se posso refatorar para torná-lo claro o suficiente para não precisar do comentário.
Por que não criar um método para cada "parágrafo"?
Se você acabar com vários métodos em sua classe, veja minha nota acima sobre como extrair uma nova classe.
fonte
Sim. Isso facilita a verificação visual de um arquivo. Entre outras coisas, fica mais claro com qual linha um comentário se encaixa.
fonte
Uso linhas em branco com moderação e consistência, e consistentemente é mais importante do que com moderação. Contudo:
A maior parte disso não é terrivelmente controversa; o que se segue pode ser. Observo que a notação K&R com chaves abertas no final da linha é deprimente frequentemente seguida por uma linha em branco. Pessoalmente, não gosto dos aparelhos no final da linha e misturo isso com uma linha em branco após o aparelho fazer um absurdo da notação (IMNSHO). Coloque a chave aberta na próxima linha, por si só, e você terá uma linha principalmente em branco (e, IMNSHO, código mais legível). Se você precisar usar a cinta K&R no final da linha, não desperdice o espaço vertical economizando com linhas em branco estranhas.
fonte
Escreva o que é mais legível e menos surpreendente.
Esta função não precisa de 12 linhas de comentários do documento.
De fato, não precisa de comentários.
Ou linhas em branco.
Eles prejudicariam sua essência.
fonte
Dentro da função? Raramente
Se eu tiver um bloco claro e diferente, ele será refatorado para uma nova função. Se poucos casos não valem a pena.
Para mim, as linhas em branco na função são uma das "melhores práticas" erradas.
fonte
Frequentemente
Use-o para blocos lógicos de código que são processados de maneira semelhante. Depois de adicionar um comentário para mostrar que você está executando uma etapa diferente - é hora de Extrair o Método.
Bom espaço em branco
Espaço em branco inválido
vs
vs
fonte
connection.close()
paracloseConnection(connection)
item1
eitem2
variáveis globais que os métodos de comunicar através? Ick!Não apenas uso espaços em branco, como chaves para maior clareza.
Aparelho que uso para dizer que essas podem ser potencialmente funções.
fonte
Ao mesmo tempo, eu espalhava linhas em branco liberalmente em todo o meu código. Atualmente, eu tendem a ser mais poupadores. Eu acho que isso faz parte do que Steve Yegge estava falando aqui :
Eu concordo fundamentalmente com ele. É muito melhor compactar o código para que você possa obter o máximo possível em uma tela do que espaçá-lo demais. Isso não quer dizer que você nunca deve usar linhas em branco. Acho que, a menos que o agrupamento que você está tentando criar não aumente imensamente a legibilidade, isso causa mais mal do que bem.
fonte
Um professor emérito deu dois grandes conselhos
fonte
Minhas regras de ouro são estas:
Se tiver problemas para ler o código que escrevi ontem, provavelmente preciso extrair um método ou três.
Se minha definição de classe for muito longa para ser lida com facilidade, provavelmente preciso extrair um módulo / interface / objeto.
Definições de método: adicione uma linha
Definições de módulo / classe: adicione duas linhas
fonte
Eu gosto de pensar em espaços em branco da mesma maneira que em parágrafos. Você agrupa linhas que contribuem para uma ideia.
Se você está iniciando uma nova idéia ou uma nova faceta da mesma idéia, inicia um novo parágrafo - assim.
No código imperativo, agrupo tarefas que realizam uma tarefa coesa; no código declarativo, agrupo o código que descreve uma afirmação coesa de uma ideia.
Você claramente não tem problemas em fazer isso em inglês (algumas pessoas são horríveis com parágrafos); portanto, com um pouco de prática, aplicar a mesma habilidade ao código não deve ser muito difícil.
fonte
Linhas em branco são uma obrigação na minha opinião. Eu os uso para separar diferentes blocos lógicos de código. Torna o código legível. Código legível é um bom código;)
Meu código ideal seria cada bloco lógico sendo separado por uma linha em branco e um comentário no topo de cada bloco que tenha uma lógica principal.
Obviamente, se as pessoas fazem isso adicionando várias linhas em branco em todos os lugares, acho isso muito irritante :(
fonte
Eu só uso espaços em branco em uma função / método para separar declarações e código.
Se você sentir a necessidade de ter algumas linhas para separar sub-blocos de código implementando alguma lógica, eles devem estar em outra função / método privado. Cabe ao seu compilador não sobrecarregar muito.
normalmente, no código peusdo:
Se vejo espaços em branco inúteis, geralmente me encolho.
fonte
O espaço em branco é extremamente valioso.
Aqui está o negócio ... os nerds que escrevem código complicado como E = MC 2 são ótimos em mostrar suas habilidades de programação.
Agora vamos avançar seis meses, e são 2:00 da manhã e o sistema que não foi examinado em seis meses quebrou na linha E = MC 2 . Isso é quase impossível de depurar ... todo mundo está enlouquecendo.
Suponha que o código se pareça mais com isso ...
Se for 02:00 e o código estiver quebrado. Uma rápida olhada mostrará que a linha três deveria ter sido
Problema resolvido.
Bottom Line ... use espaço em branco.
fonte
Como muitos outros declararam, as linhas em branco facilitam a leitura do código. No entanto, existem alguns idiomas que impõem esse padrão. Um que eu consigo pensar em cima da minha cabeça (não muito sobre linhas em branco, mas recuo adequado) é Python.
fonte
Eu concordo, eu uso espaços em branco da mesma maneira. No entanto, se eu me encontrar usando espaço em branco para dividir um método em muitas partes, é um sinal de que talvez seja necessário refatorar esse código em vários métodos. Muitas seções lógicas em um método podem sinalizar que o método será mais difícil de testar.
fonte
Eu os uso para separar o código em unidades lógicas. Eu já vi muito poucos exemplos de código que não usavam linhas em branco, é claro que a ofuscação é excetuada.
fonte
A resposta do psicopata é a melhor, mas eu a substituiria por assumir que a próxima pessoa é uma idiota, e que ela assumirá que você é e você desejará provar que está errada.
Tão importante quanto a legibilidade é o uso de comentários. Abro cada função ou sub-rotina com um bloco de comentários, explicando em texto não criptografado, o que é, o que faz, quais são os argumentos e quais são os resultados esperados (incluindo uma lista de condições de erro). Então não há dúvida sobre o que se destina e / ou se destina a fazer. O que ele alcança pode variar, mas isso é mais adiante.
Eu acho que muitos codificadores assumem que serão eles mesmos que farão "reparos" no código ou simplesmente não se importam.
fonte
Linhas em branco são importantes. No entanto, desperdiçar uma linha em branco inteira na chave de abertura reduz a quantidade de código que você pode ver em uma tela. Deveria estar:
(Não comece a colocar a chave '{' na mesma linha que a 'for' ... isso é meshuggah).
fonte
Sim. Para legibilidade. Às vezes até coloco linhas em branco no código que não escrevi. Acho mais fácil entender o código quando eles têm um agrupamento lógico por meio de linhas em branco - como se você pudesse "ler rapidamente" através dele.
fonte
Devemos usar linhas em branco entre os bloqueios de código, como fazemos quando escrevemos uma carta.
Por exemplo, entre funções, ou dentro de uma função quando finalizamos um loop ...
As pessoas agradecerão um código limpo se tiverem que fazer manutenção nele;)
fonte
Usamos o espaço em branco recomendado pelo Microsoft StyleCop. Além da legibilidade e consistência, descobri que (junto com turmas pequenas) o código adequadamente organizado facilita muito o gerenciamento de mesclagens quando várias pessoas de uma equipe trabalham nas mesmas áreas.
Não tenho certeza se é apenas minha imaginação, mas as ferramentas diferentes parecem fazer um trabalho melhor em reconhecer onde um código equivalente inicia e termina quando se mescla quando é organizado de maneira organizada. Código bem organizado é uma alegria para mesclar. Ok, isso era mentira - mas pelo menos a dor é mantida em níveis administráveis.
fonte
Nunca uma linha em branco, não está no arquivo inteiro. Isso não quer dizer que não haja quebras no código:
Linhas em branco são para abrir seções do código para trabalhar, você tem algumas teclas de atalho no seu editor para levá-lo para a linha em branco anterior / seguinte.
fonte