Saya berencana untuk “menulis ulang” situs pribadi saya dari bahasa pemrograman PHP ke Go. Ada beberapa “breaking changes” yang akan terjadi selama dan setelah proses transisi.
Untuk memperluas pengetahuan dan pengalaman saya di bidang web development, saya berencana untuk menulis ulang secara keseluruhan situs pribadi saya: ditatompel.com yang semula menggunakan bahasa pemrograman PHP (backend) ke bahasa pemrograman Go. Untuk frontend, saya akan mencoba beralih dari Bootstrap v4.6
ke Svelte dan Tailwind CSS.
Boleh dibilang, keputusan ini saya ambil secara sembrono karena saya baru mempelajari bahasa pemrograman Go selama kurang lebih 6 bulan dan saya tidak pernah menggunakan framework Svelte sebelumnya. Jadi, ini akan menjadi website pertama saya yang menggunakan Svelte sebagai frontend dan Go sebagai backend.
Proses Transisi
Proyek ini akan saya kerjakan di waktu senggang saya, sehingga kemungkinan akan memakan waktu cukup lama. Selama proses transisi, saya akan mulai menghilangkan fitur “offline caching” pada service worker yang berjalan di browser Anda. Hal ini penting dilakukan supaya ketika UI baru yang nantinya diluncurkan tidak berbenturan dengan “offline cache” dari UI yang lama.
Karena “offline cache” pada browser dihilangkan, maka Anda akan merasakan performa yang lebih lambat saat mengakses situs saya.
Breaking Changes
Untuk menerima yang baru, kadang kita harus mengucapkan selamat tinggal pada beberapa fitur lama dan memperkenalkan beberapa perubahan penting. Meskipun ini mungkin berarti mengucapkan selamat tinggal pada masa lalu, itu juga berarti menyambut masa depan yang penuh dengan kemungkinan tak terbatas (wedjian! 👏👏👏).
Beberapa perubahan yang nantinya akan terjadi adalah:
- Sementara dihilangkannya koneksi websocket pada halaman
/monero
sehingga tidak akan muncul notifikasi popup secara realtime. - Informasi tanggal “Google Trends ™” tidak tidak mengacu pada zona waktu browser Anda, melainkan akan mengacu pada zona waktu UTC.
- Perubahan public API endpoint: yang semula berlokasi di
https://www.ditatompel.com/api
akan berubah menjadihttps://api.ditatompel.com
. - Perubahan struktur data json response pada beberapa API endpoint yang akan saya informasikan lebih detail di kesempatan lain.
What Could Possibly Go Wrong?
Jika saya gagal mengimplementasikan fitur service worker di versi website terbaru Saya, Anda akan tetap “stuck” pada versi website yang lama. Satu-satunya cara untuk mengatasi masalah ini adalah dengan melakukan unregister service worker yang lama dan melakukan “Clear Website Data” secara manual pada browser Anda. Hal ini terjadi karena situs saya saat ini sangat bergantung pada cache, baik itu di sisi server maupun client (browser).
Saya akan menginformasikan update terbaru mengenai proses transisi di halaman ini. Dengan semua perubahan ini saya berharap adanya peningkatan performa yang signifikan baik dari sisi frontend maupun backend.
Update
2024-01-31
- BREAKING: Monero Public API endpoint dipindahkan dari
https://www.ditatompel.com/api/monero/remote-node
kehttps://api.ditatompel.com/monero/remote-node
. Lihat commit diff 013aa7d untuk informasi lebih detail.
2024-01-29
Meskipun masih masih tahap beta, frontend dan backend versi terbaru sudah saya deploy ke production server pada tanggal 29 Januari 2024. Dan dari hasil PageSpeed Insights saat ini, saya cukup puas untuk performa yang saya didapatkan.