Gin

an average
frontend developer

Pindahan Laravel ke Next JS

Seperti kata Aan Mansyur: Melihat API Bekerja. Intinya begini: Laravel melayani API, Next JS mengonsumsinya.

By: Gin|10/08/2022|Web Development

TL;DR: Check this website > spektakel.id

 

Beberapa bulan terakhir, tim web spektakel melakukan persekutuan dan saling berjanji untuk membenahi website yang berkutat di ranah seni budaya Indonesia tersebut. Sejak awal dibangun, web ini menggunakan PHP dan MySql, dengan Laravel sebagai frameworknya. 

 

Seiring waktu berjalan, tim web spektakel agaknya tergiur juga untuk mencicipi framework frontend modern. Beberapa dari mereka asik menekuni Svelte, atau Vue. Beberapa yang lain lebih memilih berkutat dengan React. Pilihan framework mereka berbeda-beda, tapi keluhan mereka sama: bahwa sisi depan web spektakel yang dibangun dengan laravel, dengan tambalan jQuery di sana-sini, dengan Bootstrap, membuat website ini terasa sangat jadul. Para developer yang sudah demikian dimanja oleh kenyamanan framework modern ini bersepakat, “ayo pindah ke Next.js, biar developingnya enak!”. 

 

Dipilihnya Next.js karena kami semua kebetulan pernah bekerja dengan framework tersebut.

 

Maka keinginan tersebut saya kabulkan. Lalu perkara berikutnya muncul. Kita mulai dari mana proses pindahannya?

 

Proses Pindahan: Membentuk Tim, Menyepakati Cara Bekerja

 

Hal yang pertama-tama dan yang utama adalah: menyepakati cara bekerja. Hal ini menjadi penting dalam konteks tim web spektakel. Kami semua sedang dalam posisi bekerja di kantor yang berbeda-beda. Jadwal bekerja kami pun berbeda-beda. Tapi terima kasih kepada metode Scrum, kami boleh mengambil sedikit insight dari situ. Seminim-minimnya, melihat tumpukan task di kanban board yang bergeser dari in progress menjadi done adalah mood booster jua. 

 

Saya menunjuk seorang kolega untuk mengawasi kami bekerja. Kolega tersebut yang nantinya bertugas memastikan bahwa cara bekerja ini berjalan dan tidak ada task yang diam berlama-lama dengan status backlog atau open

 

Setelah dijelaskan secara singkat dan sangat umum mengenai scrum, kami juga saling menyepakati tentang terma-terma yang akan dipakai: apa yang dimaksud dengan sprint, apa itu feature, apa itu bugfix, hotfix, kapan perlu QA, kapan sebuah task bisa dinyatakan done, dan sebagainya. Bagian yang paling kami tekankan adalah memilah-milah, yang manakah dari tumpukan task ini yang menjadi prioritas.

 

Meeting pertama berjalan cukup lancar. Kami berhasil membuat rencana. Sprint 1 akan memuat apa saja, sprint 2, sprint 3, dan seterusnya.

 

Maka diputuskanlah: tiap malam, pukul 20:30 kami perlu melakukan meeting singkat, lima belas menit. Dengan video call. Tidak banyak yang dibahas. Hanya membahas blocker, issue, dan progress.

 

Proses Pindahan: Coding

 

Dalam proses pindahan dari Laravel ke Next JS ini, saya dengan sangat terpaksa mesti mengulik-ngulik backend. Mengubah return dari tiap-tiap controller yang biasanya dilemparkan ke view, menjadi JSON. Tidak lupa pula meng-upgrade Laravel ke versi yang terbaru. Juga membuat action di git supaya ada proses CI/CD ke server hosting. Asik juga sih.

 

Selepas endpoint-endpoint siap dikonsumsi, mulailah kami berkutat dengan per-frontend-an. Seperti kata Aan Mansyur: Melihat API Bekerja.

 

Satu demi satu API dikonsumsi. Satu demi satu task bergeser, siap ditest QA, lalu dinyatakan selesai. Proses yang cukup melegakan. 

 

Dilihat dari segi waktu, proses ini cukup efisien juga. Karena kami sudah tahu betul bentuk akhirnya akan seperti apa, dan fungsi yang dibuat akan menghasilkan apa, proses coding jadi mudah. Selepas jam kantor, biasanya kami akan mulai coding untuk spektakel. Sejam atau dua jam, lalu meeting rutin lima belas menit pukul 20:30. 

 

Dengan cara kerja seperti itu, harapannya semua orang berada di laman yang sama, tidak ada saling curiga satu sama lain. Semua orang bekerja dalam kapasitas masing-masing. Ada issue atau blocker, bukan masalah. Ungkapkan saja waktu meeting. Jika estimasi waktu pengerjaan meleset, kembalikan saja ke backlog. Riset-riset lagi, coba-coba solusi lagi. Push ke development server. Jika lolos test QA, push ke staging. Ketika semua sudah siap, merge staging ke production.

 

Perlu kira-kira tiga bulan bagi kami untuk akhirnya siap rilis produksi tahap pertama. Barangkali terlihat lamban, tapi buat apa ngebut-ngebut kalau developer-nya malah jadi cape?

 

Kira-kira begitulah.

 

Monggo dicek hasil dari proses tersebut: spektakel.id. Sebuah web tentang Seni Budaya Indoensia. Expect some bugs. Lemme know if you find one. Ciao!