Latihan - Gunakan spasi kosong untuk membuat kode Anda lebih mudah dibaca

Selesai

Desainer cetak dan web memahami bahwa menempatkan terlalu banyak informasi di ruang kecil membuat penonton kewalahan. Jadi, mereka menggunakan spasi kosong atau ruang negatif secara strategis untuk memecah informasi guna memaksimalkan kemampuan pembaca untuk menangkap pesan utama pekerjaan mereka.

Pengembang dapat menggunakan strategi serupa saat menulis kode di editor. Dengan menggunakan ruang kosong untuk menyampaikan makna, pengembang dapat meningkatkan kejelasan niat kode mereka.

Apa itu spasi kosong?

Istilah "spasi kosong" mengacu pada spasi individual yang dihasilkan oleh space bar, tab yang dihasilkan oleh tombol tab, dan baris baru yang dihasilkan oleh tombol enter.

Kompiler C# mengabaikan spasi kosong. Untuk memahami bagaimana spasi kosong diabaikan, dan cara memaksimalkan kejelasan menggunakan spasi kosong, lakukan latihan berikut.

Tambahkan kode untuk mengilustrasikan bagaimana spasi kosong diabaikan oleh pengkompilasi C#

  1. Pastikan Anda memiliki file Program.cs kosong yang terbuka di Visual Studio Code.

    Jika perlu, buka Visual Studio Code, lalu selesaikan langkah-langkah berikut untuk menyiapkan file Program.cs di Editor:

    1. Pada menu File, pilih Buka Folder.

    2. Gunakan dialog Buka Folder untuk menavigasi, lalu buka, folder CsharpProjects .

    3. Di tampilan Visual Studio Code EXPLORER, pilih Program.cs.

    4. Pada menu Pilihan Visual Studio Code, pilih Pilih Semua, lalu tekan tombol Hapus.

  2. Masukkan kode berikut:

    // Example 1:
    Console
    .
    WriteLine
    (
    "Hello Example 1!"
    )
    ;
    
    // Example 2:
    string firstWord="Hello";string lastWord="Example 2";Console.WriteLine(firstWord+" "+lastWord+"!");
    
  3. Pada menu File Visual Studio Code, pilih Simpan.

  4. Dalam tampilan EXPLORER, untuk membuka Terminal di lokasi folder TestProject Anda, klik kanan TestProject, lalu pilih Buka di Terminal Terintegrasi.

  5. Pada prompt perintah Terminal, ketik dotnet run lalu tekan Enter.

    Anda akan menemukan output berikut:

    Hello Example 1!
    Hello Example 2!
    
  6. Luangkan waktu semenit untuk mempertimbangkan apa hasil ini memberi tahu Anda tentang bagaimana Anda harus menggunakan spasi kosong dalam kode Anda.

    Dua contoh kode ini menggambarkan dua ide penting:

    • Spasi kosong bukan masalah bagi kompiler. Namun ...
    • Spasi kosong, saat digunakan dengan benar, dapat meningkatkan kemampuan Anda untuk membaca dan memahami kode.

    Anda mungkin menulis kode Sekali, tetapi perlu membaca kode beberapa kali. Oleh karena itu, Anda harus fokus pada keterbacaan kode yang Anda tulis. Seiring waktu, Anda akan merasakan kapan dan cara menggunakan spasi kosong, seperti karakter spasi, tab, dan baris baru.

    Panduan awal:

    • Setiap perintah lengkap (pernyataan) berada di baris terpisah.
    • Jika satu baris kode menjadi panjang, Anda dapat memecahnya. Namun, Anda harus menghindari pemisahan pernyataan tunggal secara acak menjadi beberapa baris sampai Anda memiliki alasan yang baik untuk melakukannya.
    • Gunakan spasi di sebelah kiri dan kanan operator penugasan.
  7. Ganti kode yang ada dengan kode berikut:

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

    Perhatikan bahwa kode ini tidak menyertakan banyak spasi kosong. Kode ini akan digunakan untuk mengilustrasikan pendekatan untuk menambahkan spasi kosong ke aplikasi Anda. Spasi kosong yang efektif akan mempermudah pemahaman apa yang dilakukan kode Anda.

    Catatan

    Kode ini menggunakan Random kelas untuk membantu mengembangkan game dadu yang disimulasikan, di mana nilai total dari tiga gulungan digunakan untuk mengevaluasi skor "menang". Kode ini memberikan poin tambahan untuk rolling double atau tiga kali lipat. Anda tidak perlu sepenuhnya memahami kode ini untuk melihat manfaat termasuk spasi kosong.

  8. Luangkan waktu satu menit untuk mempertimbangkan bagaimana Anda akan menggunakan spasi kosong untuk meningkatkan keterbacaan kode ini.

    Ada dua fitur kode ini yang perlu diperhatikan:

    • Tidak ada spasi kosong vertikal dalam contoh kode ini. Dengan kata lain, tidak ada baris kosong yang memisahkan baris kode. Semuanya berjalan bersama-sama menjadi satu daftar kode padat.
    • Blok kode seperti yang didefinisikan oleh simbol kurung kurawal pembuka dan penutupan { } dikompresi bersama-sama, membuat batasnya sulit untuk dibedakan secara visual.

    Secara umum, untuk meningkatkan keterbacaan, Anda memperkenalkan baris kosong antara dua, tiga, atau empat baris kode yang melakukan hal serupa atau terkait.

    Pembuatan frasa kode menggunakan spasi kosong vertikal bersifat subjektif. Ada kemungkinan dua pengembang tidak akan menyetujui apa yang paling dapat dibaca, atau kapan harus menambahkan spasi kosong. Gunakan penilaian terbaik Anda.

  9. Untuk menambahkan spasi putih vertikal yang meningkatkan keterbacaan, perbarui kode Anda sebagai berikut:

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

    Baris spasi putih pertama Anda digunakan untuk memisahkan deklarasi dice variabel dari baris kode yang digunakan untuk menetapkan nilai ke variabel roll Anda. Pemisahan ini memudahkan untuk melihat bagaimana dice digunakan dalam kode Anda.

    Baris spasi putih Anda berikutnya memisahkan deklarasi variabel roll Anda dari deklarasi total. Mengelompokkan deklarasi tiga variabel roll Anda sangat membantu dengan dua cara. Pertama, ini membuat sekelompok baris kode yang mencakup variabel terkait. Kedua, nama variabel sangat mirip dan deklarasi mengikuti pola yang sama. Jadi, mengelompokkannya bersama-sama menarik perhatian Anda pada kesamaan dan membantu mengekspos perbedaan.

    Terakhir, baris ketiga spasi putih Anda memisahkan grup pernyataan terkait lainnya dari pernyataan berlapis if Anda. Grup pernyataan yang mencakup deklarasi total dan Console.WriteLine() metode terkait dengan tujuan daripada penampilan. Kode Anda difokuskan pada nilai total yang dicapai oleh tiga dadu dan apakah roll disertakan ganda atau tiga kali lipat. Baris ini terkait karena Anda perlu menghitung total dan melaporkan hasil roll kepada pengguna.

    Beberapa pengembang mungkin berpendapat bahwa Anda harus menambahkan baris kosong di antara deklarasi total dan Console.WriteLine(). Sekali lagi, pilihan spasi kosong terserah penilaian terbaik Anda. Anda harus memutuskan mana yang lebih mudah dibaca untuk Anda dan menggunakan gaya tersebut secara konsisten.

    Yang tersisa hanyalah if pernyataan. Kau bisa memeriksanya sekarang.

  10. Berfokus pada baris kode di bawah if kata kunci, ubah kode Anda sebagai berikut:

    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. Perhatikan bahwa Anda telah memindahkan kurung kurawal pembuka dan penutupan ke garisnya sendiri untuk meningkatkan penspasian.

    Simbol { dan } membuat blok kode. Banyak konstruksi C# memerlukan blok kode. Simbol ini harus ditempatkan pada baris terpisah sehingga batasnya terlihat jelas dan dapat dibaca.

    Selain itu, penting untuk menggunakan tombol tab untuk menggaris simbol blok kode di bawah kata kunci tempatnya berada. Misalnya, perhatikan baris kode yang dimulai dengan kata kunci if. Di bawah garis itu adalah simbol {. Penyelarasan ini memudahkan untuk memahami bahwa { pernyataan "milik" if . Selain itu, simbol terakhir } berbaris dengan if pernyataan juga. Kombinasi perataan dan indentasi memudahkan untuk memahami di mana blok kode dimulai dan berakhir.

    Baris kode di dalam blok kode ini diinden, menunjukkan bahwa baris kode tersebut "milik" blok kode ini.

    Anda mengikuti pola serupa dengan pernyataan dan if pernyataan dalamelse, dan kode di dalam blok kode tersebut.

Tidak semua orang setuju dengan panduan gaya ini untuk menyertakan spasi kosong. Namun, Anda harus mempertimbangkan untuk menggunakan panduan ini sebagai titik awal saat menulis kode. Di masa depan, Anda dapat dengan sengaja ketika membuat keputusan untuk menyimpang dari panduan ini.

Rekap

Poin utama dari latihan ini:

  • Gunakan spasi kosong dengan bijaksana untuk meningkatkan keterbacaan kode.
  • Gunakan umpan baris untuk membuat baris kosong guna memisahkan frasa kode. Frasa menyertakan baris kode yang serupa, atau bekerja sama.
  • Gunakan umpan baris untuk memisahkan simbol blok kode sehingga berada di baris kode mereka sendiri.
  • Gunakan tombol tab untuk mensejajarkan blok kode dengan kata kunci yang terkait dengannya.
  • Kode inden di dalam blok kode untuk menunjukkan kepemilikan.