Backend

99 Ngày Java — Ngày 99: Tổng kết và Lộ trình Tiếp theo

SSite Admin
3 tháng 11, 2026 4 phút đọc 4 lượt xem
99 Ngày Java — Ngày 99: Tổng kết và Lộ trình Tiếp theo

Đây là bài cuối của 99 Ngày Java. Từ biến và vòng lặp ở ngày đầu tiên, bạn đã đi qua hướng đối tượng, collections, stream, concurrency, JVM và design pattern. Bài này không thêm kiến thức mới: nó sắp lại những gì đã học thành một bản đồ, đề xuất một dự án để kiểm chứng, và chỉ ra bước tiếp theo hợp lý nhất.

Tổng kết và Lộ trình Tiếp theo

1. Mười chặng đã đi qua

Series chia thành mười giai đoạn, mỗi giai đoạn dựa trên giai đoạn trước. Nếu một mục dưới đây còn mơ hồ, đó là chỗ nên đọc lại trước khi đi tiếp.

  • Ngày 1–10, nền tảng ngôn ngữ: JVM, kiểu dữ liệu, toán tử, điều kiện, vòng lặp, mảng, phương thức.

  • Ngày 11–20, hướng đối tượng: lớp, đóng gói, kế thừa, đa hình, interface, record.

  • Ngày 21–30, Core API: xử lý chuỗi, enum, equals và hashCode, java.time, BigDecimal, regex.

  • Ngày 31–40, Collections và Generics: List, Set, Map, Queue, Comparator, wildcard.

  • Ngày 41–50, Exception và I/O: xử lý lỗi, try-with-resources, file với java.io và NIO.2, JSON, logging.

  • Ngày 51–60, lập trình hàm: lambda, functional interface, Stream API, Collectors, Optional.

  • Ngày 61–70, Concurrency: thread, synchronized, executor, CompletableFuture, lock, virtual thread.

  • Ngày 71–80, JVM chuyên sâu: bộ nhớ, GC, class loading, JIT, profiling.

  • Ngày 81–90, Java hiện đại và công cụ: var, switch, sealed, Maven, Gradle, JUnit, Mockito.

  • Ngày 91–99, design pattern và thực chiến: SOLID, các mẫu phổ biến, reflection, JDBC, HTTP.

2. Capstone: một ứng dụng không dùng framework

Đọc hiểu chưa phải là làm được. Hãy xây một ứng dụng quản lý chi tiêu cá nhân chỉ bằng JDK cùng vài thư viện đã học, không dùng Spring. Giới hạn đó buộc bạn tự làm những việc framework thường làm thay, và đó chính là phần học được nhiều nhất. Chia thành các mốc nhỏ và hoàn thành từng mốc trước khi sang mốc sau.

  • Mốc 1: mô hình domain bằng record và sealed interface; quy tắc nghiệp vụ có unit test bằng JUnit 5.

  • Mốc 2: lưu vào PostgreSQL bằng JDBC và HikariCP, có transaction; test tích hợp với database thật.

  • Mốc 3: giao diện dòng lệnh, đọc cấu hình từ biến môi trường.

  • Mốc 4: lấy tỷ giá từ một API công khai bằng HttpClient, có timeout và xử lý lỗi; bọc sau một interface và mock khi test.

  • Mốc 5: báo cáo theo tháng bằng Stream API; nhập file CSV lớn mà không nạp hết vào bộ nhớ.

  • Mốc 6: build bằng Maven hoặc Gradle, chạy test trong CI, đóng gói thành một file jar chạy được.

3. Tự đánh giá

Khi capstone chạy được, hãy tự hỏi những câu mà người review sẽ hỏi. Nếu trả lời được bằng cách chỉ vào code của mình, bạn đã thật sự nắm phần đó.

  • Lớp nào bất biến, và vì sao những lớp còn lại thì không?

  • Nếu API tỷ giá treo, chương trình của bạn chờ bao lâu rồi làm gì?

  • Hai lệnh ghi cùng lúc có làm sai số dư không?

  • Thêm một loại giao dịch mới thì phải sửa bao nhiêu file?

  • Test nào sẽ đỏ nếu bạn đổi quy tắc làm tròn tiền?

sealed interface Transaction permits Income, Expense, Transfer {
    Money amount();
    LocalDate date();
}

record Income(Money amount, LocalDate date, String source) implements Transaction {}
record Expense(Money amount, LocalDate date, Category category) implements Transaction {}
record Transfer(Money amount, LocalDate date, AccountId to) implements Transaction {}

4. Lộ trình sang Spring và xa hơn

Bước tiếp theo tự nhiên nhất là Spring Boot, vì phần lớn công việc backend Java dùng nó. Bạn sẽ thấy những thứ quen thuộc ở dạng tự động: dependency injection thay cho việc tự nối đối tượng, Spring Data thay cho JDBC viết tay, @Transactional thay cho commit và rollback. Series 99 Ngày Spring trên blog này đi song song từ ngày đầu và giả định đúng nền tảng bạn vừa có.

  • Bắt đầu 99 Ngày Spring từ Ngày 01: Spring là gì và vì sao ra đời.

  • Viết lại capstone bằng Spring Boot và so sánh hai phiên bản.

  • Học SQL và thiết kế database nghiêm túc; đây là kỹ năng dùng lâu nhất.

  • Đọc series 50 Ngày System Design khi bắt đầu nghĩ về nhiều service.

  • Mỗi sáu tháng xem các JEP mới của bản JDK vừa phát hành.

Cảm ơn bạn đã đi hết 99 ngày. Kiến thức chỉ thành kỹ năng khi được dùng, nên hãy bắt đầu capstone ngay hôm nay. Hẹn gặp lại ở series 99 Ngày Spring.

Tài liệu đối chiếu

  • https://dev.java/learn/

  • https://mot-dev-95.vercel.app/tag/spring

S

Site Admin

Engineer and writer. Building things with TypeScript and distributed systems.

Bình luận (0)

Bạn cần đăng nhập bằng Google để bình luận.

Hãy là người bình luận đầu tiên.

Bài viết liên quan

99 Ngày Spring — Ngày 99: Capstone và Tổng kết

Nhìn lại mười chặng của 99 Ngày Spring, đề bài capstone một hệ microservice nhỏ và lộ trình học tiếp.

3 thg 11, 20264 phút5
99 Ngày Spring — Ngày 98: Best Practices Tổng hợp

Cấu trúc project chuẩn, những lỗi Spring hay gặp nhất và một checklist review dùng được ngay cho pull request.

2 thg 11, 20263 phút6
99 Ngày Java — Ngày 98: HTTP Client

java.net.http với HttpClient, HttpRequest và HttpResponse: gọi đồng bộ, bất đồng bộ, timeout, xử lý lỗi và gọi một REST API thực tế.

2 thg 11, 20263 phút7