Akademi Manajemen Informatika

Halo Bakat Digital! Selamat datang kembali di blog Sandi Dharma. Gimana kabarnya hari ini? Semoga Tetap semangat buat belajar ya!

Ketika mengerjakan project aplikasi, Tak jarang kita akan menemui masa di mana kita akan sedikit kebingungan Demi menentukan struktur folder Demi project kita. Apalagi kita mengerjakan semuanya dari Kosong (tanpa framework) atau menggunakan framework yang sangat menyediakan kebebasan seperti Express JS. Tentu hal ini akan Membangun kita merasa bingung Demi menentukan struktur foldernya, khususnya bagi kita yang baru belajar pemrogramman.

Struktur Folder Project

Project aplikasi yang kita kerjakan pastinya Tak hanya terdiri dari satu buah file saja tetapi juga Dapat puluhan hingga ratusan lebih file yang Mempunyai fungsinya masing-masing. Menentukan struktur folder sangat Krusial dalam mengerjakan project aplikasi. Kalau kita salah, maka akan berujung menghabiskan waktu Demi memindah-mindah file Demi meletakkannya di folder yang Pas, apalagi kalau kita harus merubah import path atau namespace di dalam kode kita. Terdapat beberapa struktur folder yang Dapat kita ikuti Demi merapikan project kita. Di postingan ini kita akan bahas dua struktur folder Merukapan Folder per Domain dan Folder per Layer.

READ  Definisi, Misalnya & Langkah Membuatnya

Folder per Domain

Sebuah aplikasi biasanya Dapat terdiri dari beberapa domain. Domain yang dimaksud bukanlah domain name seperti example.com atau example.org ya. Domain disini mengacu pada area subjek di mana bagian dari aplikasi tersebut diterapkan. Secara sederhana domain ini Normal disebut sebagai fitur. Contohnya pada sebuah aplikasi e-commerce terdapat fitur pemesanan, keranjang belanja, pengirimkan, pembayaran, dan lain-lain. Begitu menggunakan struktur folder per domain, maka file-file project akan dipisahkan berdasarkan domain-domain tersebut. Contohnya sebagai berikut:

Folder per Domain

Di dalam domain folder tersebut akan disimpan layer-layer file seperti controller, service, middleware, dan lain-lain.

Struktur folder per domain jarang digunakan. Struktur folder ini biasanya digunakan pada proyek yang sangat besar dan monolith (Seluruh fungsional dalam satu aplikasi). Misalnya framework yang menggunakan struktur folder seperti ini adalah Django.

READ  10 Manfaat, Langkah Kerja, Fitur, dan 6 Aplikasi Terbaik

Folder per Layer

Apabila pada struktur folder per domain, tiap-tiap domain Mempunyai folder masing-masing dan kemudian layer aplikasi berada di dalamnya. Sedangkan Apabila menggunakan struktur folder per layer, maka layer-layer tersebut lah yang akan menjadi folder di project kita. Sehingga, layer Demi tiap domain aplikasi berada di tempat yang terpisah-pisah. Berikut ini adalah Misalnya struktur folder per layer:

Folder per Layer

Struktur folder per layer adalah struktur folder yang lumayan banyak digunakan. Misalnya framework yang menggunakan struktur folder seperti ini adalah Laravel beberapa framework MVC lain seperti CodeIgniter.

Struktur folder seperi ini sangat mudah dan nyaman digunakan pada project yang sederhana. Kalau project sudah terlalu besar dan Mempunyai banyak file, mungkin Anda akan sedikit kesulitan Demi berpindah-pindah antar layer aplikasi Begitu mengerjakan project.

READ  #11: Operasi Komparasi - Belajar Golang Dari Dasar

Menentukan Struktur Folder yang Pas

Demi menentukan struktur folder yang Pas sebenarnya banyak Elemen yang mempengaruhinya. Berikut ini beberapa tips yang Dapat Anda terapkan ketika menentukan struktur folder Demi project yang Anda kerjakan.

  1. Apabila menggunakan framework dan framework tersebut sudah Mempunyai struktur folder bawaannya, maka akan lebih mudah Apabila Anda mengikuti struktur folder tersebut.
  2. Pertimbangkan seberapa kompleks project yang Anda kerjakan. Struktur folder Demi project aplikasi webhook yang hanya menangani satu buah event tentu berbeda dengan project aplikasi REST API.
  3. Gunakan folder per domain Demi aplikasi monolith yang kompleks. Gunakan folder per layer Demi aplikasi microservice.
  4. Ikuti best practice berdasarkan software design architecture.