Lima tahun terakhir, bikin produk disarankan pakai skema frontend-backend. Lo bikin frontend tampilan yang reaktif dan modular, dan bikin backend fokus untuk ngolah data dan manajemen server. Ini semua untuk skalabilitas biar mudah dikembangkan kalau udah gede.
Workflow bikin fitur dengan skema frontend-backend:
- Buat Skema database
- Buat API Docs
- Buat API security
- Buat Frontend layout
- Buat Frontend Component
- Buat Frontend validation form
- Buat API implementation di frontend
- Error handling di frontend
- Error handling untuk beberapa response dari API
- Buat state management biar mudah kelola form
Kalo lo kerja sama tim gede yang ngerjain Backend (API) dan frontend terpisah, cara ini bagus dan bisa kerja parallel sambil bikin fitur-fitur lain. Lo bisa pakai bahasa pemrograman terpisah-pisah, misalnya Backend pakai python/java dan frontend javascript (memang seharusnya). Lo bisa gonta-ganti, pasang backend baru sesuka lo.
Fleksibilitas ini jadi andalan berbagai projek software (khususnya website) untuk bikin aplikasi. Selain untuk website, cara ini efektif untuk mobile juga. Lo tinggal bikin satu backend, dan gunain untuk website dan aplikasi sekaligus tanpa ngubah kode backend.
Gue udah pakai cara ini di berbagai projek dan aman-aman aja sih sebenarnya. Semua proses diatas udah di luar kepala dan gue bisa jelasin berulang kali. Workflow ini udah jadi kebiasaan gue, jadi gue ga ada masalah.
Cobain MVC
MVC singkatan dari Model-View-Controller. Sebelum ada frontend-backend, MVC jadi andalan untuk bikin aplikasi sampai akhirnya projek makin gede dan tampilan sering berubah-ubah sesuai kebutuhan user. MVC sebenarnya struktur dari projek dan minim layer, lo tetap bisa pakai metode frontend-backend.
Minggu ini gue ada projek baru yang perlu cepet, ringkas, prototype dan simpel. Default choice gue adalah frontend-backend, dan gue udah mikir library apa aja yang akan dipake. Tapi sampai akhirnya gue mikir “kayanya overpower ga sih”.
Gue coba belajar ulang MVC, setup projek dari template yang udah gue pake dan bikin MVC. Ada hal yang baru gue sadari dan workflownya ternyata lebih simpel dibandingkan frontend-backend.
Proses bikin fitur baru di MVC kaya gini:
- Buat skema database
- Buat Model, kode untuk komunikasi ke database
- Buat Controller, kode untuk handle request
- Buat View, kode untuk bikin tampilan
Wait.. Just it???
Error handling gimana? tinggal bikin tag html. state management? ga perlu. layout? udah include di view. API docs? ga perlu karena langsung generate tampilian.
Ya, cuma itu aja. Hahaha. Cocok banget untuk gue yang kerja sendiri, ga ribet dan to-the-point.
Gue kaget-sekagetnya, kok ringan banget workflownya. 30 menit ngoding, ga sadar udah beres satu fitur. Hahaha. Tanpa AI agent apapun, kecuali AI untuk completion doang.
Karena itu, gue bisa dengan mudah masuk state fokus tanpa beban yang banyak. Progression terasa lebih cepat. Ga banyak layer yang harus dipikirin. Gue udah punya struktur framework buatan gue sendiri, jadi walaupun cepet tetap dalam aturan yang gue buat agar ga berantakan.
Menurut gue, MVC udah cukup banget untuk sebagian besar kasus aplikasi internal dengan ukuran tim yang kecil. Walaupun konsep MVC dipake, gue pake metode API dan frontend (vue) untuk komponen yang reaktif. Jadi development tetap lancar dan dinamis.
Karena progression yang terasa cepat, kalau ada kasus fitur salah bikin, mudah untuk pivot fitur. Gue salah bikin fitur dan harus pivot ke pendekatan baru, gue bisa bikin ulang dengan mudah. Beda dengan frontend-backend, harus ulangi proses-proses diatas jadi pivot sulit dan harus rancang dengan benar dari awal. Beban berpikir ini bikin proses development jadi lebih lama.
Backend yang gue pake express.js dan ejs untuk render template. Semua ini udah cukup banget. Gue belum cobain untuk skala besar dan request yang besar.
Progress dalam projek itu penting, bukan tentang ‘cepat’ aja tapi tentang update yang iteratif. Projek yang asal jadi malah bikin sulit dikembangkan kedepannya. Modularitas dan tanpa side-effect jadi pola berpikir yang harus dipegang programmer.
Thank you udah baca cerita gue. Subcribe email lo biar dapat cerita-cerita lainnya!
Add a comment