Chuyên mục

Backend

APIs, databases and distributed systems.

99 Ngày Spring — Ngày 14: Bean Validation — @Valid & bộ constraint chuẩn

Ngày 14 của 99 Ngày Spring: Bean Validation khai báo luật ngay trên DTO — @Valid kích hoạt, bộ constraint chuẩn (@NotBlank vs @NotEmpty vs @NotNull, @Size, @Email, @Min/@Max), bẫy int vs Integer, validate object lồng nhau không tự lan, và lỗi 400 gom một lượt.

10 thg 8, 20265 phút0
99 Ngày Java — Ngày 14: Kế thừa (Inheritance)

Ngày 14 của 99 Ngày Java: extends trao gia tài từ lớp cha, override với @Override và super., thứ tự khai sinh cha trước con sau qua super(...), protected trả nợ Ngày 13, và phép thử is-a vs has-a — khi nào nên composition thay vì kế thừa.

10 thg 8, 20266 phút0
99 Ngày Spring — Ngày 13: @RequestBody & DTO — đừng công khai entity ra API

Ngày 13 của 99 Ngày Spring: @RequestBody + Jackson deserialize JSON thành object, DTO là hợp đồng API — chặn lỗ hổng mass assignment chiều vào và rò rỉ dữ liệu chiều ra, request/response DTO khác nhau là bình thường, và Jackson annotations tinh chỉnh hợp đồng JSON.

9 thg 8, 20266 phút9
99 Ngày Java — Ngày 13: Đóng gói (Encapsulation)

Ngày 13 của 99 Ngày Java: vì sao public field là thảm họa, công thức private + getter + nghiệp vụ có kiểm soát (không setter bừa bãi), bốn mức access modifier với chiến lược kín nhất có thể, và quy ước JavaBean bắt tay framework.

9 thg 8, 20266 phút19
99 Ngày Spring — Ngày 12: Request mapping & tham số — @PathVariable, @RequestParam

Ngày 12 của 99 Ngày Spring: @PathVariable hứng định danh trong đường dẫn, @RequestParam hứng bộ lọc sau dấu hỏi (required/defaultValue), quy tắc chọn path hay query, mapping trùng nổ lúc khởi động, và chuẩn thiết kế URL danh từ số nhiều.

8 thg 8, 20265 phút22
99 Ngày Java — Ngày 12: Constructor — nghi thức khai sinh đối tượng

Ngày 12 của 99 Ngày Java: constructor ép đối tượng chào đời đầy đủ dữ liệu, default constructor — món quà có điều kiện của compiler, overload constructor nối nhau bằng this(...), khối khởi tạo instance/static và thứ tự thực thi khi new.

8 thg 8, 20266 phút22
99 Ngày Spring — Ngày 11: REST controller đầu tiên

Ngày 11 của 99 Ngày Spring — mở màn giai đoạn REST API: @RestController + @GetMapping mở endpoint trong 5 dòng, Jackson tự serialize object thành JSON, hành trình request qua DispatcherServlet, và thói quen vàng controller mỏng — service dày.

7 thg 8, 20265 phút14
99 Ngày Java — Ngày 11: Lớp & đối tượng

Ngày 11 của 99 Ngày Java — mở màn OOP: class là khuôn, object là bánh; field & method của đối tượng; new đúc đối tượng trên heap và biến chỉ giữ tham chiếu; giá trị mặc định của field; và this — con trỏ "chính tôi" trong method.

7 thg 8, 20265 phút14
99 Ngày Spring — Ngày 10: @Conditional & cách auto-configuration hoạt động

Ngày 10 của 99 Ngày Spring: @Conditional và họ @ConditionalOn... — bean có điều kiện, mổ xẻ auto-configuration của Boot (AutoConfiguration.imports, @ConditionalOnClass), nghệ thuật rút lui của @ConditionalOnMissingBean, và đọc CONDITIONS EVALUATION REPORT với --debug.

6 thg 8, 20266 phút63