Boilerplate Expressjs Dengan Docker Compose dan MongoDB

Nodejs

Apa itu Boilerplate ?

Boilerplate adalah sebuah kerangka kerja aplikasi baik itu di role frontend atau backend untuk team dengan stack teknologi yang bermacam-macam contoh laravel, expressjs, flask atau fiber framework golang. Di dalam sebuah team development wajib memiliki boilerplate supaya nanti ketika proses development menjadi mudah.

Hal ini tentunya sangat membantu sekali dalam hal manajaemen code atau menerapkan clean code dan mengurangi technical debt, tentunya harus ada metriks pengukuran bahwa nilai code tersebut bagus atau tidak. Seseorang yang bertugas membuat boilerplate yaitu biasanya senior enginer masing-masing role ataupun dari cto, atau head of technology nya.

Disini saya akan berbagi source code boilerplate dengan nodejs dan framework expressjs menggunakan stack teknologi :

  1. Nodejs
  2. Expressjs
  3. Eslint
  4. Editorconfig
  5. Docker
  6. Docker Compose
  7. Mongodb
  8. Mocha Chai 
  9. Istanbull
  10. Pm2
  11. Nodemon

Dalam pembuatan boilerplate sendiri biasanya ada rule tersendiri sesuai kesepakatan antara tim dan role masing-masing. Berikut adalah gambaran struktur boilerplate expressjs yang biasa digunakan oleh tim saya.

Struktur boilerlplate expressjs

Dari gambar di atas dapat dilihat bahwa kita mempunya struktur projek dengan berbagai macam nama folder serta fungsi peran masing-masing folder tersebut.

  1. config berfungsi untuk menyimpan semua file konfigurasi entah itu konfigurasi database atau konfigurasi logger aplikasi kita
  2. controllers berfungsi untuk logic bisnis aplikasi kita
  3. helpers berfungsi untuk menyimpan file atau function yang berulang tapi sifatnya dinamis
  4. models berfungsi untuk menyimpan file-file schema/tabel kita serta untuk menyimpan file validasi di dalam sebuah schema/tabel
  5. routes berfungsi untuk menyimpan semua file routes kita, untuk mendefinisikan controller a dengan url a bisa d akses siapa aja dan path url nya seperti apa
  6. test berfungsi untuk menyimpan file-file unit testing aplikasi kita
  7. utils berfungsi untuk menyimpan file atau function yang dipakai berulang tapi sifatnya statis tidak dapat berubah

Value yang di dapat ?

Untuk value yang bisa di dapat yaitu banyak faktor sih selain membantu ada beberapa hal-hal yang menjadi nilai untuk tim kita diantaranya yaitu :

  1. Bisa dipakai berulang untuk projek selanjutnya jika stack teknologinya sama
  2. Mengurangi Technical Debt
  3. Code jadi enak dilihat dalam artian sudah tertata rapih
  4. Tim lebih disiplin dalam hal penulisan kode ataupun ketika membuat sebuah fitur
  5. Mudah untuk di maintenance
Oke mungkin segitu yang bisa saya bagikan di artikel kali ini semoga bermanfaat dan membantu teman-teman dalam hal developmen aplikasi dengan tim.

Source code disini

Posting Komentar

0 Komentar