Chuyên mục

Backend

APIs, databases and distributed systems.

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út61
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út49
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út46
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út54
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út54
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út121
99 Ngày Java — Ngày 10: Phương thức & truyền tham số

Ngày 10 của 99 Ngày Java: khai báo method với tham số và giá trị trả về, overloading — trùng tên khác chữ ký, sự thật đằng sau "Java luôn pass-by-value" (vì sao sửa mảng thì thấy mà gán lại thì không), và phạm vi biến local.

6 thg 8, 20267 phút70
Làm sao YouTube, TikTok phục vụ livestream cho 2–3 triệu người xem cùng lúc?

Không có 3 triệu kết nối nào chạm tới server gốc cả: ingest tách khỏi delivery, transcode một lần thành thang bitrate, HLS biến video live thành file tĩnh cache được, CDN nhân bản hình cây với request coalescing, trade-off độ trễ, và hệ chat biết "đếm xấp xỉ" — kèm góc trả lời phỏng vấn system design.

6 thg 8, 20268 phút54
99 Ngày Spring — Ngày 09: Profiles — cấu hình theo môi trường

Ngày 09 của 99 Ngày Spring: vì sao cần profile, config theo môi trường với on-profile & application-{profile}.yml, chọn bean bằng @Profile (cả !prod, dev | test), ba cách kích hoạt spring.profiles.active, profile group và các lời khuyên thực chiến.

6 thg 8, 20265 phút60