강의

멘토링

커뮤니티

NEW
Programming

/

Web Development

[Java Dự án Thực tế Nâng cao] Xây dựng Hệ thống Kiosk Food Truck dựa trên Spring Core + H2

Khóa học dự án Java nâng cao dành cho các lập trình viên mới bắt đầu muốn phát triển cảm giác thực tế! Cùng nhau xây dựng hệ thống đặt hàng kiosk dựa trên console được cấu thành từ Spring Core, JdbcClient, H2 DB.

10 học viên đang tham gia khóa học này

  • Kevin
Java
Spring Boot
DDD
h2db
spring-framework

Dịch cái này sang tiếng Việt

  • Phương pháp phân tích yêu cầu và cấu trúc hóa theo đơn vị chức năng

  • Phương pháp phân tách giao diện console theo góc nhìn khách hàng/quản trị viên và chia chức năng theo hướng domain-centric

  • Khả năng tư duy thiết kế ứng dụng phức tạp theo từng đơn vị domain

  • Ứng dụng thực tế của thiết kế dựa trên miền

  • Kinh nghiệm thực hành tích hợp DB với JdbcClient trong môi trường Spring Core

  • Khả năng triển khai hệ thống đặt hàng/bán hàng dựa trên console hoạt động như dịch vụ thực tế

  • Khả năng cấu thành logic điều khiển sự thay đổi trạng thái và luồng xử lý vượt ra ngoài các thao tác CRUD cơ bản

  • Phân biệt vai trò của class và record

  • Sử dụng thực tế của việc so sánh tính bằng nhau/tính đồng nhất của đối tượng bằng equals()

  • Kỹ thuật tổng quát hóa sử dụng mẫu Template/Callback

[Java 실무 프로젝트 심화편] Xây dựng hệ thống kiosk xe bán đồ ăn dựa trên Spring Core + H2

"Hãy nâng cao khả năng triển khai thực tế với dự án hệ thống đặt hàng sử dụng Java và Spring Core!"


Khóa học này là một dự án thực hành xây dựng trực tiếp ứng dụng kiosk xe bán đồ ăn dựa trên console.
Được chuẩn bị dành cho những người mới bắt đầu đã có nền tảng Java cơ bản, hoặc những ai đã học một chút Spring nhưng chưa tự tin trong việc triển khai ứng dụng thực tế.
Dựa trên kinh nghiệm dự án cơ bản đã học ở phần 1, lần này chúng ta sẽ sử dụng Spring Core, JdbcClient, cơ sở dữ liệu H2 để triển khai từng bước hệ thống đặt hàng phức tạp hơn.

Trong khóa học này, bạn có thể trực tiếp triển khai luồng đặt hàng thông qua kiosk xe bán đồ ăn thực tế như thế này bằng Java và Spring Core.

⭐Tại sao cần phải hiểu về domain đặt hàng?

'Đơn hàng' domain là chức năng cốt lõi không thể thiếu trong hầu hết các ứng dụng thực tế như thương mại điện tử, ứng dụng giao hàng, hệ thống đặt chỗ, kiosk, hệ thống POS, v.v.
Đây là chức năng cốt lõi không thể thiếu.


Không chỉ đơn thuần ở mức độ "thêm sản phẩm vào giỏ hàng và thanh toán", mà còn chứa đựng tất cả những logic kinh doanh phức tạp như dưới đây.

  • Tách biệt luồng từ góc độ người dùng/quản trị viên

  • Giỏ hàng → Thanh toán → Thay đổi trạng thái đơn hàng → Hoàn thành giao hàng/xử lý đơn hàng

  • Xử lý chuyển đổi trạng thái như sửa đổi đơn hàng, hủy bỏ, hoàn trả

  • Tích hợp thanh toán và quản lý luồng phản hồi

  • Lịch sử đơn hàng và xử lý thống kê

Kinh nghiệm trực tiếp thiết kế và triển khai 'luồng đặt hàng' như vậy
sẽ trở thành bước đệm quan trọng để phát triển thành "nhà phát triển có thể tạo ra ứng dụng thực sự" chứ không chỉ là CRUD đơn thuần.


Thông qua khóa học này, hãy thành thạo 'kiến thức cơ bản về domain đặt hàng'.

Tôi tin chắc rằng điều này sẽ giúp các bạn cất cánh trên con đường trở thành nhà phát triển Java.

🧱 Đặc điểm khóa học

  • Thực hành tập trung vào dự án:
    Không chỉ là làm theo, mà là cấu trúc tập trung vào thực hành, nơi học viên sẽ suy nghĩ và triển khai trước theo các yêu cầu đã cho.

  • Học trước → Tự thực hiện → Giải thích cách thực hiện:
    Nếu có công nghệ cần thiết trong bài giảng, sẽ có bài học riêng để nắm khái niệm trước,
    học viên tự thực hiện trước, sau đó so sánh học tập với code và giải thích phiên bản của giảng viên.

  • Thiết kế hướng thực tiễn:
    Được cấu trúc để bạn có thể trải nghiệm toàn bộ quy trình từ phân tích yêu cầu, cấu trúc hóa, triển khai đến kiểm thử theo đúng luồng công việc thực tế.

✨ Điểm phát triển sau khi hoàn thành khóa học

  • Java + Spring Core được cấu trúc thành ứng dụng thông qua việc cải thiện tư duy tập trung vào domain để tích lũy kinh nghiệm triển khai

  • Nâng cao khả năng triển khai/thiết kế để rèn luyện cảm giác thực tế backend

  • Tăng cường thể lực cơ bản cho phát triển ứng dụng web

  • Không chỉ là ngữ pháp đơn thuần mà có được sự tự tin rằng có thể tạo ra chương trình thực tế

👀[Xem trước video highlight] Từ thiết kế đến triển khai

🎬 Video nổi bật 'Giai đoạn phân tích yêu cầu'


🎬 Video nổi bật 'Giai đoạn thiết kế ứng dụng'

🎬 Video nổi bật 'Xây dựng cấu trúc cơ bản theo từng layer'

🎬 Video nổi bật 'Triển khai logic theo lớp cho chế độ khách hàng'

🎬 Video nổi bật 'Tái cấu trúc mã nguồn'

🧰 Công nghệ sử dụng

  • Java 17+

  • Spring Framework Core

  • Spring JdbcClient

  • H2 In-Memory Database

  • JUnit framework kiểm thử

  • Thiết kế dựa trên Domain-Driven Design (DDD)

  • Cấu trúc kiến trúc phân lớp

👨‍🏫 Chúng tôi khuyến nghị cho những người như thế này

  • Những người biết cú pháp Java nhưng không tự tin khi triển khai dự án thực tế

  • Những người đã học Spring Core nhưng thiếu kinh nghiệm ứng dụng trực tiếp

  • Những người muốn tạo ra ứng dụng thực sự hoạt động dựa trên console

  • Những người muốn xây dựng nền tảng vững chắc với tư cách là nhà phát triển backend Java

  • Những ai đã hoàn thành khóa học Phần 1 và muốn thử thực hiện các hệ thống phức tạp hơn

❤️ Tấm lòng chân thành của giảng viên

Khóa học này được chuẩn bị để thoát khỏi việc đơn thuần 'copy code', mà thông qua việc trực tiếp thiết kế và triển khai ứng dụng, mang đến cho bạn trải nghiệm hoàn thành ứng dụng của riêng mình.

Dù là công nghệ tốt đến đâu, nếu bản thân tôi không thể suy nghĩ và vận dụng nó thì 'cũng giống như việc chỉ có thể ngây ngất nhìn ngắm màn pháo hoa rực rỡ mà không thể diễn tả được cảm xúc cảm động ấy ra bên ngoài'.


Không chỉ nhìn chằm chằm vào code mà để các bạn có thể trở thành 'người có thể viết code' trong thực tế, tôi sẽ giúp đỡ các bạn đến cùng để đây có thể là bước đầu tiên.

Đừng từ bỏ ước mơ trở thành nhà phát triển Java, hãy cố gắng hết mình đến cuối cùng và tôi hy vọng bạn nhất định sẽ có thể bước chân vào nghề lập trình viên!

✅ Bạn có thắc mắc gì không?

Q. Tôi chưa học phần 1, liệu chỉ nghe bài giảng này thôi có được không?

Có thể được.

Tuy nhiên, khóa học này có cấu trúc và công nghệ phức tạp hơn so với phần 1
nên nếu bạn chưa có kinh nghiệm về quy trình triển khai ứng dụng console cơ bản và phân tích yêu cầu, chúng tôi khuyến nghị bạn nên học phần 1 trước khi tiếp tục.

Q. JdbcClient là lần đầu tiên tôi nghe, có khó không?
JdbcClient là tính năng mới được giới thiệu từ Spring 6.1, ngắn gọn và trực quan hơn so với JdbcTemplate hiện có.

Bạn không cần lo lắng vì trong khóa học tôi sẽ giải thích cách sử dụng một cách từng bước một cách chi tiết.

Q. Đây là dự án console, có phải quá đơn giản không?
Vượt ra ngoài CRUD đơn giản, bạn sẽ trải nghiệm quản lý trạng thái đơn hàng, phân tách vai trò người dùng/quản trị viên, chức năng thống kê, v.v.
cùng với cấu trúc và thiết kế có thể áp dụng trực tiếp trong hệ thống web thực tế.

Khi bạn thực hiện thì sẽ thấy nó không đơn giản như nghĩ đâu.

Q. Tôi có thể sử dụng dự án này làm portfolio không?
Tất nhiên rồi.

Domain liên quan đến đơn hàng là domain thường thấy trong các dịch vụ web nên tôi nghĩ việc hiểu domain này là rất quan trọng.

Việc có thể triển khai hệ thống đặt hàng dựa trên console với UI không thuận tiện như thế này, nếu nghĩ ngược lại thì có thể tạo ấn tượng "Ah, người này đã học tập đúng cách để nắm vững những kiến thức cơ bản của Java", vì vậy tôi nghĩ đây có thể trở thành một portfolio tốt.

💡Lưu ý trước khi học

Môi trường thực hành

  • Hệ điều hành và phiên bản (OS)

    • Nếu là hệ điều hành trong môi trường PC thì dùng OS nào cũng được.

    • Tuy nhiên, cần có thể cài đặt JDK 17 trở lên và máy tính nên có đủ sức mạnh tính toán (CPU, bộ nhớ, v.v.) để chạy IntelliJ IDE một cách mượt mà trong quá trình thực hành.

  • Công cụ sử dụng

    • JDK 17(yêu cầu tối thiểu)

    • IntelliJ IDE

      • Trong khóa học sử dụng IntelliJ IDE phiên bản Ultimate nhưng bạn sử dụng phiên bản miễn phí Community cũng hoàn toàn không có vấn đề gì.

      • Ngay cả khi không sử dụng IntelliJ IDE, nếu bạn có công cụ chỉnh sửa code mà bạn sử dụng thành thạo (như Visual Studio Code, v.v.) thì cũng không có vấn đề gì khi sử dụng chúng.

    • Spring Boot 3.x trở lên

      • Trong khóa học sử dụng Spring Boot phiên bản 3.4.4 và nếu bạn sử dụng Spring phiên bản 3.x thì sẽ không có vấn đề gì khi học khóa học này.

    • Gradle 7.3 (yêu cầu tối thiểu) trở lên

      • JDK 17 tương thích với Gradle phiên bản 7.3 nên tôi đã đồng bộ phiên bản giữa hai công cụ này.

      • Nếu có vấn đề xảy ra do tính tương thích phiên bản thì bạn có thể tham khảo Java Compatibility và tốt nhất là nên khớp phiên bản càng nhiều càng tốt.

    • JUnit 5 (phiên bản tối thiểu) trở lên

Tài liệu học tập

Lưu ý

  • Nếu bạn muốn sử dụng tài liệu học tập và mã nguồn từ khóa học trên blog hoặc không gian cá nhân khác, bạn cần ghi rõ tiêu đề khóa học và tên giảng viên, đồng thời thêm liên kết đến khóa học. Ngoài ra, việc phân phối trái phép không được phép, mong bạn thông cảm.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người đã nắm vững cú pháp Java nhưng chưa có kinh nghiệm xây dựng ứng dụng thực tế

  • Những người đã biết các khái niệm cơ bản của Spring Core nhưng thiếu kinh nghiệm áp dụng trực tiếp

  • Những người muốn trải nghiệm toàn bộ quy trình từ phân tích yêu cầu, thiết kế đến triển khai như trong thực tế công việc

  • Những người muốn học logic kiểm soát sự thay đổi trạng thái và luồng domain vượt ra ngoài CRUD đơn giản

  • Những người đã hoàn thành khóa học Phần 1 và muốn học các cấu trúc và kỹ thuật phức tạp hơn

  • Những người muốn rèn luyện nền tảng cơ bản với dự án console trước khi phát triển ứng dụng web

  • Nhà phát triển junior muốn suy ngẫm "Tại sao code này lại được viết như vậy?" trong khi triển khai dự án

Cần biết trước khi bắt đầu?

  • Ngữ pháp Java và các khái niệm cơ bản của OOP

  • Kinh nghiệm sử dụng Spring Core (đăng ký Bean, DI, v.v.)

  • JDBC hoặc các khái niệm cơ bản về SQL

  • Kinh nghiệm triển khai dự án console đơn giản

Xin chào
Đây là

6,340

Học viên

235

Đánh giá

108

Trả lời

4.8

Xếp hạng

7

Các khóa học

- 주력 언어 또는 기술 : Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- (주)코드스테이츠(https://www.codestates.com)에서 Senior Educational Software Engineer(Backend)로 활동
(From 2022.03 To 2024.01.31)

- 프리랜서 개발자 및 강사로 활동(From 2024.02)

- 저서

안녕하세요? Kevin이라고 합니다. ^^

인프런에서 이렇게 강사로서 여러분들을 만나게 되어서 너무 반갑습니다.

어떤 분야든 마찬가지겠지만 특히나 소프트웨어 개발자는 끊임없이 변화하는 트렌드에 뒤처지지 않도록 항상 자기 자신을 갈고 닦는것이 개발자로써 살아남는 유일한 방법이라고 생각하며 항상 배우는 자세로 즐겁게 소프트웨어 개발을 하고 있는 개발자 중 한 명입니다.

제가 가지고 있는 지식과 경험이 다른 분들에게 조금이나마 도움이 되기를 바라면서 인프런에서 강좌를 시작하였습니다.

앞으로 수강생분들에게 현실적으로 도움이 되는 다양한 강좌로 꾸준히 찾아뵙도록 하겠습니다. 감사합니다.

 

질문이나 의견은 언제든지 환영하니, 이메일(it.village.host@gmail.com)로 편하게 얘기해주세요.

 

Chương trình giảng dạy

Tất cả

45 bài giảng ∙ (10giờ 35phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Ưu đãi có thời hạn

29 ₫

33%

1.163.444 ₫

Khóa học khác của Kevin

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!