
Posting ini adalah terjemahan dari
artikel oleh programmer Krzysztof Kopidlowski yang didedikasikan untuk mengeksplorasi manfaat Ruby on Rails. Materi akan menarik terutama untuk programmer pemula dan hanya kemudian untuk para profesional.
Ruby on Rails dapat menghemat waktu yang biasanya Anda habiskan untuk pengembangan. Hanya karena ketika menggunakan kerangka kerja ini, kode akan lebih sedikit dan fungsinya akan tetap sama.
Skillbox merekomendasikan: Kursus praktis "Pengembang Web Profesi" .
Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".
Dari Jawa ke Ruby
Bagi saya, bekerja dengan Ruby adalah penghemat waktu nyata. Saya dapat berkonsentrasi pada metode dan logika, daripada main-main dengan banyak kode baris demi baris. Saya dulu berpikir bahwa Java adalah pengubah permainan, tetapi setelah mengenal Ruby on Rails, saya bahkan lebih terkesan.
Selama sekitar satu tahun saya telah menulis di Jawa dan melakukan pengembangan backend. Menurut saya, setiap programmer yang bekerja dengan bahasa ini akan mengerti apa yang saya bicarakan. Misalkan Anda ingin menulis titik akhir untuk mengembalikan file .zip. Anda dapat memecahkan masalah ini tanpa masalah khusus, tetapi ini membutuhkan ratusan baris kode.
Tetapi bagaimana jika saya memberi tahu Anda bahwa beberapa lusin garis dapat dihilangkan?

Ini adalah Ruby - bahasa pemrograman tingkat tinggi yang berorientasi objek, dinamis, reflektif, dan ditafsirkan. Ini memiliki implementasi multithreading independen sistem operasi, pengetikan dinamis yang kuat, pengumpul sampah, dan banyak fitur lainnya. Ini telah menulis banyak aplikasi web, termasuk GitHub dan Twitter.
Ruby Mengurangi Kode
Mungkin Anda bertanya pada diri sendiri bagaimana umumnya mungkin untuk mengurangi jumlah kode menjadi beberapa puluh baris sambil mempertahankan logika yang ditunjukkan di atas. Ini sangat mungkin, dan kami belum membicarakan kerangka kerja, ini tentang bahasa murni.
Misalnya, jika Anda memiliki array dan Anda ingin meningkatkan semua elemen sebanyak 2, dan kemudian mengembalikannya dalam urutan terbalik di Jawa, kode akan terlihat seperti ini (menggunakan antarmuka Daftar):
import java.util.*; import java.util.stream.Stream; import static java.util.Collections.reverseOrder; import static java.util.stream.Collectors.toList; public class MyClass { public static void main(String args[]) { List<Integer> list = Stream.of(1, 2, 3) .map(val -> val + 2) .sorted(reverseOrder()) .collect(toList()); list.forEach(System.out::println); } }
Hal yang sama di Ruby akan terlihat seperti ini:
array = Array.new (5,2)
array.map {| x | x + 2} .reversePerbedaannya jelas. Dan Anda tidak perlu mengimpor kelas.
Pengetikan dinamis
Setelah kami memastikan tidak ada terlalu banyak baris kode, kami dapat memikirkan fakta bahwa tipe variabel tidak diatur dalam contoh di atas. Ini benar - faktanya adalah bahwa di Ruby semua variabel diketik secara dinamis.
Jika Anda menulis metode yang menggunakan dua parameter, Anda tidak perlu menentukan tipenya, Anda hanya bisa fokus pada logika. Hasil: kode lebih sedikit, sementara lebih berkualitas dan lebih bersih.
Ruby juga memiliki banyak metode kepemilikan yang mempercepat pengkodean. Saat menulis program, saya paling sering menggunakan konversi Hash ke Array, dan kemudian ke JSON. Di Ruby, saya bisa menjalankannya hanya dengan satu baris!
Di atas rel
Kerangka kerja Ruby yang paling populer adalah Rails. Ini memberikan fungsi yang kira-kira sama untuk bahasa seperti Spring untuk Java. Saya ingin membagikan beberapa temuan saya yang mungkin bermanfaat bagi Anda.
Semua titik akhir di satu tempatSalah satu hal yang saya sukai dari Rails adalah saya hanya perlu satu file untuk menyatakan semua titik akhir saya. Saya selalu dapat menggunakan perintah terminal $ rake route untuk melihatnya. Ini adalah pilihan bagus untuk proyek besar ketika Anda perlu melakukan sesuatu berdasarkan apa yang sudah ditulis.
Selain itu, Anda dapat membagi titik akhir Anda menjadi beberapa kelompok. Misalnya, ketika Anda memiliki model Pengguna, Anda dapat mengatur jalur untuk semua anggotanya sehingga setiap titik akhir secara otomatis mendapatkan pengidentifikasi sendiri.
Anda tidak harus menggunakan parameter yang berbeda untuk titik akhir yang sama. Di Rails, secara default, Anda bisa meneruskan parameter apa pun ke titik akhir dan hanya memvalidasi parameter yang ingin Anda gunakan di controller.
def user_params
params.require (: user) .permit (: name ,: nama keluarga ,: birth_date ,: avatar)
akhirDatabase RailsSemua migrasi didaftarkan di sini di aplikasi, jadi pengaturan database pada perangkat yang berbeda datang untuk menjalankan satu perintah: $ bundle rake db: setup. Dengan demikian, klien eksternal sama sekali tidak diperlukan untuk mengkonfigurasi atau menggunakan database.
Dan tidak, database yang Anda buat dan transfer ke perangkat lain tidak akan kosong: di aplikasi Rails Anda ada file bernama seeds.rb di mana Anda dapat menentukan semua catatan untuk model yang berbeda yang diperlukan agar aplikasi berfungsi. Akibatnya, model hanya membutuhkan beberapa baris kode.
Perintah $ bundle rake db: setup memiliki tiga fungsi:
- Membuat database jika belum ada;
- Menjalankan semua migrasi;
- Masukkan semua data sumber dari file seed Anda.
Kode ini sangat bersih: ActiveRecords hanya menulis metode yang perlu Anda terapkan, bukan atribut.
Dalam kerangka kerja Hibernate untuk Java, Anda harus mendaftarkan semua atribut dengan anotasi, dan kemudian menyetujuinya untuk atribut yang perlu Anda modifikasi. Dalam hal ini, Anda mendapatkan sejumlah besar kode pada output.
Dalam Rails, hal yang sama membutuhkan satu baris. Skema DB disimpan dalam file schema.rb, yang secara otomatis dibuat ketika migrasi dimulai. Dan kelas tidak perlu setter atau atribut. Ketika yang terakhir diperlukan, itu akan cukup untuk menulis: Model.attribute - dan itu saja.
Seperti disebutkan di atas, dengan Rails Anda dapat fokus pada logika dan metode proyek Anda, bukan pada kode.

Kesimpulan
Ruby on Rails memberi Anda alat canggih seperti pengetikan dinamis atau byebugging yang mempercepat proses pemrograman dengan cukup baik.
Jika Anda ingin mengambil kursus dalam pengembangan aplikasi web, pastikan untuk mencoba menulis aplikasi Rails kecil untuk memahami cara kerjanya. Tidak ada kata terlambat untuk mempelajari sesuatu yang baru - bahkan jika Anda lebih suka alat tradisional.