Import cả framework to đùng – chỉ để dùng đúng 1 hàm

Tụi em kéo Laravel để gọi Validator::make, không thì code không chạy được đâu anh!

Audit codebase mà thấy project PHP đơn giản, chỉ cần validate form, nhưng lại kéo cả Laravel – như mua cả siêu thị chỉ để lấy một hộp sữa. Dependency phình to, build chậm, còn mở rộng “bề mặt tấn công” cho hacker.


Thực trạng: Framework “khủng” cho việc nhỏ

Thực trạng:  
  • Project chỉ cần validate input, nhưng import cả Laravel (hàng trăm MB dependency).  
  • Dev chọn framework “all-in-one” vì quen, không tìm package nhẹ hơn.  
  • Docker image nặng, CI build lâu, runtime ngốn tài nguyên.
Hệ quả:  
  • Build chậm: composer install mất 5 phút vì dependency tree khổng lồ.  
  • Rủi ro bảo mật: Framework lớn đi kèm nhiều lỗ hổng tiềm tàng.  
  • Khó maintain: Cập nhật framework tốn công, dễ phá vỡ codebase.

Giải pháp: Dùng package nhỏ gọn

Để “nhẹ nhàng” hơn:  
  • Xác định nhu cầu: Chỉ cần validate? Dùng package như Respect\Validation hoặc rakit/validation. 
  • Ưu tiên single-responsibility: Chọn thư viện làm đúng một việc, tránh “combo” không cần thiết. 
  • Audit dependency: Dùng composer show --tree để kiểm tra package thừa.

Ví dụ: Validate với Respect\Validation thay Laravel:

use Respect\Validation\Validator as v;
if (!v::email()->validate($email)) {
    throw new Exception('Invalid email');
}

🎯 Tóm lại: Kéo cả framework chỉ để dùng một hàm là “mua voi lấy ngà”. Chọn package nhẹ, audit dependency để codebase gọn, build nhanh, và hacker hết cửa.

Post a Comment

Mới hơn Cũ hơn