10/15/2025 Rizki Mufid

Panduan Pengembangan Proyek BCAF (Litecore Microservice)

Dokumen ini berfungsi sebagai panduan standar dan referensi cepat bagi seluruh pengembang yang bekerja pada ekosistem Litecore BCAF, yang mengadopsi struktur microservice dan kerangka kerja Angular dengan NgRx sebagai State Management.

#nextjs#notion#vercel
Cover Image

I. Standar Git dan CI/CD (Continous Integration/Continous Deployment)

Pola pesan commit yang konsisten sangat penting untuk otomatisasi changelog, versioning, dan pemicu alur kerja CI/CD (terutama Gitlab CI/CD).

1.1. Aturan Prefix Commit Utama (CI/CD Trigger)

Setiap commit wajib dimulai dengan prefix yang sesuai.

PrefixDeskripsi PemicuKapan Digunakan
[RELEASE]Pemicu standar untuk build dan deployment ke lingkungan staging/development.Perubahan kode umum (fitur, perbaikan bug, refactor).
[CLEAN]Pemicu tambahan untuk membersihkan cache atau artefact sebelum build.Disarankan jika ada masalah caching saat build sebelumnya.
[LIBRARY]Pemicu wajib ketika ada perubahan pada level dependensi atau library inti BCAF.Perubahan pada package.json, penambahan/update modul Angular/NPM.
[HOTFIX]Digunakan untuk perbaikan bug kritis yang akan di-deploy segera ke produksi (hanya untuk branch main/master).Hanya dengan persetujuan Tech Lead.

1.2. Contoh Format Commit Message

Gunakan format ini untuk memastikan CI/CD berjalan dengan optimal dan changelog terisi dengan baik.

SkenarioFormat CommitCatatan
Perubahan Library & Dependensi Baru[RELEASE][CLEAN][LIBRARY] Add new library 'moment-js' for date handlingPemicu Rebuild Stage Keseluruhan.
Perubahan pada Library Inti BCAF[RELEASE][LIBRARY] Fix styling in @bcaf/bcaf-theme button componentPerubahan di @bcaf/bcaf-core, @bcaf/bcaf-theme, dsb.
Perubahan Fitur Biasa[RELEASE] Implement validation for user registration formPerubahan di komponen aplikasi selain dari folder library inti.

PERINGATAN: Kegagalan menggunakan prefix yang benar dapat menyebabkan build gagal atau changelog tidak ter-generate.

II. Struktur Framework dan Komponen Inti

Litecore BCAF memiliki struktur modular. Folder inti yang wajib diketahui oleh pengembang:

2.1. Folder Library Inti BCAF (Framework Litecore)

Folder-folder ini membentuk kerangka kerja (framework) dasar dan harus dipertimbangkan sebagai Library.

  • @bcaf/bcaf-auth : Modul autentikasi dan otorisasi.
  • @bcaf/bcaf-core : Modul utilitas inti, services, dan helper global.
  • @bcaf/bcaf-shared : Komponen, pipe, atau directive yang digunakan oleh banyak modul (umum).
  • @bcaf/bcaf-theme : Styling, SASS/CSS, dan variabel tema (termasuk Dark Mode).
  • @bcaf/ebcaf-extra : Modul ekstensi atau integrasi pihak ketiga spesifik.

CATATAN: Semua folder di luar daftar di atas dianggap sebagai modul aplikasi (fitur) dan bukan bagian dari framework inti.

III. Manajemen State (NgRx)

Proyek ini mengimplementasikan NgRx (Redux Pattern) untuk manajemen state yang prediktif dan debuggable.

3.1. Alur Kerja NgRx (Redux Flow)

Pahami alur kerja ini; setiap perubahan state harus melalui siklus ini.

3.2. Boilerplate NgRx dan File Wajib

Salah satu tantangan NgRx adalah boilerplate-nya. Untuk satu fitur, minimal dibutuhkan 4 file.

  • [feature-name].actions.ts : Mendefinisikan semua event yang mungkin terjadi.
  • [feature-name].reducers.ts : Mendefinisikan bagaimana state berubah berdasarkan action.
  • [feature-name].effects.ts : Menangani side effects (panggilan API, I/O, dll.).
  • [feature-name].selectors.ts : Cara yang aman dan memoized untuk mengambil data dari store.

Konsep onReloadNextState: Fungsi onReloadNextState dalam Reducer adalah helper untuk menandai bahwa data pada state perlu di-refresh (refetching) setelah side-effect (misalnya: POST, PUT, DELETE) berhasil dilakukan.

3.3. Alat Debugging State

Wajib instal Redux DevTools di browser Anda untuk memudahkan debugging alur state.

Link Instalasi Chrome Redux DevTools

IV. Standar Kualitas dan Performa Kode

Kode yang bersih, efisien, dan memiliki performa baik adalah prioritas utama.

4.1. Interceptor dan Penanganan Response API

Interceptor Angular sangat berguna untuk memproses respons dari API secara global.

Tugas InterceptorContoh Implementasi
Loading StateMengaktifkan global loading indicator saat request dimulai dan menonaktifkannya saat selesai.
Penanganan ErrorMenampilkan notifikasi error (Toast/Snackbar) untuk kode status 4xx atau 5xx.
Refresh TokenMelakukan silent refresh token saat mendeteksi status 401 (Unauthorized).

4.2. Pengujian Performa (Lighthouse)

Setiap fitur atau komponen baru harus diuji performanya.

Ketentuan Minimum Lighthouse: Untuk pengujian, selalu gunakan simulasi Desktop dengan throttling standar. Target Skor:

  • Performance: Minimal 90%
  • Best Practices: Minimal 95%
  • SEO: Minimal 95%

4.3. Kompatibilitas Perangkat dan Bahasa

  • Responsive Design: Pastikan semua komponen diuji pada mode Desktop dan Mobile (menggunakan DevTools Device Compatibility Mode).
  • Dark Mode: Uji tampilan Dark Mode untuk memastikan tidak ada elemen yang hilang atau tidak terbaca.
  • Internationalization (i18n): Pastikan setiap file terjemahan (.json) didaftarkan dengan benar di angular.json agar proses translation berjalan:
    • Path: bcaf-app/src/assets/i18n (untuk aplikasi)
    • Path: bcaf-collateral/src/i18n/collateral (untuk library collateral)

V. Workflow Finalisasi Task

Setelah semua pengembangan selesai dan pengujian lokal (unit test, integrasi, end-to-end ringan) berhasil.

Did you enjoy this?

0
Likes