
Lập trình meta trong Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1Lập trình meta trong Ruby là gì?
Lập trình meta trong Ruby là gì?
Câu trả lời
Lập trình meta là khả năng của một chương trình để viết hoặc sửa đổi mã trong lúc chạy. Trong Ruby, điều này cho phép định nghĩa method, class và module một cách động, giúp mã linh hoạt và ngắn gọn hơn. Kỹ thuật này được sử dụng rộng rãi trong các framework như Rails để tạo ra các DSL thanh lịch và giảm trùng lặp mã.
2Mục đích của phương thức define_method trong Ruby là gì?
Mục đích của phương thức define_method trong Ruby là gì?
Câu trả lời
define_method cho phép tạo các phương thức một cách động trong thời gian chạy. Nó nhận một tên phương thức (symbol hoặc string) và một block định nghĩa thân phương thức. Khác với def, define_method bắt các biến cục bộ từ scope bao quanh thông qua một closure, điều này hữu ích để tạo các phương thức với hành vi được tham số hóa.
3Phương thức method_missing được Ruby gọi khi nào?
Phương thức method_missing được Ruby gọi khi nào?
Câu trả lời
method_missing được gọi tự động khi một đối tượng nhận được lời gọi phương thức không tồn tại trong chuỗi kế thừa của nó. Nó nhận tên phương thức được gọi cùng các đối số, cho phép xử lý động các lời gọi này. Đây là nền tảng của nhiều mẫu metaprogramming như ghost methods được dùng trong ActiveRecord.
Sự khác biệt chính giữa class_eval và instance_eval là gì?
Hook nào được gọi khi một module được include vào một lớp?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Ruby on Rails khác
Kiến thức cơ bản về Ruby
Lập trình hướng đối tượng trong Ruby
Kiến thức cơ bản về Rails
Routing & Controllers
Kiến thức cơ bản về ActiveRecord
Views & Template ERB
Liên kết ActiveRecord
Truy vấn ActiveRecord nâng cao
Form Rails
Xác thực & Phân quyền
Asset Pipeline hiện đại & frontend
Chế độ API của Rails
Kiểm thử với RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Chiến lược Caching
Migration nâng cao
Rails Engines & ứng dụng mô-đun
Tối ưu hóa hiệu năng
Design Patterns trong Rails
Bảo mật Rails
GraphQL với Rails
Triển khai & Sản xuất
Monitoring & Logging
Chiến lược nâng cấp Rails
Nắm vững Ruby on Rails cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí