Blog
Trang 3
Lombok @Data có nên dùng với JPA Entity không?
Vì sao @Data sinh equals/hashCode/toString gây rắc rối với Entity, và nên dùng annotation nào thay thế.
22/07/2026
Record trong Java: khi nào nên dùng và khi nào không
Record là gì, sinh sẵn constructor/equals/toString, phù hợp DTO và value object — nhưng không thay thế được Entity hay class có trạng thái.
22/07/2026
Optional trong Java: dùng đúng và những lỗi thường gặp
Optional để biểu diễn giá trị có thể vắng, nhưng không phải để thay mọi null — biết chỗ nên và không nên dùng.
22/07/2026
Java Stream API: các thao tác thường dùng qua ví dụ
filter, map, collect, reduce, groupingBy — xử lý collection theo phong cách khai báo, và bẫy hiệu năng cần tránh.
22/07/2026
equals() và hashCode(): vì sao phải override cùng nhau
Hợp đồng giữa equals và hashCode, hậu quả khi vi phạm trong HashMap/HashSet và cách viết đúng.
22/07/2026
Dockerfile cho Spring Boot: multi-stage build gọn và nhanh
Tách stage build và runtime, chọn base image nhẹ, tận dụng layer cache để image nhỏ và build nhanh hơn.
22/07/2026
Docker Compose: dựng Postgres + Spring Boot cho môi trường local
Một file compose để chạy database và app cùng lúc, dùng volume giữ dữ liệu, healthcheck và depends_on đúng cách.
22/07/2026
Biến môi trường, .env trong Docker và nguyên tắc 12-factor
Tách cấu hình khỏi code, cách truyền biến vào container, phân biệt .env với secret và những bẫy thường gặp.
21/07/2026
HTTP status code: hiểu nhóm 2xx, 3xx, 4xx, 5xx
Ý nghĩa từng nhóm mã trạng thái, các mã hay dùng và những nhầm lẫn kinh điển như 401 vs 403, 400 vs 422.
21/07/2026