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