Đóng gói Spring Boot thành Docker image gọn nhẹ
Dùng multi-stage build, layered jar, JRE tối giản và user non-root để có Docker image Spring Boot nhỏ, build nhanh và an toàn hơn.
Java, Spring Boot, Golang, Python… — viết code đúng và hiệu quả qua ví dụ thực hành.
Dùng multi-stage build, layered jar, JRE tối giản và user non-root để có Docker image Spring Boot nhỏ, build nhanh và an toàn hơn.
So sánh G1 và ZGC trong Java 21: cách hoạt động, cách bật, đọc GC log, kiểm tra GC đang chạy và tiêu chí chọn GC cho ứng dụng Spring Boot.
Dùng Zod để kiểm tra dữ liệu từ API, form hay biến môi trường lúc runtime, đồng thời suy ra type TypeScript từ cùng một schema.
Hướng dẫn dùng Spring Kafka để gửi message bằng KafkaTemplate, nhận bằng @KafkaListener, xử lý lỗi với Dead Letter Topic và viết test với Embedded Kafka.
Dùng LocalDate, ZonedDateTime và Duration đúng chỗ: tính ngày, đổi múi giờ, xử lý giờ mùa hè và viết test ổn định với Clock.
Dùng mapped types và conditional types để sinh kiểu tự động từ kiểu có sẵn, kèm infer, key remapping, kiểm thử kiểu và các lỗi hay gặp.
Cách xây dựng worker pool trong Go bằng channel, sync.WaitGroup, context và errgroup để xử lý song song có giới hạn, có hủy và có kiểm thử.
Hiểu Global Interpreter Lock của CPython, vì sao thread không tăng tốc code CPU-bound, khi nào dùng threading, multiprocessing và bản build free-threaded.
So sánh List.of, List.copyOf và Collections.unmodifiableList: cái nào là bản sao, cái nào chỉ là view, xử lý null ra sao, và khi nào dùng cái nào.
Dùng Pageable, Page, Slice và Sort của Spring Data JPA để phân trang và sắp xếp dữ liệu, từ repository tới REST controller, kèm test và các lỗi hay gặp.
Go không có kế thừa. Bài này giải thích struct embedding, cách method được "thăng cấp", bẫy ghi đè method và cách kết hợp embedding với interface.
Hiểu cơ chế defer, panic, recover trong Go, các bẫy hay gặp, và khi nào nên trả về error thay vì panic.
Hướng dẫn đóng gói một thư viện Python với pyproject.toml, build wheel, kiểm thử trên TestPyPI và phát hành lên PyPI bằng token hoặc Trusted Publishing.
So sánh các loại thread pool trong Java 21: fixed, cached, scheduled, work-stealing, virtual thread. Cách tự cấu hình ThreadPoolExecutor và dùng an toàn trong Spring Boot.
Cách @Transactional hoạt động qua proxy, cùng các bẫy hay gặp như self-invocation, checked exception, rollback-only và test che lỗi.
Phân biệt checked và unchecked exception, chọn đúng loại, thiết kế exception riêng có ngữ cảnh và tránh các anti-pattern hay gặp.
Vì sao threading không tăng tốc code nặng CPU, và cách dùng multiprocessing, Pool, ProcessPoolExecutor để tận dụng mọi nhân CPU.
Hướng dẫn dùng pprof để thu và đọc profile CPU, heap, goroutine, block, mutex trong ứng dụng Go, từ HTTP service tới benchmark.
Cách dùng @Scheduled với fixedRate, fixedDelay và cron, cấu hình thread pool, xử lý lỗi, viết test và các lỗi hay gặp khi chạy tác vụ định kỳ.
Dùng Comparator.comparing, thenComparing, reversed và nullsLast để sắp xếp theo nhiều tiêu chí, kèm các lỗi hay gặp khi dùng.