Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Lập trình Java Backend Full Steps
Highest Rated
Rating: 4.4 out of 5(81 ratings)
796 students

Lập trình Java Backend Full Steps

Viết tài liệu yêu cầu, thiết kế infra, thiết kế database, thiết kế UI/UX, Phát triển Ứng dụng, Triển khai CI/CD
Created byTây Java
Last updated 9/2025
Vietnamese

What you'll learn

  • Viết tài liệu đặc tả yêu cầu của dự án
  • Thiết kế hạ tầng để triển khai ứng dụng
  • Thiết kế kiến trúc và mô hình phần mềm
  • Thiết kế database chuyên nghiệp, tìm hiểu về database phân quyền RBAC
  • Thiết kế giao diện UI/UX với figma
  • Nắm rõ các thành phần, tiêu chuẩn chất lượng về một Backend Service tốt
  • Tạo project base chuẩn với đầy đủ các thành phần của Backend Service chất lượng cao dễ dàng sử dụng, phát triển và triển khai sản phẩm
  • Thành thạo kỹ nẵng viết API chuẩn RESTful với các method: GET, POST, PUT, PATCH và DELETE
  • Thành thạo kỹ năng DEBUG, validate và xử lý ngoại lệ để ứng dụng không bị dừng đột ngo
  • Xây dựng chức năng gửi email hàng loạt với sendGrid
  • Xây dựng chức năng xác thực và phân quyền cho User với mô hình RBAC
  • Xây dựng chức năng logging cho ứng dụng với ELK
  • Xây dựng chức năng giám sát hệ thống với Grafana và Prometheus
  • Build, đóng gói ứng dụng và push lên dockerhub
  • Triển khai ứng dụng trên môi trường Dev, Test, UAT
  • Thiết lập CI/CD Pipeline với Jenkins

Course content

1 section25 lectures20h 10m total length
  • Viết tài liệu đặc tả yêu cầu dự án1:35:00

    Hướng dẫn viết tài liệu đặc tả các yêu cầu chức năng, phi chức năng để chuyển giao cho khách hàng

  • Review tài liệu học viên: Các lỗi phổ biến khi viết tài liệu8:07

    Nội dung tham khảo: Review tài liệu đặc tả yêu cầu dự án của học viên lớp B2

  • Thiết kế hạ tầng để triển khai ứng dụng1:24:56

    Hướng dẫn thiết kế hạ tầng infra để triển khai ứng dụng Backend Service

  • Thiết kế kiến trúc và mô hình ứng dụng1:12:00

    Hướng dẫn thiết kế kiến trúc và mô hình ứng dụng

  • Thiết kế database với công cụ dbdiagram và tìm hiểu mô phân quyền RBAC52:20

    Hướng dẫn phân tích thiết kế database chuyên nghiệp

  • Tạo project base với Spring Boot50:30

    Hướng dẫn tạo project base chuẩn như trong các dự án thực tế

  • Các thành phần của một Backend Service trong dự án thực tế29:09

    Giải thích chi tiết về các yếu tố cấu thành nên một Backend service hoàn chỉnh, chất lượng cao dễ dàng sử dụng, tích hợp và chuyển giao cho khách hàng

  • Cấu hình kết nối database và code mẫu Restful API1:16:08

    Hướng dẫn viết code mẫu RESTful API với mockup data

  • Viết api tạo mới user và quản lý transaction1:16:36
    1. Hướng dẫn viết API tạo mới user chuẩn RESTful

    2. Hướng dẫn sử dụng và quản lý @Transactional của Spring Boot

  • Viết api cập nhật và xoá user34:11

    Viết API cập nhật và xoá user

  • Viết api lấy danh sách user và tìm kiếm user1:17:46

    Viết API lấy danh sách và tìm kiếm user

  • Hướng dẫn validate, xử lý ngoại lệ và debug với IntelliJ41:56
    1. Validate dữ liệu từ API

    2. Handle exception - xử lý ngoại lệ xảy ra khi chạy ứng dụng

    3. Hướng dẫn chạy debug mode với IntelliJ

  • Gửi email với SendGrid34:44
    1. SendGrid là gì?

    2. Các tính năng của SendGrid

    3. Tích hợp SendGrid vào Spring Boot

  • Xác thực email người dùng với SendGrid Dynamic Template42:53
    1. Tạo Dynamic Template HTML

    2. Xây dựng chức năng gửi mail với Dynamic Template

    3. Tích hợp chức năng gửi email vào api tạo mới user

    4. Viết API confirm email

    Source code: https://github.com/luongquoctay87/backend-service/tree/email-verification

  • Tổng quan về Spring Security, Tích hợp Spring Security vào Spring Boot41:03
    1. Spring Security là gì?

    2. Giải thích về mô hình Oauth Token

    3. Tích hợp Spring Security vào Spring Boot

  • Tạo Access Token và Refresh Token56:26
    1. Tạo Access token

    2. Tạo Refresh Token

    3. Verify Token

    4. Xác thực User

  • Phân quyền cho User theo mô hình RBAC55:58

    Hướng dẫn phân quyền cho User mô hình phân quyền RBAC

  • Hướng dẫn viết unit test với Junit 51:10:41
    1. Unit test là gì?

    2. Đặc điểm của Unit test

    3. Lợi ích của Unit test

    4. Viết unit test với Junit 5

  • Hướng dẫn nâng cao chất lượng code với SonaLint29:07
    1. SonarLint là gì?

    2. Tính năng chính của SonarLint

    3. Lợi ích của việc sử dụng SonarLint

    4. Cách sử dụng SonarLint

    5. Khi nào nên dùng SonarLint?

    6. Tối ưu code Backend Service với SonarLint

  • Hướng dẫn thiết lập và quản lý log với Elasticsearch + Logstash + Kibana (ELK)36:21
    1. ELK là gì?

    2. Tổng quan về kiến trúc của ELK

    3. Tích hợp ELK vào Spring Boot

  • Xây dựng chức năng giám sát hệ thống với Grafana và Prometheus30:20
    1. Grafana là gì?

    2. Prometheus là gì?

    3. Các bước tích hợp Grafana, Prometheus vào Spring Boot

    4. Trực quan hoá hệ thống giám sát ứng dụng trên browser

  • Đóng gói ứng dụng với Google Jib24:39
    1. Giới thiệu về Google Jib

    2. Cấu hình Jib với Spring Boot

    3. Demo đóng gói với Google Jib

  • Tổng quan về CI/CD, Jenkins server, Jenkins Pipeline25:03

    1. Jenkins là gì?

    Jenkins là một công cụ mã nguồn mở dùng để tự động hóa quá trình triển khai phần mềm, đặc biệt là trong việc thiết lập quy trình CI/CD (Continuous Integration/Continuous Delivery). Được viết bằng Java, Jenkins có khả năng tích hợp với rất nhiều công cụ và hệ thống khác để hỗ trợ việc xây dựng, kiểm thử và triển khai ứng dụng một cách tự động, liên tục.

    Jenkins là một công cụ quan trọng trong DevOps và thường được dùng trong các hệ thống lớn để giảm thiểu thời gian và công sức cần thiết cho việc kiểm thử, xây dựng và triển khai phần mềm, từ đó giúp nâng cao chất lượng sản phẩm và tăng tốc độ ra mắt.

    2. Các tính năng của Jenkins

    1. Tích hợp liên tục (Continuous Integration – CI): Jenkins tự động hóa quá trình tích hợp mã mới, kiểm thử và xây dựng ứng dụng khi có thay đổi trên các nhánh mã. Điều này giúp phát hiện lỗi sớm trong quá trình phát triển, cải thiện chất lượng mã, và giảm thiểu rủi ro tích hợp.

    2. Triển khai liên tục (Continuous Delivery – CD): Jenkins hỗ trợ triển khai liên tục bằng cách tự động hóa quá trình triển khai ứng dụng lên các môi trường khác nhau (như staging, UAT, production). Nhờ đó, các nhóm phát triển có thể triển khai phần mềm thường xuyên hơn và ít gặp sự cố hơn.

    3. Pipeline as Code: Jenkins cho phép định nghĩa pipeline (các bước trong quy trình CI/CD) dưới dạng mã, thường được viết trong tệp Jenkinsfile. Điều này giúp tạo ra quy trình CI/CD nhất quán, dễ dàng quản lý và chia sẻ giữa các dự án.

    4. Xây dựng và kiểm thử tự động: Jenkins có khả năng tích hợp với các công cụ kiểm thử tự động như JUnit, Selenium và các công cụ kiểm thử khác. Nhờ vậy, Jenkins có thể chạy các bộ kiểm thử tự động mỗi khi có thay đổi mã nguồn, giúp đảm bảo tính ổn định của ứng dụng.

    5. Quản lý plugins: Jenkins có một hệ sinh thái plugin phong phú giúp mở rộng chức năng, hỗ trợ tích hợp với nhiều công cụ khác nhau như Git, Docker, Kubernetes, Maven, Slack và nhiều công cụ DevOps khác.

    6. Quản lý người dùng và quyền truy cập: Jenkins hỗ trợ phân quyền người dùng và nhóm người dùng khác nhau. Điều này giúp quản lý quyền truy cập vào các dự án, pipeline và các tài nguyên trong Jenkins một cách hiệu quả và bảo mật.

    7. Tích hợp với các hệ thống kiểm soát phiên bản: Jenkins dễ dàng tích hợp với các hệ thống quản lý mã nguồn như Git, SVN, Mercurial, giúp tự động lấy mã nguồn từ các kho lưu trữ để xây dựng và kiểm thử.

    8. Quản lý đa nhánh và đa pipeline: Jenkins cho phép tạo và quản lý nhiều pipeline cùng lúc cho các nhánh mã khác nhau, hoặc cho các dự án khác nhau trong cùng một hệ thống.

    9. Giám sát và thông báo: Jenkins có thể giám sát và gửi thông báo khi một pipeline hoàn thành hoặc gặp lỗi, thông qua email, Slack, hoặc các công cụ chat khác. Điều này giúp các nhóm phát triển nhanh chóng nhận biết và xử lý sự cố.

    10. Tích hợp với Docker và Kubernetes: Jenkins có thể kết hợp với Docker để xây dựng và triển khai các container, hoặc với Kubernetes để triển khai và quản lý các ứng dụng trong môi trường Kubernetes.

  • Triển khai CI/CD Pipeline với Jenkins55:47
    1. Tổng quan về Jenkins, Jenkins Pipeline, Jenkinsfile

    2. Cài đặt Jenkins

    3. Viết Pipeline để triển khai ứng dụng Spring Boot

  • Giới thiệu khoá học Microservices Full Series9:09

    ? Tại sao nên học Microservice?

    Trong kỷ nguyên công nghệ phát triển nhanh chóng, Microservice trở thành kiến trúc được các “ông lớn” như Netflix, Amazon, Google áp dụng để xây dựng hệ thống linh hoạt – dễ mở rộng – dễ bảo trì.Với Microservice Architecture, bạn sẽ có thể:

    • Thiết kế hệ thống linh hoạt, dễ dàng tích hợp với Docker, Kubernetes, Cloud.

    • Tăng tốc độ phát triển & triển khai: update một service mà không ảnh hưởng đến toàn bộ hệ thống.

    • Giảm thiểu rủi ro nhờ tính độc lập giữa các service.

    • Xây dựng hệ thống ổn định, dễ mở rộng, đáp ứng nhu cầu kinh doanh toàn cầu.

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

    • Lập trình viên muốn nâng cao kiến thức về kiến trúc hệ thống & thiết kế ứng dụng.

    • Kỹ sư phần mềm đang cần triển khai ứng dụng linh hoạt, dễ mở rộng.

    • Nhà phát triển ứng dụng muốn áp dụng Microservice vào dự án thực tế.

    ? Bạn sẽ học được gì từ khóa học?

    ? Phần 1: Kiến Thức Nền Tảng Microservice

    • Hiểu về Monolithic và hạn chế của nó.

    • Tổng quan kiến trúc Microservice và lợi ích vượt trội.

    • Yếu tố quan trọng để chuyển đổi từ Monolithic sang Microservice.

    ? Phần 2: Thiết Kế Microservice

    • Phân chia hệ thống thành các service độc lập hợp lý.

    • Giao tiếp giữa service: REST, gRPC, Message Queue.

    • Thiết kế cơ sở dữ liệu phân tán, quản lý phiên bản dữ liệu.

    • Giải quyết vấn đề đồng bộ hóa & trạng thái hệ thống.

    ? Phần 3: Xây Dựng & Triển Khai

    • Xây dựng service độc lập với Spring Boot 3.xx.

    • Triển khai trên Docker, Kubernetes.

    • Quản lý lỗi & tối ưu hiệu suất hệ thống phân tán.

    • Tích hợp Prometheus, ELK stack để giám sát & logging.

    ? Phần 4: Vận Hành & Mở Rộng

    • Quản lý cấu hình động & điều phối dịch vụ.

    • Load balancing, auto-scaling, fault recovery.

    • Xử lý các thách thức thực tế: tính nhất quán dữ liệu, giao dịch phân tán, bảo mật microservice.

    ? Điểm khác biệt của khóa học

    • Công nghệ mới nhất: Spring Boot 3, Java 17, JPA, RESTful API, PostgreSQL, MongoDB, Kafka, Redis, RabbitMQ, gRPC, Circuit Breaker, Docker, Kubernetes, Helm, AWS, ELK, ArgoCD, CI/CD Pipeline…

    • Kiến thức chuyên sâu – thực tế: Áp dụng các best practice đã triển khai trong hệ thống hàng triệu người dùng.

    • Giảng viên thực chiến: Học cùng Tây Java – lập trình viên với 15 năm kinh nghiệm, từng thiết kế & triển khai hệ thống lớn toàn cầu.

    • Lộ trình rõ ràng: Từ cơ bản → nâng cao, học từng bước chắc chắn.

    • Thực hành dự án thực tế: Mô phỏng hệ thống microservice như tại doanh nghiệp lớn.

    ? Kết quả sau khóa học

    • Hiểu sâu về Microservice Architecture và biết cách triển khai thực tế.

    • Làm chủ Spring Boot Microservice kết hợp Docker, Kubernetes, CI/CD.

    • Tích hợp & triển khai các công cụ giám sát: Prometheus, ELK stack.

    • dự án thực hành quy mô lớn để bổ sung vào CV.

    • Sẵn sàng trở thành Backend Developer / System Architect trong các công ty lớn.

    ? Đây là khóa học Microservice với Java Spring Boot toàn diện nhất, giúp bạn từ nắm kiến thức – triển khai dự án – đến thực hành trên công nghệ mới nhất.

    ? Link khoá học: https://vi.tayjava.com/courses/microservice-full-series

Requirements

  • Đã code được Spring Boot hoặc đã tham gia các khoá học của Tây Java như: Lập trình Java Backend chuyên sâu

Description

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

  • Người mới bắt đầu muốn học lập trình backend từ đầu.

  • Lập trình viên đã có kiến thức cơ bản về Java và muốn chuyên sâu vào backend.

  • Kỹ sư phần mềm đang tìm kiếm các giải pháp tối ưu cho hệ thống backend của mình.

  • Sinh viên công nghệ thông tin muốn chuẩn bị kiến thức thực tiễn cho công việc sau khi ra trường.


2. Nội dung khóa học có gì đặc biệt ?

Phần 1: Xây Dựng Ứng Dụng Backend Với Java

  • Spring Framework: Học cách sử dụng Spring Boot, một trong những framework mạnh mẽ nhất dành cho lập trình backend với Java.

  • Thiết kế API RESTful: Hướng dẫn chi tiết cách xây dựng và triển khai API REST – xương sống của các hệ thống backend hiện đại.

  • Tương tác với cơ sở dữ liệu: Sử dụng JPAHibernate để quản lý dữ liệu và thao tác với các bảng trong cơ sở dữ liệu.

Phần 2: Xử Lý Bảo Mật Và Quản Lý Dữ Liệu

  • Bảo mật ứng dụng: Tìm hiểu cách bảo mật API, xác thực người dùng với JWT (JSON Web Token) và bảo mật hệ thống bằng Spring Security.

  • Quản lý dữ liệu: Học cách xử lý truy vấn dữ liệu phức tạp, tối ưu hóa cơ sở dữ liệu và sử dụng Redis để lưu trữ dữ liệu tạm thời (cache).

Phần 3: Xây Dựng Ứng Dụng Thực Tế

  • Triển khai dự án hoàn chỉnh: Bạn sẽ được hướng dẫn từ A đến Z cách xây dựng một hệ thống backend thực tế, bao gồm quản lý người dùng, xác thực và lưu trữ dữ liệu.

  • Triển khai ứng dụng: Sử dụng Docker để triển khai ứng dụng Java của bạn lên môi trường production.

Phần 4: Kỹ Thuật Tối Ưu Và Mở Rộng Hệ Thống

  • Cân bằng tải và tối ưu hiệu suất: Học cách xây dựng các hệ thống chịu tải lớn, tối ưu tốc độ xử lý, và cân bằng tải giữa các server.

  • Phân tích và giám sát: Sử dụng các công cụ như Prometheus, Grafana để giám sát và phân tích hiệu suất hệ thống.

Who this course is for:

  • Sinh viên, Fresher, Người chuyển nghề và Junior Java Develop muốn nâng cao kỹ năng lập trình Java Backend