adipurnm

adipurnm's log

Jul 12, 2025

Pelajaran yang diperoleh dari artikel Rewrite it in Rails

Kalau biasanya rewrite itu dari Rails ke Golang/Rust/bahasa pemrograman lain yang lebih baik dari sisi performa, penulis yang satu ini malah rewrite dari Rust ke Rails.

Tulisan yang cukup menarik, dan mungkin bisa membuka perspektif kita tentang dunia software development. Judulnya yaitu Rewrite it in Rails.

Ceritanya, penulis ngembangin satu aplikasi pakai Rails. Aplikasi tersebut ternyata semakin berkembang. Cukup berkembang sehingga penulis bisa hire programmer lain untuk membantu pengembangan aplikasi.

Penulis kemudian ngembangin “versi 2” dari aplikasi. Pakai Rust dan SvelteKit. Secara performa, hasilnya lebih cepat daripada pakai Rails, tapi:

Untuk “menghibur diri”, penulis menanggap menulis dengan kode Rust itu sebuah investasi. Tapi, semakin waktu berjalan, penulis sadar bahwa memang ada beberapa investasi yang nggak akan berhasil.

Akhirnya, penulis memutuskan untuk rewrite stack yang baru ke Rails.

Hasilnya:

Dari sisi bisnis, ini termasuk huge win: develop cepat, deliver cepat, dapet feedback cepat, user happy.

Key Takeway

Dari tulisan di atas, kita dapat beberapa insight.

Nggak melulu soal performance

Performance memang penting, tapi terkadang kecepatan dan kompleksitas development lebih penting daripada performance.

Fast enough is enough

Menurut penulis artikel tersebut, meskipun kode yang ditulis pakai Rust pasti lebih cepat, faktanya user nggak terlalu merasakan perbedaan yang begitu berarti.

Ini karena di kode Rails sendiri, di halaman yang paling berat, response time P95 nya ada di angka 338ms. Dan menurut penulis, ini masih bisa ditingkatkan.

Aplikasi akan terasa sangat snappy jika response time-nya maksimal 300ms. Di dunia UX, ini disebut sebagai perceived performance. Saya rasa selisih 38ms nggak akan terlalu memengaruhi pengalaman pengguna saat pakai aplikasi.

Software development adalah permainan tradeoff

Rewrite ke Rails sudah pasti ada tradeoff-nya.

Ini balik lagi ke kebutuhan. Memilih tech stack adalah komitmen jangka panjang, jadi harus dipikirkan matang-matang.

Selama masih bisa ditingkatkan, tingkatkan yang udah ada

Rewrite aplikasi itu ibarat bikin lagi dari 0, tapi dengan jalan yang lebih terarah.

Meskipun begitu, rewrite aplikasi bukan satu-satunya solusi untuk meningkatkan performance.

Bisa jadi bottleneck-nya di database. Bisa jadi karena kodenya bertele-tele, padahal ada approach yang lebih sederhana dan lebih efisien.

Identifikasi dulu masalahnya di mana. Selama masih bisa ditingkatkan, tingkatkan dulu yang ada sekarang. Jangan buru-buru rewrite.


Oiya, buat temen-temen yang masih awam dengan proses deployment aplikasi ke server, saya nulis e-book Self-hosting dengan Dokku. Unduh di sini, gratis!

Balas melalui email.