Exercício - Use espaço em branco para facilitar a leitura do código
Os designers de impressão e web entendem que colocar muita informação em um espaço pequeno sobrecarrega o espectador. Portanto, utilizam estrategicamente o espaço em branco (ou espaço negativo) para dividir as informações de forma a maximizarem a capacidade do visualizador ao consumir a mensagem principal do trabalho.
Os programadores podem utilizar uma estratégia semelhante ao escrever código num editor. Com o espaço em branco para transmitir o significado, os programadores podem aumentar a clareza da intenção do código.
O que é o espaço em branco?
O termo “espaço em branco” refere-se a espaços individuais produzidos pela space bar, tabulações produzidas pela tecla de tab e novas linhas produzidas pela tecla enter.
O compilador do C# ignora o espaço em branco. Para entender como o espaço em branco é ignorado e como maximizar a clareza usando o espaço em branco, trabalhe no exercício a seguir.
Adicione código para ilustrar como o espaço em branco é ignorado pelo compilador C#
Verifique se você tem um arquivo de Program.cs vazio aberto no Visual Studio Code.
Se necessário, abra o Visual Studio Code e conclua as seguintes etapas para preparar um arquivo de Program.cs no Editor:
No menu Arquivo, selecione Abrir pasta.
Use a caixa de diálogo Abrir pasta para navegar até a pasta CsharpProjects e abri-la.
No modo de exibição Visual Studio Code EXPLORER, selecione Program.cs.
No menu Seleção de código do Visual Studio, selecione Selecionar tudo e pressione a tecla Delete.
Introduza o seguinte código:
// Example 1: Console . WriteLine ( "Hello Example 1!" ) ; // Example 2: string firstWord="Hello";string lastWord="Example 2";Console.WriteLine(firstWord+" "+lastWord+"!");No menu Arquivo de código do Visual Studio, selecione Salvar.
Na vista EXPLORER, para abrir um Terminal na localização da pasta TestProject, clique com o botão direito do rato em TestProject e, em seguida, selecione Abrir no Terminal Integrado.
No prompt de comando do Terminal, digite dotnet run e pressione Enter.
Deverá ver o seguinte resultado:
Hello Example 1! Hello Example 2!Reserve um minuto para considerar o que esse resultado diz sobre como você deve usar o espaço em branco em seu código.
Estes dois exemplos de código ilustram duas ideias vitais:
- O compilador não considera o espaço em branco. No entanto...
- O espaço em branco, quando utilizado corretamente, pode aumentar a capacidade de leitura e de compreensão do código.
Você provavelmente escreve seu código uma vez, mas precisa ler o código várias vezes. Portanto, você deve se concentrar na legibilidade do código que você escreve. Com o tempo, você terá uma ideia de quando e como usar o espaço em branco, como o caractere de espaço, guias e novas linhas.
Diretrizes iniciais:
- Cada comando completo (uma instrução) pertence a uma linha separada.
- Se uma única linha de código se tornar longa, poderá dividi-la. No entanto, deve evitar a divisão arbitrária de uma única instrução em várias linhas até ter um bom motivo para o fazer.
- Utilize um espaço à esquerda e à direita do operador de atribuição.
Substitua o código existente pelo seguinte código:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } else { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } }Observe que esse código não inclui muito espaço em branco. Esse código será usado para ilustrar uma abordagem para adicionar espaço em branco aos seus aplicativos. Um espaço em branco eficaz deve facilitar a compreensão do que seu código está fazendo.
Nota
O código usa a
Randomclasse para ajudar a desenvolver um jogo de dados simulado, onde o valor total de três rolos é usado para avaliar uma pontuação "vencedora". O código concede pontos extras para rolar duplas ou triplas. Você não precisa entender completamente esse código para ver o benefício de incluir espaço em branco.Reserve um minuto para considerar como você usaria o espaço em branco para melhorar a legibilidade desse código.
Há duas funcionalidades deste código a ter em conta:
- Não há espaço em branco vertical neste exemplo de código. Por outras palavras, não há linhas vazias a separar as linhas de código. É tudo executado numa listagem de código densa.
- Os blocos de código, conforme definidos pelos símbolos de chaveta de abertura e fecho
{ }, são comprimidos juntos, o que os torna os limites difíceis de distinguir visualmente.
De um modo geral, para melhorar a legibilidade, você introduz uma linha em branco entre duas, três ou quatro linhas de código que fazem coisas semelhantes ou relacionadas.
A formulação do código com o espaço em branco vertical é subjetiva. É possível que dois desenvolvedores não concordem sobre o que é mais legível ou quando adicionar espaço em branco. Seja sensato.
Para adicionar espaço em branco vertical que melhore a legibilidade, atualize o código da seguinte maneira:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } else { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } }Sua primeira linha de espaço em branco é usada para separar a
dicedeclaração da variável das linhas de código usadas para atribuir valores às variáveis de rolo. Essa separação torna mais fácil ver comodiceestá sendo usado em seu código.Sua próxima linha de espaço em branco separa a declaração de suas variáveis de rolo da declaração de
total. Agrupar a declaração de suas três variáveis de rolo é útil de duas maneiras. Primeiro, ele cria um grupo de linhas de código que inclui variáveis relacionadas. Em segundo lugar, os nomes das variáveis são tão semelhantes e a declaração segue o mesmo padrão. Assim, agrupá-los chama a atenção para as semelhanças e ajuda a expor as diferenças.Finalmente, sua terceira linha de espaço em branco separa outro grupo de instruções relacionadas de suas instruções aninhadas
if. O grupo de declarações que inclui a declaração detotale oConsole.WriteLine()método é relacionado por propósito e não por aparência. Seu código é focado no valor total alcançado pelos três dados e se o rolo incluiu duplos ou triplos. Essas linhas estão relacionadas porque você precisa calculartotale relatar os resultados do rolo para o usuário.Alguns desenvolvedores podem argumentar que você deve adicionar uma linha vazia entre a declaração de
totale oConsole.WriteLine(). Mais uma vez, a escolha do espaço em branco depende do seu melhor julgamento. Você deve decidir qual é mais legível para você e usar esse estilo de forma consistente.Tudo o que lhe resta é a
ifdeclaração. Você pode examinar isso agora.Concentrando-se nas linhas de código abaixo da
ifpalavra-chave, modifique seu código da seguinte maneira:Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } else { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } }Observe que você moveu as chaves de abertura e fechamento para sua própria linha para melhorar o espaçamento.
Os símbolos
{e}criam blocos de código. Muitas construções em C# exigem blocos de código. Estes símbolos devem ser colocados numa linha separada para que os limites sejam claramente visíveis e legíveis.Além disso, é importante utilizar a tecla de
tabpara alinhar os símbolos dos blocos de código sob a palavra-chave à qual pertencem. Por exemplo, observe a linha de código que começa com a palavra-chaveif. Abaixo dessa linha está o símbolo{, Esse alinhamento facilita a compreensão de que o{"pertence" àifdeclaração. Além disso, o último}símbolo também se alinha com aifdeclaração. A combinação de alinhamento e recuo facilita a compreensão de onde o bloco de código começa e termina.As linhas de código dentro deste bloco de código são recuadas, indicando que elas "pertencem" a esse bloco de código.
Você segue um padrão semelhante com a instrução interna e
ifa instrução eelseo código dentro desses blocos de código.
Nem todos concordam com esta orientação de estilo para incluir espaços em branco. No entanto, você deve considerar o uso desta orientação como um ponto de partida ao escrever código. No futuro, você pode ser proposital ao tomar uma decisão de se desviar dessa orientação.
Recapitulação
As principais conclusões deste exercício:
- Utilize o espaço em branco criteriosamente para ajudar a melhorar a legibilidade do código.
- Utilize avanços de linha para criar linhas vazias para separar formulações de código. Uma frase inclui linhas de código que são semelhantes ou trabalham juntas.
- Utilize avanços de linha para separar símbolos de blocos de código para que estejam na sua própria linha de código.
- Utilize a tecla de
tabpara alinhar um bloco de código com a palavra-chave com a qual está associado. - Avance o código dentro de um bloco de código para mostrar a propriedade.