Exercițiul - Utilizați spațiul alb pentru a face codul mai ușor de citit

Finalizat

Imprimarea și proiectanții web înțeleg că plasarea prea multe informații într-un spațiu mic copleșește vizualizatorul. Prin urmare, utilizează strategic spațiul alb sau spațiul negativ pentru a împărți informațiile pentru a maximiza capacitatea vizualizatorului de a consuma mesajul principal al muncii lor.

Dezvoltatorii pot utiliza o strategie similară atunci când scrieți cod într-un editor. Prin utilizarea spațiului alb pentru a transmite semnificația, dezvoltatorii pot mări claritatea intenției codului lor.

Ce este spațiul alb?

Termenul "spațiu alb" se referă la spațiile individuale produse de space bar, filele produse de tab cheie și liniile noi produse de enter cheie.

Compilatorul C# ignoră spațiul alb. Pentru a înțelege cum este ignorat spațiul alb și cum să maximizați claritatea utilizând spațiul alb, parcurgeți următorul exercițiu.

Adăugați cod pentru a ilustra modul în care spațiul alb este ignorat de compilatorul C#

  1. Asigurați-vă că aveți un fișier Program.cs gol deschis în Visual Studio Code.

    Dacă este necesar, deschideți Visual Studio Code, apoi parcurgeți pașii următori pentru a pregăti un fișier Program.cs în Editor:

    1. În meniul Fișier , selectați Deschidere folder.

    2. Utilizați caseta de dialog Deschidere folder pentru a naviga la, apoi deschideți folderul CsharpProjects .

    3. În vizualizarea Visual Studio Code EXPLORER, selectați Program.cs.

    4. În meniul Selectare cod Visual Studio, selectați Selectare totală, apoi apăsați tasta Delete.

  2. Introduceți următorul cod:

    // Example 1:
    Console
    .
    WriteLine
    (
    "Hello Example 1!"
    )
    ;
    
    // Example 2:
    string firstWord="Hello";string lastWord="Example 2";Console.WriteLine(firstWord+" "+lastWord+"!");
    
  3. În meniul Fișier Visual Studio Code, selectați Salvare.

  4. În vizualizarea EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în Terminal integrat.

  5. În linia de comandă Terminal, tastați run dotnet , apoi apăsați pe Enter.

    Ar trebui să vedeți următoarea ieșire:

    Hello Example 1!
    Hello Example 2!
    
  6. Luați un minut pentru a lua în considerare ce vă spune acest rezultat despre modul în care ar trebui să utilizați spațiul alb în cod.

    Aceste două exemple de cod ilustrează două idei vitale:

    • Spațiul alb nu contează pentru compilator. Însă...
    • Spațiul alb, atunci când este utilizat corect, vă poate mări capacitatea de a citi și a înțelege codul.

    Probabil scrieți codul o dată, dar trebuie să citiți codul de mai multe ori. Prin urmare, ar trebui să se concentreze pe lizibilitatea codului pe care îl scrieți. În timp, vă veți simți când și cum să utilizați spațiul alb, cum ar fi caracterul spațiu, filele și liniile noi.

    Instrucțiuni timpurii:

    • Fiecare comandă completă (o instrucțiune) aparține unei linii separate.
    • Dacă o singură linie de cod devine lungă, o puteți despărți. Cu toate acestea, ar trebui să evitați scindarea arbitrară a unei singure instrucțiuni la mai multe linii până când aveți un motiv întemeiat să faceți acest lucru.
    • Utilizați un spațiu la stânga și la dreapta operatorului de atribuire.
  7. Înlocuiți codul existent cu următorul cod:

    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;
        }
    }
    

    Observați că acest cod nu include mult spațiu alb. Acest cod va fi utilizat pentru a ilustra o abordare pentru adăugarea de spații albe la aplicațiile dvs. Spațiile albe eficiente ar trebui să vă ușurinească înțelegerea acțiunii codului dvs.

    Notă

    Codul utilizează Random clasa pentru a contribui la dezvoltarea unui joc simulat de zaruri, unde valoarea totală din trei roll-uri este utilizată pentru a evalua un scor "câștigător". Codul acordă puncte suplimentare pentru rulare duble sau triple. Nu trebuie să înțelegeți complet acest cod pentru a vedea beneficiul spațiului alb.

  8. Luați un minut pentru a lua în considerare modul în care ați utiliza spațiul alb pentru a îmbunătăți lizibilitatea acestui cod.

    Există două caracteristici ale acestui cod de reținut:

    • Nu există niciun spațiu alb vertical în acest exemplu de cod. Cu alte cuvinte, nu există linii goale care separă liniile de cod. Totul merge împreună într-o singură listă de cod dens.
    • Blocurile de cod așa cum sunt definite de simbolurile { } de deschidere și de închidere acoladă sunt comprimate împreună, făcând limitele lor greu de distingut vizual.

    În general vorbind, pentru a îmbunătăți lizibilitatea, introduceți o linie necompletată între două, trei sau patru linii de cod care fac lucruri similare sau asociate.

    Expresia codului utilizând spații albe verticale este subiectivă. Este posibil ca doi dezvoltatori să nu fie de acord cu ceea ce este mai ușor de citit sau când să adăugați spațiu liber. Folosiți-vă cea mai bună judecată.

  9. Pentru a adăuga spațiu alb vertical care îmbunătățește lizibilitatea, actualizați codul după cum urmează:

    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;
        }
    }
    

    Prima linie de spațiu alb este utilizată pentru a separa declarația variabilei dice de liniile de cod utilizate pentru a atribui valori variabilelor de roll. Această separare vă ajută să vedeți cum dice se utilizează în cod.

    Următoarea linie de spațiu alb separă declarația variabilelor de roll din declarația de total. Gruparea declarației celor trei variabile roll este utilă în două moduri. Mai întâi, creează un grup de linii de cod care include variabile asociate. În al doilea rând, numele variabilelor sunt atât de asemănătoare, iar declarația are același model. Prin urmare, gruparea acestora atrage atenția asupra asemănărilor și ajută la expunerea diferențelor.

    În sfârșit, a treia linie de spațiu alb separă un alt grup de instrucțiuni asociate din declarațiile imbricate if . Grupul de declarații care include declarația total de și Console.WriteLine() metoda sunt legate în funcție de scop, nu de aspect. Codul dvs. se concentrează pe valoarea totală obținută de cele trei zaruri și dacă roll-ul include dublu sau triplu. Aceste linii sunt asociate, deoarece trebuie să calculați total și să raportați rezultatele roll-ului utilizatorului.

    Unii dezvoltatori pot argumenta că ar trebui să adăugați o linie goală între declarația totalde Console.WriteLine() și . Din nou, alegerea de spațiu alb este până la cea mai bună hotărâre. Ar trebui să decideți care este mai ușor de citit pentru dvs. și să utilizați acest stil în mod unitar.

    Tot ce ai mai rămas este afirmația if . Poți examina asta acum.

  10. Concentrându-vă pe liniile de cod de sub cuvântul if cheie, modificați codul după cum urmează:

    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;
        }
    }
    
  11. Observați că ați mutat acoladele de deschidere și de închidere acolade la propria linie, pentru a îmbunătăți spațierea.

    { Simbolurile } creează blocuri de cod. Multe construcții C# necesită blocuri de cod. Aceste simboluri ar trebui să fie plasate pe o linie separată, astfel încât limitele lor să fie vizibile și ușor de citit.

    În plus, este important să utilizați tab cheia pentru a alinia simbolurile bloc de cod sub cuvântul cheie de care aparțin. De exemplu, observați linia de cod care începe cu cuvântul cheie if. Sub acea linie este { simbolul. Această aliniere facilitează înțelegerea că instrucțiunea {if "aparține". În plus, ultimul } simbol se aliniase, de asemenea, cu instrucțiunea if . Combinația de aliniere și indentare vă ajută să înțelegeți unde începe și se termină blocul de cod.

    Liniile de cod din acest bloc de cod sunt indentate, indicând faptul că "aparțin" acestui bloc de cod.

    Urmați un model similar cu instrucțiunea internă if și else instrucțiunea, precum și codul din acele blocuri de cod.

Nu toată lumea este de acord cu acest stil de orientare pentru inclusiv spațiul alb. Totuși, ar trebui să luați în considerare utilizarea acestor instrucțiuni ca punct de plecare atunci când scrieți cod. În viitor, puteți fi intenționat atunci când iei o decizie de a devia de la aceste instrucțiuni.

Recapitula

Principalele decolări din acest exercițiu:

  • Utilizați spațiul alb judicios pentru a îmbunătăți lizibilitatea codului.
  • Utilizați fluxuri de linii pentru a crea linii goale pentru a separa expresiile de cod. O expresie include linii de cod similare sau care funcționează împreună.
  • Utilizați fluxuri de linii pentru a separa simbolurile de blocare a codului, astfel încât să se află pe propria linie de cod.
  • tab Utilizați tasta pentru a alinia un bloc de cod cu cuvântul cheie cu care sunt asociate.
  • Indentați codul din interiorul unui bloc de cod pentru a afișa proprietatea.