Ini episode terakhir seri frontend. Seperti seri sebelah, saya tidak mau menulis seolah semua masalah sudah beres. Saya cuma ingin mencatat apa yang selesai, apa yang belum disentuh, dan apa yang saya pelajari setelah ikut mengurus kedua sisi gedung ini.
Cek Inventaris Dulu #
Empat episode lalu, saya mulai membongkar gedung frontend warisan. Port-nya sekarang selesai, jadi saya catat dulu isinya:
- 76 halaman dipindahkan dan tetap hidup. Port 1:1 tanpa meninggalkan satu halaman pun. Semua link internal antarhalaman masih menuju ke tempat yang benar.
- Dua library UI tetap dipakai. Ada 101 file untuk yang mayoritas dan 13 untuk pemegang komponen kalender. Seperti sebelumnya, tidak ada file yang memakai keduanya.
- 194 bekas luka tipe sudah terukur.1 Ada 194 jaring pengaman kecil yang masih berupa angsuran, belum menjadi arsitektur.
- Tiga era styling masih ada,2 satu backup sudah dipensiunkan, dan standardisasi menunggu giliran.
Angka-angka ini bukan tanda gedungnya sudah rapi. Pindahan selesai, renovasi belum. Saya sempat mencampuradukkan dua hal itu, padahal jelas beda pekerjaan.
Backend dan Frontend, Sama-sama Warisan #
Kalau saya lihat lagi dua seri ini, pola kerjanya mirip meski masalahnya beda.
Di backend, kami menemukan query yang tidak sargable dan prepared statement yang terputus di tunnel. Di frontend, ada field dengan tipe yang tidak sesuai dan dua library yang dipisahkan oleh garis demarkasi. Cara menanganinya serupa di kedua sisi: ukur dulu, pindahkan dengan setia, catat yang dibatalkan, dan jangan memperbaiki sambil memindahkan.
Dua sistem ini juga tumbuh karena waktu dan keadaan darurat, bukan karena seseorang duduk merancang arsitektur sempurna. Jadi saya susah menyalahkan spaghetti-nya. Kode itu tetap melayani pengguna meski orang yang merawatnya berganti.
Yang Saya Catat untuk Nanti #
Biar tidak semuanya menumpuk di kepala, saya pisahkan catatannya seperti ini:
Mulai sekarang, saya jaga batas antarlibrary supaya tidak ada file campuran, kontrak tipe di pintu masuk, dan kebiasaan mencatat warisan yang kami bawa.
TypeScript, penamaan lintas era, dan refactor struktur internal masih menunggu giliran. Saya ingin melihat data pemakaian dulu sebelum mengubah struktur.
Migrasi state management batal, dan saya tidak menyesal. Rencana yang tidak jadi juga perlu dicatat, bukan disembunyikan seolah tidak pernah ada.
Setelah ikut berjibaku merawat web app v3 ini, saya malah makin merasa seperti turis. Hati masih protes, tapi production tetap harus jalan.
Di episode pertama saya bercanda soal visa turis yang dicabut dan diganti KTP penduduk. Kenyataannya, KTP-nya memang terbit, tetapi hati saya masih sering membawa paspor.
Nah, Selesai Juga #
Dengan episode ini, dua seri Hijrah selesai: satu backend dan seri frontend. Keduanya membahas dua sisi gedung yang sama, yang tetap melayani puluhan ribu user setiap hari. Kode tidak minta tepuk tangan, tapi saya boleh kan? hehe.
Kalau kamu juga sedang mengurus sistem warisan, saya biasanya mulai dengan mengukur dulu. Pindahkan apa adanya, catat yang belum dikerjakan, dan jangan memaksa semuanya selesai sekaligus. Saya sendiri masih belajar bagian terakhir itu.
Terima kasih sudah mengikuti seri ini sampai akhir. Semoga gedung yang kamu urus tetap jalan meski penjaganya berganti.
Sekian. Salam.