Spring 23/07/2026 8 phút

BCrypt chậm 52ms là TÍNH NĂNG, và nó lặng lẽ bỏ qua mọi ký tự sau byte thứ 72

Băm mật khẩu như một ổ khoá một chiều nặng và quay chậm có chủ đích: kiểm được chìa nhưng không đọc ngược ra chìa. Đo BCrypt theo từng mức cost, giới hạn 72 byte, DelegatingPasswordEncoder, và cách đổi thuật toán mà không bắt ai đặt lại mật khẩu.

Spring 22/07/2026 7 phút

Thêm một phụ thuộc là mọi endpoint bị khoá — và Spring Security chỉ là 15 bộ lọc xếp hàng, không phép màu

Spring Security như một bộ lọc nước nhiều tầng: nước qua một dãy lõi cố định, mỗi lõi lọc đúng một thứ, sai thứ tự là hỏng cả dãy — và cái van cuối mặc định ĐÓNG. Mười lăm bộ lọc in ra thật, năm header tự bật, và cấu hình đúng thứ tự.

Spring 21/07/2026 7 phút

Một dòng findAll() là đỉnh tảng băng — chốt chặng dữ liệu và bốn thói quen nhìn xuống dưới mặt nước

ORM giấu việc truy cập CSDL quá giỏi, và mọi vấn đề tốn kém của tầng dữ liệu nằm đúng ở chỗ nó giấu. Bảng quyết định rút từ bảy phép đo thật, ba dòng cấu hình đáng đặt vào mọi dự án, và bốn thói quen đáng mang theo.

Spring 20/07/2026 9 phút

Redis chậm hơn cache bộ nhớ bảy lần, và cái bẫy: đếm thao tác thay vì đếm lượt đi về mạng

Cache trong bộ nhớ như cuốn sổ tay riêng trên bàn mỗi người; Redis như một tấm bảng chung ngoài hành lang ai cũng đọc cũng ghi — phải đi ra đó một chuyến, đổi lại ai cũng thấy cùng một thứ. Đo cache/session/khoá/bộ đếm, và vì sao phải đếm lượt đi về.