Menulis Ulang dengan Rails
(dirkjonker.bearblog.dev)-
Memulai blog
- Pada 2022, mulai mengembangkan aplikasi untuk menulis formulir deklarasi bea cukai.
- Setelah mengevaluasi berbagai bahasa dan framework, diputuskan untuk membangunnya dengan Ruby on Rails.
- Karena sudah terbiasa dengan Rails, pengembangan bisa dilakukan 10 kali lebih cepat dibanding opsi lain.
-
Pengembangan versi 2
- Mulai mengembangkan versi kedua aplikasi menggunakan Rust dan SvelteKit.
- Pada awalnya terasa cepat dan bagus, tetapi hanya 10% dari fitur yang dibutuhkan yang berhasil diimplementasikan.
- Karena tidak ada framework Rust yang sebanding dengan Rails, banyak waktu yang terpakai.
-
Kelebihan Rust
- Merasakan keunggulan performa Rust dan kompilasi tanpa error.
- Di Ruby, error runtime sering terjadi sehingga kebutuhan akan Rust terasa nyata.
-
Perubahan frontend
- Merasa tidak puas dengan frontend Rails, lalu memutuskan beralih ke SvelteKit.
- Beberapa halaman cepat dipindahkan ke stack baru, tetapi deployment menjadi lebih rumit.
-
Realitas pengembangan
- Bagian Rails terus berkembang sambil menambahkan fitur-fitur yang berguna.
- Menyadari bahwa perpindahan ke Rust dan Svelte tidak memberi nilai langsung bagi pengguna.
-
Sulitnya mengambil keputusan
- Memutuskan untuk meninggalkan stack baru dan kembali ke Rails.
- Mendorong anggota tim untuk mempelajari Rails.
-
Kelebihan Rails
- Rails menjadi fondasi banyak perusahaan sukses serta menyediakan banyak library dan ekosistem.
- Ini memungkinkan tim fokus pada pengembangan produk.
-
Pelajaran
- Mempelajari bahasa dan framework baru memberi banyak wawasan.
- Pengembangan aplikasi web membutuhkan banyak pilihan dan kompromi.
- Kembali ke Rails adalah keputusan yang baik dan meningkatkan produktivitas.
-
Kekurangan Ruby dan Rails
- Masalah runtime dapat diatasi dengan pengujian.
- Kode yang menjadi rumit adalah masalah pengembang, dan harus diatur dengan baik.
- Rails cukup cepat, dan performa bisa ditingkatkan dengan Turbo serta caching.
-
Kesimpulan
- Tidak ada bahasa atau framework yang sempurna; kita perlu memahami dan memanfaatkan kelebihan serta kekurangannya masing-masing.
- Rails adalah pilihan yang baik, dan banyak framework lain juga hebat.
2 komentar
Tulis Ulang dengan Ruby
Tulis Ulang dengan Rails
Komentar Hacker News
Rails, Django, dan Laravel jauh lebih unggul daripada stack lain untuk pengembangan aplikasi web. Ketiganya menangani pekerjaan yang berulang, memahami kebutuhan dengan baik, dan tidak menghalangi saat membangun aplikasi. Pengembangan web dianggap sebagai masalah yang sudah terselesaikan, dan teknologi terkait JavaScript cenderung didorong oleh pendanaan perusahaan besar
Sudah menggunakan Rails selama 17 tahun, dan masih menyukai serta lebih memilihnya. Pemisahan kode bisa dilakukan dengan mudah sehingga header file tidak perlu menjadi terlalu panjang. Jika logika dan markup dipisahkan, keduanya bisa diuji secara terpisah sehingga pelacakan bug menjadi lebih mudah
Rust adalah bahasa yang dibuat oleh orang-orang yang sangat cerdas, tetapi karena fokus pada teori tipe dan alokasi memori, bahasa ini sulit dipahami oleh pengembang biasa. Bahkan saat membaca tulisan blog tentang Rust, hanya sekitar setengahnya yang bisa dipahami
Keluhan terhadap Ruby dan Rails telah berkurang. Tidak ada bahasa atau framework yang sempurna, jadi kita perlu memahami kelebihan dan kekurangannya lalu menanganinya dengan tepat
Sulit menulis aplikasi web besar dengan cepat menggunakan Rust. Aplikasi besar yang ditulis dengan Rails juga tidak berjalan cepat, bisa penuh bug, dan mungkin sulit dipelihara maupun diperluas. Bahasa seperti Java, C#, dan Go memungkinkan pekerjaan selesai secepat Rails sambil tetap berjalan secepat Rust
Alasan teknologi seperti NextJS dan SvelteKit populer di kalangan pengembang JS adalah karena keduanya menyelesaikan masalah pengalaman pengembangan backend di Node.JS. Rails pada 2006 secara revolusioner menghadirkan solusi yang komprehensif untuk membangun aplikasi
Sedang menguji AdonisJS sebagai alternatif TS untuk Rails. Framework ini mirip dengan Rails atau Laravel, dan mengurangi beban untuk harus menentukan sendiri setiap bagian dari stack
Bingung dengan pendapat bahwa Rust tidak cocok untuk backend web. Pada layanan kecil, pengalamannya bagus, dan meskipun kompleksitas bisa meningkat saat membangun aplikasi besar, Rust memberi tingkat keyakinan yang dibutuhkan untuk codebase berskala besar
Mengalami hal yang sama dengan Django, dan masalah performa umumnya lebih sering berasal dari query database daripada Django itu sendiri
Bukan tahun 2010 lagi, jadi muncul pertanyaan mengapa masih menggunakan Rails. Ada banyak alternatif seperti Java(Spring), Go, dan Node. Memakai Rust terasa sama anehnya seperti memilih C++