Hijrah Frontend (2): Port Tipis dan Warisan yang Ikut Naik



Pindahan di episode pertama akhirnya selesai, dan hari penyerahan barang tiba. Manifestnya pendek dan membosankan, persis seperti manifest pindahan terbaik: tujuh puluh enam kotak masuk, tujuh puluh enam kotak keluar. Nol halaman tertinggal.

Itu bukan kebetulan. Itu keputusan. Dan episode ini cerita tentang keputusan itu: apa yang sengaja kita naikkan, apa yang ternyata ikut naik tanpa undangan, dan satu rencana besar yang memilih untuk tidak jadi hehe~

Kenapa Nol Halaman Ditinggalkan #

Kalau Anda pernah pindah rumah, Anda tahu momen paling membebaskan: saat memutuskan “yang ini buang aja”. Migrasi frontend punya momen yang sama, dengan godaan yang lebih besar, karena membuang halaman terasa seperti membereskan produk sekalian.

Amit-amit lagi. Memutuskan hidup-mati sebuah halaman saat pindah rumah itu dua keputusan digabung jadi satu: pindah, dan merombak cakupan produk. Seri sebelah sudah membayar biaya pembelajaran untuk kombinasi itu. Jadi aturannya sederhana: tujuh puluh enam masuk, tujuh puluh enam keluar, halaman demi halaman, satu per satu, tanpa skrip pembuangan.

Hasilnya membosankan, tapi terverifikasi: repo baru menghitung 76 halaman, repo lama juga 76, dan daftar foldernya cocok satu per satu. Bahkan halaman-halaman yang namanya menimbulkan tanda tanya, semacam demo dan docs dan jalur-jalur khusus, ikut naik juga. Bukan karena penting; tapi karena membuangnya bukan keputusan untuk fase ini hahaha.

Isi Kotak yang Dibuka Pertama #

Dua kotak pertama yang kami buka: dua library UI yang selama ini hidup berdampingan. Di rumah baru, hitungannya jujur dan terukur: satu library dipakai di 101 file, library satunya tinggal bertahan di 13 file.

Angka itu bercerita sendiri: ada era dominasi dan era sisipan, berdampingan dalam satu aplikasi yang sama, tanpa perang terbuka.1 Keduanya tetap harus dibawa dulu, karena membuang library berarti menyentuh semua file-nya, dan menyentuh semua file saat pindah rumah itu pelanggaran aturan episode empat.

Satu wire lagi yang ikut naik: sambungan state management warisan. Di app router baru dia cuma tinggal satu titik sambungan, tapi satu titik yang menyala itu tetap jantung bagi halaman-halaman yang memakainya. Dipotong sekarang? Bukan wewenang momen ini juga hahaha.

Yang Sadar Dibawa, yang Terekam #

Selain kotak-kotak besar, ada warisan kecil yang sengaja kami catat saat menaikkannya:

Catatannya satu: warisan yang dibawa sadar itu beda nasibnya dengan warisan yang lolos. Yang sadar dibawa punya catatan, punya alasan, dan punya giliran untuk dibersihkan kelak. Yang lolos malah sering beranak pinak.

Rencana Besar yang Tidak Jadi #

Supaya adil dengan tradisi jujur di seri sebelah: ada satu rencana besar yang memilih mundur sebelum dimulai, yaitu mengganti state management warisan dengan yang baru.

Batalnya bukan karena gagal; prioritasnya bergeser ke hal yang lebih terasa dampaknya bagi user. Dan saya tenang dengan itu: rencana yang dibatalkan sebelum menelan sumber daya itu bukan kegagalan, itu kontrol kualitas atas rencana sendiri hehe~

Pelajaran #

  1. Pindahkan dulu 1:1, putuskan skope belakangan. Membuang halaman saat pindah itu dua keputusan dalam satu tarikan napas; pisahkan.
  2. Hitung isi kotak dengan angka. 76 ke 76, 101 ke 13, angka-angka itu yang membuat percakapan soal warisan tidak berubah jadi perang selera.
  3. Dua library berdampingan itu dua era, bukan dua pilihan. Jangan hakimi yang lama; dia menang lebih banyak battle daripada yang baru.
  4. Rencana yang dibatalkan sebelum menelan biaya adalah menang. Catat dia di daftar yang tidak jadi, dengan kepala tegak.

Episode berikutnya kita buka kotak paling berduri: type chaos, di mana satu field yang sama dikirim sebagai angka, string kosong, dan string biasa, tergantung halamannya yang mengirim. Sampai ketemu di sana.

Sekian. Salam.


  1. Angka halaman, file, dan pemakaian library dihitung langsung dari repo saat episode ini ditulis, dengan pemisahan detail internal untuk bercerita. ↩︎

  2. Nama library, framework, dan struktur folder dipertahankan secukupnya; yang tidak perlu untuk cerita tidak disebut. ↩︎