A practical guide to implementing six classic Gang of Four design patterns in idiomatic Ruby: Factory, Builder, Adapter, Decorator, Proxy, and Facade. Each pattern is shown with concise Ruby code that leverages language features like duck typing, modules, tap, and SimpleDelegator to eliminate boilerplate common in Java or C++ implementations. The post emphasizes Ruby's preference for composition over inheritance as the unifying theme across all patterns.
Nguồn: https://rubystacknews.com/2026/06/28/design-patterns-the-ruby-way-part-2-modern-creational-and-structural-patterns. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.

Thay vì tạo lớp ActiveJob mỏng để gọi phương thức đơn lẻ trong file recurring.yml, lập trình viên Ruby on Rails có thể sử dụng khóa command: để gọi trực tiếp phương thức lớp Ruby thuần. Cách này giảm boilerplate, giữ logic trong đối tượng Ruby thuần, và chỉ cần worker cấu hình cho queue solid_queue_recurring. Có thể ghi đè queue cho mỗi tác vụ.
Lập trình viên Ruby on Rails nên đọc bài này để tiết kiệm thời gian và tránh việc tạo lớp ActiveJob thừa khi chỉ cần xử lý nhiệm vụ định kỳ đơn giản, đồng thời tối ưu hóa cấu trúc mã bằng cách sử dụng Solid Queue một cách hiệu quả.
Bảng tham chiếu tương thích này liệt kê phiên bản JRuby từ 9.2 đến 10.1, bao gồm mức ngôn ngữ Ruby, phiên bản Java tối thiểu và phiên bản Rails hỗ trợ. JRuby 10 cải thiện thời gian khởi động nhờ AppCDS và Project CRaC, trong khi lợi thế của JRuby so với CRuby MRI bao gồm đa luồng thực sự (không có GVL), truy cập hệ sinh thái JVM và triển khai dưới dạng một artifact duy nhất.
Lập trình viên phát triển ứng dụng Rails cần tham khảo bảng so sánh này để chọn phiên bản JRuby phù hợp với yêu cầu Ruby version, Java cốt lõi và Rails version, giúp tối ưu hiệu năng, tương thích và triển khai nhanh chóng.
Bài viết cung cấp thông tin về độ phức tạp thời gian (time complexity) của các thuật toán, các thuật toán sắp xếp phổ biến và các thao tác trên cấu trúc dữ liệu thường dùng.
Lập trình viên nên đọc để hiểu cách phân tích hiệu suất thực tế của các thuật toán và dữ liệu trong các tình huống thực tế, giúp tối ưu hóa mã hiệu quả hơn trước khi triển khai.
Lỗ hổng path traversal mức trung bình (CVE-2026-49342, CVSS 5.3) trong gem YARD Ruby cho phép đọc file .html ngoài thư mục tĩnh do YARD đọc đường dẫn request trước khi xử lý sanitization. Bản vá đã có trong YARD 0.9.44.
Lập trình viên cần đọc bài này để tránh bị ảnh hưởng bởi lỗ hổng bảo mật trong YARD, đặc biệt là khi sử dụng gem này trong dự án Ruby, và hiểu cách bảo vệ hệ thống khỏi các cuộc tấn công đường dẫn vượt qua (path traversal) trong các ứng dụng đã tích hợp YARD.
A security advisory (GHSA-8vfg-2r28-hvhj) has been published for the Ruby gem 'crass', a CSS parser. When parsing inputs containing non-ASCII characters, inefficiencies in how the library tracks multi-byte character positions result in superlinear (worse than linear) CPU consumption. An attacker who controls the input could craft a payload with many non-ASCII characters to cause excessive CPU usage and potential denial of service. The vulnerability is patched in crass version 1.0.7 and later.
Lỗ hổng CVE-2026-44025 (mức độ cao, CVSS 7.5) trong Fluentd cho phép truy cập trái phép thông tin nhạy cảm thông qua API của Monitor Agent. Các endpoint REST như /api/plugins.json tiết lộ giá trị biến instance của plugin, có thể lộ mật khẩu cơ sở dữ liệu, API keys hoặc credential cloud nếu chúng được lưu trong biến này. Bản vá đã được cung cấp từ phiên bản Fluentd v1.19.3 trở lên.
Lập trình viên nên đọc bài này để tránh rủi ro bảo mật khi sử dụng Fluentd trong hệ thống, vì CVE này có thể khiến các thông tin nhạy cảm như mật khẩu hoặc API key bị lộ khi plugin không được bảo vệ kĩ, ảnh hưởng đến an toàn của ứng dụng.

Tuần này trong Rails bổ sung tính năng tuân thủ RFC 9110 cho Accept header, sửa lỗi dotenv (xóa comment nội tuyến, tối ưu ghi nhớ theo đường dẫn), cải thiện xử lý association (đa hình, khóa chính composite) và tăng cường Ractor safety (frozen defaults, copy-on-write). Ngoài ra, phiên bản json gem được nâng lên 2.20.0 có hỗ trợ comment, và safe_join đã tối ưu bộ phân tách mặc định.
Lập trình viên Ruby/Rails nên đọc bài này để cập nhật những cải tiến an toàn và hiệu suất mới trong các phiên bản core framework, đặc biệt là về bảo mật header, quản lý biến môi trường và an toàn đồng thời (Ractor) để tránh lỗi bảo mật và hiệu suất trong ứng dụng.
Lỗ hổng CVE-2026-44160 (mức độ cao, CVSS 7.5) trong Fluentd ảnh hưởng đến các plugin in_http và in_forward do không giới hạn kích thước dữ liệu giải nén Gzip, cho phép tấn công DoS thông qua "decompression bomb". Kẻ tấn công có thể gửi payload độc hại khiến Fluentd tiêu tốn hết bộ nhớ, dẫn đến crash toàn bộ hệ thống ghi log. Bản vá đã được cung cấp từ phiên bản Fluentd 1.19.3 trở lên.
Lập trình viên cần đọc bài này để hiểu cách bảo mật plugin HTTP trong Fluentd có thể bị exploit bởi tấn công DoS thông qua gzip decompression, giúp họ cập nhật kiến thức về các lỗ hổng mới để phòng ngừa rủi ro trong ứng dụng của mình.