
Metaprogramming Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1Apa itu metaprogramming dalam Ruby?
Apa itu metaprogramming dalam Ruby?
Jawaban
Metaprogramming adalah kemampuan sebuah program untuk menulis atau memodifikasi kode saat runtime. Di Ruby, hal ini memungkinkan pendefinisian method, class, dan module secara dinamis, sehingga kode menjadi lebih fleksibel dan ringkas. Teknik ini banyak digunakan dalam framework seperti Rails untuk membuat DSL yang elegan dan mengurangi duplikasi kode.
2Apa tujuan dari metode define_method di Ruby?
Apa tujuan dari metode define_method di Ruby?
Jawaban
define_method memungkinkan pembuatan metode secara dinamis saat runtime. Ia menerima nama metode (symbol atau string) dan sebuah block yang mendefinisikan badan metode. Berbeda dengan def, define_method menangkap variabel lokal dari scope di sekitarnya melalui sebuah closure, yang berguna untuk menghasilkan metode dengan perilaku yang terparameterisasi.
3Kapan metode method_missing dipanggil oleh Ruby?
Kapan metode method_missing dipanggil oleh Ruby?
Jawaban
method_missing dipanggil secara otomatis ketika sebuah objek menerima panggilan metode yang tidak ada dalam rantai pewarisannya. Ia menerima nama metode yang dipanggil beserta argumennya, sehingga memungkinkan penanganan panggilan tersebut secara dinamis. Ini adalah dasar dari banyak pola metaprogramming seperti ghost methods yang digunakan di ActiveRecord.
Apa perbedaan utama antara class_eval dan instance_eval?
Hook mana yang dipanggil ketika sebuah module di-include ke dalam sebuah kelas?
+17 pertanyaan wawancara
Topik wawancara Ruby on Rails lainnya
Dasar-Dasar Ruby
Pemrograman Berorientasi Objek di Ruby
Dasar-Dasar Rails
Routing & Controllers
Dasar-Dasar ActiveRecord
Views & Template ERB
Asosiasi ActiveRecord
Kueri ActiveRecord Lanjutan
Formulir Rails
Autentikasi & Otorisasi
Asset Pipeline modern & frontend
Mode API Rails
Pengujian dengan RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategi Caching
Migrasi tingkat lanjut
Rails Engines & Aplikasi Modular
Optimasi Performa
Design Pattern Rails
Keamanan Rails
GraphQL dengan Rails
Deployment & Produksi
Monitoring & Logging
Strategi Upgrade Rails
Kuasai Ruby on Rails untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis