Rel 6.1 RC1

Kandidat rilis pertama untuk Rails 6.1 telah dirilis dan wow apakah itu memiliki banyak hal hebat! Kami telah bekerja keras sedang bekerja beberapa bulan terakhir ini menerapkan peningkatan pada beberapa database, menambahkan dukungan untuk penghancuran asosiasi dalam pekerjaan alih-alih dalam memori, mengubah kesalahan menjadi objek, dan banyak lagi.

Sungguh menakjubkan bagaimana Rails telah berkembang selama bertahun-tahun dan sementara kami memiliki beberapa perbaikan untuk dilakukan pada proses orientasi , Rails tidak pernah sebaik ini. Fitur-fitur dalam rilis ini fokus pada penambahan fungsionalitas yang Anda butuhkan untuk menjaga aplikasi Anda tetap berjalan untuk tahun-tahun mendatang.

Mari kita lihat beberapa fungsi baru:

Peningkatan Multi-DB

Pengalihan Koneksi Per-database

Rails 6.1 memberi Anda kemampuan untuk berpindah koneksi per database . Di 6.0 jika Anda beralih ke peran membaca maka semua koneksi database juga dialihkan ke peran membaca. Sekarang di 6.1 jika Anda menyetel legacy_connection_handling ke false dalam konfigurasi Anda, Rails akan memungkinkan Anda untuk beralih koneksi untuk satu database dengan memanggil connected_to pada kelas abstrak yang sesuai.

Sharding Horizontal

Rails 6.0 memberikan kemampuan untuk secara fungsional mempartisi (beberapa partisi, skema berbeda) database Anda, tetapi tidak dapat mendukung sharding horizontal (skema yang sama, beberapa partisi). Rails tidak dapat mendukung sharding horizontal karena model di Rekaman Aktif hanya dapat memiliki satu koneksi per peran per kelas. Ini sekarang telah diperbaiki dan sharding horizontal dengan Rails tersedia.

Peningkatan Tambahan

Selain menambahkan dukungan sharding horizontal, kami menambahkan banyak fungsi baru dan meningkatkan banyak internal untuk beberapa database. Kyle Thompson menambahkan dukungan untuk database tugas namespaced seperti db: skema: dump: namespace , db: schema: load: namespace , db: struktur: dump: namespace , dan db: structure: load: namespace . Jean Boussier dari Shopify ditingkatkan manajemen kumpulan koneksi .

Asosiasi Pemuatan Ketat

Selain banyak peningkatan manajemen database dan koneksi, Aaron Patterson dan Eileen M. Uchitelle menambahkan dukungan untuk asosiasi pemuatan yang ketat . Dengan fitur ini, Anda dapat memastikan bahwa semua pengaitan Anda dimuat dengan penuh semangat dan menghentikan N + 1 sebelum terjadi. Kevin Deisz menambahkan dukungan tambahan ke deklarasi asosiasi dan bogdanvlviv menambahkan dukungan untuk mengaktifkan pemuatan yang ketat secara default .

Jenis yang Didelegasikan

Rails 6.1 menambahkan “Jenis yang Didelegasikan” sebagai alternatif untuk pewarisan tabel tunggal. Ini berguna untuk merepresentasikan hierarki kelas yang memungkinkan superclass menjadi kelas konkret yang diwakili oleh tabelnya sendiri. Setiap subclass memiliki tabelnya sendiri untuk atribut tambahan. Lihat permintaan tarik yang ditulis oleh DHH .

Hancurkan Asosiasi Asinkron

Hancurkan asosiasi async menambahkan kemampuan untuk aplikasi untuk menghancurkan asosiasi di pekerjaan latar belakang. Ini dapat membantu Anda menghindari waktu tunggu dan masalah kinerja lainnya dalam aplikasi Anda saat menghancurkan data. Implementasi adalah upaya kelompok – PR dimulai oleh George Claghorn dari Basecamp, dukungan lebih lanjut ditambahkan oleh Cory Gwin dari GitHub dan diselesaikan oleh Rafael França dan Adrianna Chang dari Shopify .

Objek Kesalahan

Kesalahan Model Aktif sekarang menjadi objek dengan antarmuka yang memungkinkan aplikasi Anda untuk lebih mudah menangani dan berinteraksi dengan kesalahan yang muncul dari model. Fitur adalah diimplementasikan oleh lulalala dan menyertakan antarmuka kueri, memungkinkan pengujian yang lebih tepat, dan akses ke detail kesalahan.

Peningkatan Penyimpanan Aktif

Penyimpanan Aktif mendapat pembaruan bagus di Rails 6.1! Anda sekarang dapat mengonfigurasi lampiran untuk layanan tempat Anda ingin menyimpannya. fitur diimplementasikan oleh Dmitry Tsepelev .

Selain itu, Rails 6.1 menambahkan dukungan ke Penyimpanan Aktif untuk URL permanen untuk blob . Diimplementasikan oleh Peter Zhu dari Shopify, fitur ini memungkinkan konfigurasi lampiran Anda untuk menggunakan URL pribadi atau publik dan memastikan bahwa URL publik akan selalu menggunakan URL permanen.

Dukungan Penghentian yang Tidak Diizinkan

Jika Anda ingin menjalankan aplikasi Anda tanpa peringatan-peringatan, maka fitur ini cocok untuk Anda. Fitur ini memungkinkan aplikasi untuk secara opsional meningkatkan kesalahan jika peringatan penghentian diberikan. Ini berguna untuk memastikan pengembang tidak memperkenalkan kembali peringatan penghentian yang telah diperbaiki. Fitur tersebut diimplementasikan oleh Cliff Pruitt dari Test Double!

Peningkatan Kinerja dan Perbaikan Bug!

Rilis bukan hanya tentang fitur luar biasa yang Anda dapatkan. Ini juga tentang memperbaiki bug, meningkatkan kinerja, dan membuat Rails lebih stabil untuk semua orang. Rilis ini mencakup peningkatan yang menghindari membuat kueri jika di mana meneruskan larik kosong dilaporkan oleh Molly Struve dan perbaikan diterapkan oleh John Hawthorn . Eileen M. Uchitelle dan Aaron Patterson juga menerapkan peningkatan kinerja yang mempercepat di mana kueri saat kita tahu semua nilai adalah bilangan bulat.

Pemuat Otomatis klasik Tidak Berlaku Lagi

Pemuat otomatis klasik telah membantu kami dengan baik sejak rilis Rails pertama, tetapi ada anak baru di blok dan itu akan memulai siklus penghentiannya.

Proyek Rails baru sangat tidak disarankan untuk menggunakan pemuat otomatis klasik , dan kami menyarankan agar proyek yang sudah ada berjalan aktifkan klasik beralih ke zeitwerk mode saat meningkatkan. Tolong cek Meningkatkan Ruby on Rails panduan untuk tip.

Dan banyak lagi!

Ada begitu banyak perubahan besar di Rails 6.1. 686 orang memberikan kontribusi pada Rails. Lihat CHANGELOGS untuk detail selengkapnya tentang perbaikan bug, peningkatan kinerja, dan fitur lainnya.

Terima kasih kepada semua orang yang melaporkan bug, mengirim permintaan penarikan, dan membantu meningkatkan Rails. Rel lebih baik karena kerja keras Anda!

Kami harap Anda menguji Rails 6.1 dan menyukainya sama seperti kami. Silakan laporkan setiap bug ke Pelacak masalah rel .

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments