Nội dung bài viết
Video học lập trình mỗi ngày
Đối với một cá nhân đang có vai trò chủ chốt trong dự án thì tôi không khuyến khích việc nâng cấp phiên bản mới nhất, ngược lại với dự án cá nhân tôi luôn khuyến khích các anh em luôn có thói quen sử dụng những phiên bản sớm nhất có thể.
Có những điều hay ở phía trước cần phải trang bị sẵn và nó đúng với việc tìm hiểu những phiên bản mới nhất. Ví dụ SpringBoot 4.0.
Vừa rồi Team Spring đã phát hành lúc nửa đêm các tính năng tôi đã nêu khá rõ bạn có thể xem lại: HOT 🙀🙀🙀Wow: JAVA - Spring Boot 4.0 - Khi cô gái không những NHUỘM tóc mà còn sơn móng chân
SpringBoot 4.0
Tôi rất hào hứng với phiên bản này, tôi đã đọc qua những tính năng thay đổi cho phiên bản mới, có những thứ thật sự đã vượt qua sự mong đợi. Mọi thứ trở nên nhanh hơn, ví dụ ở nodejs thì bạn chỉ cần node app.js hay go chúng ta chỉ cần go run . Nhưng với phiên bản hiện này thì việc khởi động Bean cũng khá là nhanh.
Vì vậy tôi hy vọng rằng chúng ta sẽ nâng cấp dự án DDD Project: Bán vé tàu tết lên version này. Tôi không thích các lộ trình được thiết kế sẵn, nơi mọi thứ được sắp xếp trước. Nếu bạn tuân thủ theo lịch trình và đủ kiên nhẫn thì tôi nghĩ bạn chắc chắn sẽ không mắc lỗi hoặc chí ít có lỗi thì cũng đủ sự bình tĩnh để fix nó một cách nhanh nhất có thể, nhưng tôi bet một khi bạn không đạt được sự kiên trì thì sẽ gặp phải vấn đề, bạn sẽ hoàn toàn mông lung và sẽ bỏ cuộc ngay từ những tính năng đơn giản nhất.
Tôi hy vọng bạn có sự sắp xếp riêng cho mình một khoảng thời gian, linh hoạt hơn, tự tin hơn và hoàn toàn làm chủ dự án của mình.
Vũ khí hiện tại đang có
Con đường trở thành backend với Nodejs
Con đường trở thành backend với Golang
Con đường trở thành backend với Java
Con đường trở thành backend với Nestjs
Tìm hiểu nâng cao về Message Queue Kafka vs RabbitMQ Multi Threads
Công nghệ sử dụng dự án
Ở version đầu tiên, bạn có thể cảm nhận được sức mạnh của những kiến trúc về phân tán , giúp hệ thống chịu đựng được throughput cao, và luôn đi kèm là hệ thống giám sát 24/24 để report về cho những người lập trình. Tôi chỉ có một chút thay đổi, thay vì Mybatis thì tôi sẽ sử dụng JPA cho dự án lần này.
Ngoài ra MySQL cũng thay bằng PostgreSQL vì sức mạnh của nó và ngoài ra tôi nghĩ tương lai mọi dự án sẽ nói về PostgreSQL nhiều hơn so với MySQL và Oracle.
Một điều chú ý khác đó là, ở version bán vé trước đây, tôi đã áp dụng cách mua vé placeTicket() theo trường phái hết hàng. Điều đó có nghĩa rằng, giả sử ngày 04/12/2025 chúng tôi đã chuẩn bị một kho dữ liệu và mở bán 1000 vé với giá đi từ HCM-HN với giá 100.000 VND. Khi khi mở bán chính thức ngày 07/12/2025 thì hệ thống nhận được 100.000 reqs vàp hệ thống, và tất nhiên trong sự kiện lần này chỉ có 1000 tickets vì vậy 99.000 users được trả lại với một thống báo Vé đã hết - Cảm ơn bạn - Chúc bạn may mắn.
Nếu luồng đi như vậy thì không lịch sử cho lắm, vì vậy trong phiên bản 4.0 này tôi sẽ thay đổi các hoạt động này đó chính là Cảm ơn bạn đã đặt hàng, đơn hàng của bạn đang được xử lý. Như vậy có thể là lịch sự hơn.
Thêm nữa, chính vì ngày từ đầu tôi đã xây dựng dự án theo kiến trúc DDD - Module xem hình dưới đây.

Đây cũng mở ra một cơ hội lớn cho các lập trình viên gần level này, họ yêu thích. Nhưng nhược điểm nó không phù hợp với nhiều các anh chị mới tiếp xúc với lập trình JAVA. Chính vì vậy tôi sẽ thay đổi nó mới một kiến trúc mới như sau.
Tôi nghĩ nó khá phù hợp với hiện tại.

Làm thế nào để tăng tính đồng thời trong dự án Spring Boot 4.0
Câu hỏi này tôi nhận rất nhiều không phải mỗi Spring Boot mà còn các dự án sử dụng các ngôn ngữ khác như là GO, hay Nodejs và dự án microservice đang triển khai ở Nestjs. Thì có chung một suy nghĩ như vậy. Trước tiên, tôi muốn nhấn mạnh hai điểm.
Một đó là khi học or tìm hiểu một vũ khí ngôn ngữ thì ưu tiên hàng đầu của vị trí backend là phải thành thạo về CURD. Sau đó, hãy tập trung xây dựng một CV xoáy sâu vào đó và tìm kiếm việc làm dựa trên nền tảng mà bạn từng làm qua. Đừng lo lắng về vấn đề Thiết kế hàng triệu users ở giai đoạn này.
Thứ hai, việc cải thiện đồng thời và chịu tải của hệ thống không phải là mỗi kỹ năng lập trình, mà là sử dụng kết hợp với nhiều hệ thống phân cụm và phân tán (hoặc các thành phần microservice) mà bạn thấy ở Nestjs đúng không? Nếu có thời gian, hãy xem qua một chút về Microservice của trybuy.
FrontEnd UI

Product service

Chat service

Architecture

Các lập trình viên Java nói riêng thường sử dụng Spring Boot để phát triển thường tập trung vào logic nghiệp vụ trong một hoặc hai năm đầu tiên làm việc. Tất nhiên nó bao gồm nhiều thao tác phải thành thạo như transaction, JPA, Mybatis và có thêm monitor...
Tóm lại, trước tiên họ cần làm quen với các quy trình nghiệp vụ khác nhau, và sau đó, quan trọng hơn, có khả năng giải quyết thành thạo các vấn để sự cố HOTFIX thì sẽ tốt hơn.
Tính đồng thời không phải là quan trọng nhất
Điều tôi muốn nói ở đây là các công nghệ liên quan đến tính đồng thời cao không phải là không quan trọng.
Đối với người mới bắt đầu, ưu tiên hàng đầu là làm quen với cách làm việc của một TEAM trong công ty và sau đó tìm cách tìm một nới có thể làm việc chuyên tâm dựa trên nền tảng đó, thay vì ép họ phải học các công nghệ liên quan đến tính đồng thời cao, vì điều đó sẽ không giúp ích nhiều cho họ trong việc thâm nhập vào ngành nghề lập trình viên.
Chúng ta sẽ gặp lại nhau ở phần tới của SpringBoot 4.0

