Clean code adalah konsep yang diperkenalkan oleh Robert C. Martin, juga dikenal sebagai Uncle Bob, dalam bukunya “Clean Code: A Handbook of Agile Software Craftsmanship.” Buku ini menjadi panduan utama bagi banyak pengembang perangkat lunak di seluruh dunia dalam hal menulis kode yang berkualitas tinggi. Kode bersih atau kita kenal dengan clean code menekankan pada penulisan kode yang:

  • Mudah dibaca: Kode yang ditulis dengan jelas dan terstruktur membantu pengembang lain (atau diri sendiri di masa depan) untuk memahami logika dan fungsi dari kode tersebut tanpa harus menebak-nebak.
  • Mudah dipahami: Kode yang baik harus intuitif dan self-explanatory. Pembaca harus bisa memahami maksud dan tujuan dari kode hanya dengan melihatnya.
  • Mudah dipelihara: Kode yang bersih memudahkan proses perbaikan bug, penambahan fitur baru, dan pengoptimalan performa. Kode yang sulit dipahami dan tidak terstruktur akan memakan waktu dan usaha lebih banyak untuk dipelihara.
  • Mudah dikembangkan: Kode yang ditulis dengan baik memungkinkan pengembang untuk menambah fitur baru atau memperbaiki fitur yang sudah ada dengan minimal risiko merusak bagian lain dari sistem.

Dalam dunia pengembangan perangkat lunak, waktu adalah salah satu sumber daya paling berharga. Dengan menerapkan prinsip-prinsip kode bersih, pengembang dapat menghemat waktu tidak hanya untuk diri mereka sendiri tetapi juga untuk seluruh tim pengembangan. Kode bersih juga membantu dalam kolaborasi tim, di mana setiap anggota tim dapat memahami dan bekerja pada kode yang sama dengan lebih efisien. Selain itu, kode bersih juga berdampak pada kualitas produk akhir, yang akan lebih stabil, lebih aman, dan lebih mudah diperbarui seiring waktu.

Prinsip Clean Code dalam JavaScript

1. Penamaan yang Memiliki Makna

    • Gunakan nama variabel, fungsi, dan kelas yang deskriptif dan bermakna.
    • Hindari penggunaan angka dan string ajaib; gunakan konstanta dengan nama yang bermakna.
      // Tidak Direkomendasikan
      let a = 5;
      let b = 10;
      let c = a + b;
      
      // Direkomendasikan
      const hargaDasar = 5;
      const tarifPajak = 0.1;
      const totalHarga = hargaDasar + (hargaDasar * tarifPajak);

      2. Sederhanakan Fungsi

      • Buat fungsi kecil dan fokus pada satu tugas.
      • Gunakan nama fungsi yang deskriptif.
      • Hindari daftar parameter yang panjang; gunakan objek untuk melewatkan beberapa parameter jika diperlukan.
      // Tidak Direkomendasikan
      function hitung(a, b, c, d) {
          // Perhitungan kompleks
      }
      
      // Direkomendasikan
      function hitungTotalHarga(hargaDasar, tarifPajak) {
          return hargaDasar + (hargaDasar * tarifPajak);
      }

      3. Komentar

      • Tulislah komentar yang menjelaskan mengapa sesuatu dilakukan, bukan apa yang dilakukan.
      • Hindari komentar yang tidak perlu; biarkan kode menjelaskan dirinya sendiri.
      // Tidak Direkomendasikan
      // Menghitung total harga dengan menambahkan harga dasar dan pajak
      const totalHarga = hargaDasar + (hargaDasar * tarifPajak);
      
      // Direkomendasikan
      // Terapkan pajak pada harga dasar untuk mendapatkan total harga
      const totalHarga = hargaDasar + (hargaDasar * tarifPajak);

      4. Implementasi Error Handling

      • Gunakan pengecualian dan blok try-catch untuk menangani kesalahan.
      • Hindari kegagalan secara diam-diam.
      // Tidak Direkomendasikan
      function getUser(id) {
          if (id) {
              // ambil user
          } else {
              // kembalikan null atau undefined
          }
      }
      
      // Direkomendasikan
      function getUser(id) {
          if (!id) {
              throw new Error('ID user tidak valid');
          }
          // ambil user
      }

      5. DRY (Don’t Repeat Yourself)

      • Hindari duplikasi kode dengan mengabstraksikan kode yang berulang ke dalam fungsi atau modul.
      // Tidak Direkomendasikan
      const user1 = { nama: 'Alice', umur: 25 };
      const user2 = { nama: 'Bob', umur: 30 };
      
      // Direkomendasikan
      function buatUser(nama, umur) {
          return { nama, umur };
      }
      const user1 = buatUser('Alice', 25);
      const user2 = buatUser('Bob', 30);

      6. Formatan Penulisan Kode

      • Konsisten dalam memformat penulisan kode menggunakan tools seperti Prettier atau ESLint.
      • Ikuti panduan gaya kode yang konsisten.
      // Tidak Direkomendasikan
      function sum (a,b) {return a+b;}
      
      // Direkomendasikan
      function sum(a, b) {
          return a + b;
      }

      Praktik Implementasi Clean Code dalam JavaScript

      1. Gunakan Fitur JavaScript Modern

      • Manfaatkan fitur ES6+ seperti fungsi panah, template literals, destructuring, dan modul.
        // Tidak Direkomendasikan
        var self = this;
        setTimeout(function() {
            console.log(self);
        }, 1000);
        
        // Direkomendasikan
        setTimeout(() => {
            console.log(this);
        }, 1000);

        2. Gunakan Promises dan Async/Await untuk Kode Asynchronous

        • Sederhanakan kode asynchronous menggunakan Promises dan async/await.
        // Tidak Direkomendasikan
        function fetchData(callback) {
            fetch('api/data')
                .then(response => response.json())
                .then(data => callback(data))
                .catch(error => console.error(error));
        }
        
        // Direkomendasikan
        async function fetchData() {
            try {
                const response = await fetch('api/data');
                const data = await response.json();
                return data;
            } catch (error) {
                console.error(error);
            }
        }

        3. Gunakan Destructuring untuk Mengambil Data

        • Sederhanakan kode dengan destructuring objek dan array.
        // Tidak Direkomendasikan
        function displayUser(user) {
            const nama = user.nama;
            const umur = user.umur;
            console.log(nama, umur);
        }
        
        // Direkomendasikan
        function displayUser({ nama, umur }) {
            console.log(nama, umur);
        }

        4. Gunakan Template Literals untuk Konkatenasi String

        • Buat konkatenasi string lebih mudah dibaca dengan template literals.
        // Tidak Direkomendasikan
        const sapaan = 'Hello, ' + nama + '!';
        
        // Direkomendasikan
        const sapaan = `Hello, ${nama}!`;

        Kesimpulan

        Menulis kode bersih atau clean code dalam JavaScript melibatkan mengikuti praktik terbaik yang membuat kode Anda dapat dibaca, dipelihara, dan efisien. Dengan mematuhi prinsip-prinsip seperti penamaan yang bermakna, fungsi kecil, penanganan kesalahan yang baik, dan fitur JavaScript modern, Anda dapat memastikan basis kode Anda tetap bersih dan terkelola. Menggunakan alat seperti ESLint dan Prettier juga dapat membantu mempertahankan kualitas kode secara konsisten di seluruh proyek Anda.

        Share.

        Seorang profesional teknologi yang berfokus pada pengembangan aplikasi (web & Android), DevOps, teknologi data, serta spesialisasi dalam Natural Language Processing (NLP) dan pengembangan ChatBot berbasis NLP. Memiliki keahlian mendalam di ekosistem Node.js dan aktif berkontribusi pada berbagai proyek open-source melalui library JavaScript di NPM. Rutin menulis artikel dan panduan teknis seputar pemrograman di LampungDev.com, berbagi wawasan seputar tren teknologi terbaru dan solusi pemrograman inovatif.

        Exit mobile version