Arsitektur Bersih dalam Backend Golang

Aug 5, 2024

Catatan Kuliah: Clean Architecture di Golang

Pendahuluan

  • Pembukaan oleh pengajar, mengingatkan untuk tetap semangat dan sehat.
  • Fokus kuliah kali ini adalah Clean Architecture dalam pembuatan backend services menggunakan Golang.
  • Sudah ada contoh project sebelumnya yang menerapkan clean architecture dan dapat di-clone.

Apa itu Clean Architecture?

  • Definisi: Prinsip desain perangkat lunak yang mempermudah pemahaman, perubahan, pengujian, dan pemeliharaan sistem.
  • Tujuan: Memisahkan kode menjadi layer-layer sehingga perubahan di satu bagian tidak mempengaruhi bagian lain.
  • Karakteristik:
    • Mudah dipahami
    • Mudah diubah
    • Mudah diuji
    • Mudah dipelihara

Komponen Utama Clean Architecture

  1. Entities

    • Berfungsi sebagai objek atau struktur data yang umum digunakan di seluruh sistem.
    • Menampung data dan logika yang berkaitan.
  2. Use Cases

    • Juga dikenal sebagai business layer.
    • Menangani logika bisnis spesifik sistem.
  3. Repositories

    • Komponen yang mengelola detail low-level seperti database dan integrasi dengan pihak ketiga.
  4. Interfaces

    • Juga disebut transport layer.
    • Menangani jalur keluar masuk data dan format yang sesuai untuk digunakan oleh use case.

Implementasi Clean Architecture

  • Pemisahan layer berdasarkan fungsi masing-masing.
  • Contoh struktur folder dalam project:
    • src/
      • app/
      • infra/
      • interface/

Contoh Kode

  • Kode utama terletak di src, dengan entitas dan logika bisnis terpisah.
  • Penggunaan interface untuk memudahkan pengujian unit.

Testing dan Mocking

  • Penjelasan tentang pentingnya testabilitas dalam clean architecture.
  • Penggunaan mocking untuk memudahkan testing, terutama ketika menggunakan repositori dan akses data.

Manfaat Clean Architecture

  1. Testabilitas: Mempermudah penulisan unit testing karena setiap layer independen.
  2. Maintainability: Pemeliharaan dan pengembangan yang lebih mudah.
  3. Independensi: Aplikasi tidak tergantung pada teknologi eksternal, memungkinkan fleksibilitas dalam pemilihan teknologi.

Kesimpulan

  • Clean architecture adalah pendekatan untuk membuat struktur kode yang rapi dan terorganisir.
  • Prinsip dasar yang harus diingat: Keep It Simple dan Don't Repeat Yourself.
  • Pentingnya penerapan prinsip SOLID untuk meningkatkan kualitas desain.

Penutup

  • Pengajar mengajak untuk bertanya jika ada yang tidak jelas dan mengingatkan untuk mendukung channel dengan subscribe dan share.