Tập podcast của Tomasz Ptak bàn về tự động hóa Java 25 không phụ thuộc thư viện ngoài, event sourcing với Axon Framework, và chiến lược ổn định hệ thống Java cũ, đồng thời chia sẻ hành trình sự nghiệp từ Motorola Solutions đến cộng đồng AI của AWS.
Vì sao nên đọc: Lập trình viên Java nên theo dõi bài này để khám phá cách xây dựng hệ thống tự động hóa nhẹ nhàng, ứng dụng pattern event sourcing hiệu quả và giải pháp ổn định cho các hệ thống legacy bằng kiến thức từ chuyên gia có kinh nghiệm chuyển đổi công nghệ từ Motorola đến AWS.
Trả lời 3 câu hỏi ngắn để nhận điểm thưởng cho bài này. Chỉ làm khi bạn muốn lấy điểm.
3 câu hỏi · dưới một phút · không bắt buộc
Nguồn: https://adambien.blog/roller/abien/entry/zero_dependency_java_25_event_sourcing_and_stabilizing_leg. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Một kỹ sư front-end kỳ cựu chia sẻ cách áp dụng Domain-Driven Design (DDD) vào ứng dụng …
Một tác vụ bulk-import xử lý 15.000 template giao dịch đã khiến hệ thống crash do lỗi Cartesian product của Hibernate. JPQL query dùng JOIN FETCH trên hai collection cùng lúc khiến Hibernate cross-join chúng, biến ~11.000 bản ghi thành 50 triệu dòng trong bộ nhớ. Lỗi này không lộ ra trong test nhỏ vì các collection được mapping dưới dạng Set thay vì List (lẽ ra phải ném MultipleBagFetchException khi khởi động). Giải pháp là tách query thành hai lần fetch riêng biệt, dùng @BatchSize để tải batch, và flush/clear session Hibernate định kỳ trong quá trình import lâu dài, giúp giảm 9 lần số dòng và cải thiện tốc độ xử lý lên 15 lần.
Lập trình viên nên đọc bài này để tránh rủi ro như biến vấn đề JOIN FETCH thành Cartesian product khổng lồ, gây sập ứng dụng do quá tải bộ nhớ trong các dự án bulk import lớn.
Nguyên tắc DRY (Don't Repeat Yourself) quan trọng nhưng việc loại bỏ trùng lặp cũng có chi phí. Khi chia sẻ code giữa các service, lựa chọn giữa thư viện chung (gây coupling) hay microservice (thêm độ trễ mạng) đều có nhược điểm. Trong codebase, kế thừa tạo coupling cứng nhắc, trong khi composition linh hoạt nhưng phức tạp. Tốt nhất nên giữ trùng lặp cho đến khi có bằng chứng thực tế để tách thành abstraction phù hợp.
Lập trình viên nên đọc bài này để tránh rơi vào sai lầm về DRY quá cứng nhắc, vì sự trùng lặp có thể là dấu hiệu cần thiết cho sự linh hoạt và bảo trì hiệu quả hơn là cố gắng loại bỏ ngay từ đầu.

Mark Seemann cho rằng XML về mặt kỹ thuật vượt trội hơn JSON trong vai trò định dạng trao …

Một chuyên gia công nghệ với 20 năm kinh nghiệm lập luận rằng danh xưng "Full-Stack Developer" đang trở nên hạn chế, thay vào đó đề xuất khái niệm "Feature Expert" (Chuyên gia Tính năng). Giá trị cốt lõi không nằm ở ngôn ngữ hay framework mà ở khả năng nhận diện các mẫu vấn đề lặp đi lặp lại (tính toán giá, tối ưu tìm kiếm, caching) và giải quyết chúng bất kể tech stack. Bài viết khuyên các lập trình viên trình độ trung cấp nên tập trung vào cấu trúc dữ liệu và xây dựng kho kiến thức các vấn đề đã giải quyết thay vì tích lũy ngôn ngữ.
Là người muốn nâng cao hiệu quả làm việc và chuyên sâu trong các vấn đề thực tế như tính toán giá, tối ưu tìm kiếm hay quản lý bộ nhớ, bài viết này giúp bạn chuyển từ kiến thức kỹ thuật sang tư duy giải quyết vấn đề xuyên suốt các ngôn ngữ và công nghệ.

Bài viết bàn về nguy cơ "messy reasoning horizons" (các tầng lý luận lộn xộn) trong code khi sử dụng AI coding harnesses và LLMs, nơi những lớp lý luận sai lầm tích tụ dẫn đến quyết định thảm khốc. Tác giả chia sẻ trường hợp suýt sửa một vấn đề không tồn tại do đầu ra LLM không được xác thực, đồng thời đề xuất 5 biện pháp: không đưa ra giả định nào về ngữ cảnh lý luận, tác giả phải là người đầu tiên xem xét lại output của mình, ưu tiên các quy ước phần mềm mang tính xác định, tách biệt thử nghiệm khỏi sản xuất, và cấu trúc việc sử dụng LLM nhằm khám phá, tinh chỉnh thay vì đưa ra kết luận trực tiếp.
Lập trình viên nên đọc bài này để tránh rủi ro từ những quyết định sai lầm do messy reasoning—kết hợp sai lầm logic từ các tầng code—nên gây thiệt hại lớn hơn khi AI và LLM đưa ra kết luận không được kiểm chứng.
Java 26 bổ sung nhiều cải tiến về hiệu năng, bảo mật và tính năng ngôn ngữ. Đáng chú ý gồm: hạn chế sửa đổi phản chiếu (reflective) đối với trường final; loại bỏ API Applet lỗi thời; hỗ trợ AOT object caching cho mọi bộ thu gom rác (kể cả ZGC); bổ sung HTTP/3 qua QUIC trong HTTP Client API; cải thiện throughput cho G1 GC; phiên bản preview thứ hai của PEM encoding APIs; phiên bản preview thứ sáu của Structured Concurrency; phiên bản preview thứ hai của Lazy Constants; phiên bản incubator thứ mười một của Vector API; và phiên bản preview thứ tư mở rộng pattern matching cho kiểu nguyên thủy trong instanceof và switch.
Những cải tiến trong Java 26 giúp nâng cao hiệu suất thực hiện và bảo mật cho ứng dụng của bạn, từ đó tối ưu hóa hiệu suất công việc và giảm rủi ro khi phát triển.
Việc sử dụng thư viện open source trở nên tốn kém hơn do chi phí duy trì, kiểm toán và phụ thuộc, trong khi LLMs giúp viết code rẻ hơn đáng kể. Giờ đây, chỉ nên dùng thư viện cho các lĩnh vực nhạy cảm bảo mật hoặc phức tạp, còn code đơn giản nên tự phát triển với sự hỗ trợ của LLM.
Làm việc với các dự án nhỏ hoặc logic đơn giản, hiểu cách tối ưu hóa giữa sử dụng thư viện mở nguồn và viết lại từ đầu sẽ giúp bạn tiết kiệm thời gian và tránh rủi ro khi phụ thuộc vào các công cụ lớn mà không kiểm soát được.