Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Programming

/

Back-end

Spring Boot TDD - Nhập môn đến Thực hành Chuẩn xác

Phát triển ứng dụng Spring Boot nhanh hơn và mạnh mẽ hơn. Thông qua giải thích lý thuyết chính xác và các bài thực hành liên kết ở cấp độ thực tế, bạn sẽ tự nhiên nắm vững các phương pháp hiệu quả để sử dụng TDD trong phát triển ứng dụng HTTP API.

(5.0) 30 đánh giá

408 học viên

  • gyuwon2187
스프링프레임워크
스프링부트
실습 중심
TDD
Spring Boot
JUnit
Architecture

Đánh giá từ những học viên đầu tiên

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

  • Phát triển thực chiến ứng dụng Web API Spring Boot bằng TDD

  • Lý thuyết TDD chính xác và cốt lõi

  • Cách sử dụng TDD mà không cần công cụ và thiết kế phức tạp

  • 요구사항을 충족시킨 후 설계를 개선하는 방법

  • Refactoring an toàn từ thiết kế đơn giản sang kiến trúc có cấu trúc

  • Đính chính hiểu lầm về TDD

Ngoài việc triển khai mã
Sức mạnh tạo ra giá trị sản phẩm

Với sự phát triển mạnh mẽ của các công cụ lập trình AI, cụm từ "kỷ nguyên viết mã tự động" đã xuất hiện. Tuy nhiên, điều thực sự quan trọng không phải là bản thân mã nguồn. Mà chính là khả năng thiết kế và kiểm thử, cho phép xác minh yêu cầu chính xác và cải tiến hệ thống ổn định.

Phát triển theo hướng kiểm thử (TDD) là một công cụ mạnh mẽ giúp bạn cải thiện hệ thống một cách ổn định dựa trên kiểm thử tự động. Không chỉ kiểm tra mã nguồn, TDD còn liên tục xác minh xem phần mềm có "hoạt động bình thường" hay không và định hướng phát triển theo đúng hướng.

TDD không còn là thói quen phát triển "dễ làm" nữa.
Đây là vũ khí mạnh mẽ giúp nhận ra giá trị của sản phẩm vượt ra ngoài mã .

Nếu bạn có kinh nghiệm này, tôi khuyên bạn nên thử.

Tôi đã làm theo các ví dụ và bài giảng một cách chính xác, nhưng tôi không thực sự cảm thấy cần phải áp dụng TDD.

Bởi vì tôi chỉ học TDD thông qua các kỹ năng và công cụ ,
Tôi cảm thấy bị hạn chế trong các dự án thực tế của mình.

Khi tôi cố gắng giới thiệu TDD, tôi cảm thấy bối rối vì cơ sở mã không xem xét đến việc thử nghiệm .

Tôi đã từng vội vàng áp dụng TDD vào một dự án , nhưng tất cả các bài kiểm tra đều hỏng nên tôi đã bỏ cuộc.

Vì vậy, chúng tôi đã xây dựng văn hóa TDD trong nhiều tổ chức khác nhau.
Tôi đã đưa 10 năm kinh nghiệm làm CTO vào bài giảng.

Giải thích chính xác lý thuyết TDD.

Để sử dụng TDD hiệu quả, điều quan trọng là phải hiểu các khái niệm cốt lõi và nguyên tắc thiết kế của nó, chứ không chỉ tập trung vào các kỹ thuật viết bài kiểm tra đơn giản, dựa trên kỹ năng. Khóa học này cung cấp nền tảng lý thuyết vững chắc cho TDD và thiết kế bài kiểm tra, mang đến phương pháp học tập dựa trên khái niệm, giúp tránh những hiểu lầm và lỗi thường gặp trong thực tế.

Chỉ riêng Spring Boot là đủ cho TDD.

Ngay cả khi không có kiến trúc tổng thể, chỉ riêng Spring Boot cũng có thể giúp bạn triển khai TDD hiệu quả. Khóa học này sẽ hướng dẫn bạn qua các bước cốt lõi của TDD trong môi trường Spring Boot quen thuộc, cung cấp trải nghiệm thực tế để hiểu cách thức hoạt động của toàn bộ quy trình TDD.

Học TDD thông qua luồng mã thực tế.

Bạn sẽ tuân theo quy trình viết mã tương tự được sử dụng trong các ứng dụng thực tế. Từ việc hiểu các yêu cầu, phát triển các kịch bản thử nghiệm, triển khai các tính năng và quản lý thiết kế, bạn sẽ có được kinh nghiệm thực tế với quy trình làm việc TDD mà các nhà phát triển thực tế đã trải nghiệm. Bạn cũng sẽ có được kinh nghiệm gián tiếp về cộng tác AI bằng Copilot.

10 năm kinh nghiệm, từ một nhà phát triển nghiêm túc về TDD .

Trong hơn một thập kỷ, cá nhân tôi đã giới thiệu và thiết lập văn hóa TDD trong nhiều nhóm và tổ chức khác nhau. Từ cộng tác đến đánh giá mã và thiết kế, khóa học này cung cấp những hiểu biết thực tế và quy trình thiết thực để triển khai TDD trong các dự án thực tế.

Bạn có thể đạt được hiệu ứng này:

Thông qua khóa học này, học viên có thể đạt được nhiều hiệu quả khác nhau tùy theo tình huống cá nhân.

Đối với những người đang học phát triển phần mềm lần đầu tiên,

Những người chuẩn bị trở thành lập trình viên phát triển ứng dụng máy chủ web bằng Spring Boot có thể xây dựng TDD như một kỹ năng cơ bản ngay từ khi bắt đầu học phát triển phần mềm. Việc học TDD dựa trên thông tin chính xác trước khi tích lũy kinh nghiệm sẽ giúp bạn học dễ dàng hơn và ít gặp trở ngại hơn so với những người đã có kinh nghiệm trước đó.

Đối với những người muốn phát triển các ứng dụng ổn định trong thực tế,

Nếu bạn đang phát triển các ứng dụng máy chủ web Spring Boot trong lĩnh vực của mình nhưng lo lắng về lỗi phát sinh khi tạo tính năng mới, bạn có thể học các kỹ thuật để dần dần thêm mã vào hệ thống, đồng thời đảm bảo đáp ứng các yêu cầu bằng cách sử dụng các bài kiểm tra tự động. Những kỹ năng này sẽ giúp bạn phát triển thành một kỹ sư có giá trị hơn.

Những người đã học TDD nhưng gặp khó khăn khi áp dụng vào thực tế

Những người đã nghiên cứu về TDD và tự động hóa thử nghiệm nhưng gặp khó khăn khi áp dụng TDD khi phát triển ứng dụng máy chủ web Spring Boot trong thực tế có thể một lần nữa củng cố kiến thức liên quan đến TDD và tìm ra manh mối để giải quyết các vấn đề họ gặp phải trong thực tế bằng cách thực hành được chuẩn bị đầy đủ.

Nội dung bài giảng

Khóa học bắt đầu bằng phần giải thích lý thuyết về TDD, sau đó chuyển sang một loạt bài tập thực hành cho phép bạn làm quen với TDD một cách tự nhiên và trải nghiệm những cải tiến về kiến trúc, thay đổi yêu cầu và các trường hợp cộng tác một cách liên tục.

Lý thuyết cốt lõi của TDD

Cuốn sách này giải thích các lý thuyết cốt lõi cần thiết để sử dụng đúng phương pháp Phát triển Hướng Kiểm thử (TDD). Nó giải thích quy trình TDD do Kent Beck định nghĩa và các nguyên tắc thiết kế cơ bản cần thiết cho việc viết và quản lý kiểm thử hiệu quả. Nó cũng chứng minh tính hiệu quả của những lý thuyết này thông qua các bài tập thực hành, thực tế.

Phát triển ứng dụng máy chủ web bằng TDD

Học TDD ở cấp độ thực hành đòi hỏi nhiều hơn là những giải thích lý thuyết và ví dụ đơn giản. Trong khóa học này, chúng ta sẽ bắt đầu với một ứng dụng máy chủ web Spring Boot từ trạng thái đã khởi tạo và phát triển tất cả các tính năng của nó bằng TDD, tiếp cận một ứng dụng thực tế.

Viết bài kiểm tra hiệu quả

Bạn sẽ học cách viết mã kiểm thử dễ đọc, xác minh các yêu cầu một cách trung thực. Vì các bài kiểm thử phải xác minh chính xác các yêu cầu phần mềm và là một hình thức tài liệu yêu cầu, nên tính dễ đọc của mã kiểm thử là rất quan trọng. Chúng ta sẽ xem xét cách viết mã kiểm thử vừa đảm bảo chức năng vừa dễ đọc, và chúng ta sẽ tự viết mã đó bằng JUnit.

Cải tiến kiến trúc

Để cải thiện chất lượng thiết kế của các ứng dụng được phát triển bằng TDD, chúng tôi chuyển từ kiến trúc đơn giản sang kiến trúc có cấu trúc. Chúng tôi tách biệt các mô hình khỏi các thành phần khác và áp dụng mô hình Phân tách Trách nhiệm Truy vấn Lệnh (CQRS).

Giới thiệu người chia sẻ kiến thức

  • Chúng tôi phát triển phần mềm bằng nhiều công nghệ khác nhau trong nhiều lĩnh vực.

  • Tôi đã làm việc với tư cách là CTO tại một số công ty khởi nghiệp trong hơn 10 năm và đã thiết lập TDD trong một số nhóm.

  • Tôi đã chia sẻ kiến thức và kinh nghiệm của mình với tư cách là diễn giả tại nhiều sự kiện kỹ thuật về nhiều chủ đề khác nhau, bao gồm cả TDD.

  • Tôi đang chạy AutoParams , một thư viện mở rộng JUnit để tạo dữ liệu thử nghiệm.

Những điều cần lưu ý trước khi tham gia khóa học

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

  • Các video hướng dẫn này dành cho Windows. Tuy nhiên, người dùng macOS cũng có thể tham gia khóa học mà không gặp bất kỳ vấn đề nào.

  • Tôi đang sử dụng IntelliJ Community Edition. Bạn cũng có thể sử dụng IntelliJ Ultimate Edition.

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

  • Cung cấp hơn 500 trang slide.

  • Toàn bộ mã thực hành, bao gồm hơn 100 lần cam kết, đều có sẵn thông qua kho lưu trữ GitHub.

  • Bạn có thể thoải mái trao đổi với những người chia sẻ kiến thức và các học viên khác về TDD và nội dung khóa học trên Discord.

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

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

  • Người muốn trang bị TDD làm kỹ năng cơ bản ngay từ giai đoạn đầu học phát triển phần mềm

  • Người muốn phát triển thành lập trình viên có khả năng đáp ứng yêu cầu vững vàng và cải thiện thiết kế

  • Người muốn sử dụng TDD trong thực tế phát triển ứng dụng máy chủ web Spring Boot

  • Người đã có kiến thức cơ bản về TDD nhưng gặp khó khăn khi áp dụng vào thực tế.

  • Người muốn làm rõ những hiểu lầm liên quan đến TDD.

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

  • Hiểu ngữ pháp Java đủ để lập trình không gặp bất tiện

  • Kiến thức cơ bản về HTTP

  • Kiến thức cơ bản về cơ sở dữ liệu quan hệ

Xin chào
Đây là

509

Học viên

30

Đánh giá

13

Trả lời

5.0

Xếp hạng

2

Các khóa học

여러 스타트업에서 CTO로 활동하며 기술팀의 역량 성장을 이끌어왔습니다.

코딩만큼이나 기술 지식과 경험을 나누는 일에서도 큰 즐거움을 느낍니다.

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

Tất cả

109 bài giảng ∙ (14giờ 9phú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á

Tất cả

30 đánh giá

5.0

30 đánh giá

  • denia park님의 프로필 이미지
    denia park

    Đánh giá 6

    Đánh giá trung bình 4.8

    Đã chỉnh sửa

    5

    100% đã tham gia

    강의를 정말 잘 들었습니다. 최근에 본 강의 중 가장 큰 도움이 되었습니다. 이렇게 정성스러운 강의를 준비해 주셔서 정말 감사드립니다. 저도 테스트에 관심이 많아 단위 테스트, TDD 등의 테스트 관련 강의와 책을 여러 권 구매하여 학습했으나, 배운 내용을 실제 프로젝트에 어떻게 적용해야 할지 매번 막막했습니다. 그래서 프로젝트에 TDD나 테스트를 제대로 도입하는 방법을 알려 주는 강의가 있으면 좋겠다고 생각했는데, 이 강의를 통해 TDD에 대한 큰 방향성을 잡을 수 있었습니다. 덕분에 저도 이제 제 프로젝트에 조심스럽게 TDD를 도입해 볼 수 있을 것 같습니다. 그리고 마지막에 짧게나마 말씀해주신 레거시 관련 강의도 꼭 나오면 좋겠네요 강의 구매를 고민하시는 분께 드리는 말씀: TDD를 도입해보고 싶은데 어떻게 해야할지 막막하신 분들이라면 이 강의가 분명 큰 도움이 될 것입니다.

    • 이규원
      Giảng viên

      denia park님 완강 축하드리고 또 감사드립니다. 제가 강의를 준비하게 된 큰 계기 중 하나가 마지막에 말씀해주신 TDD 도입이 막막하다는 분들을 많이 만났고 이런 문제를 해결해드리고 싶었던 거라서 수강평이 저에게 특별한 의미가 됩니다. 실무 프로젝트에도 안정적으로 TDD를 도입하셔서 더 좋은 제품을 더 빠르게 만드실 수 있기 바랍니다. 🙏

  • 뜨어어님의 프로필 이미지
    뜨어어

    Đánh giá 5

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    67% đã tham gia

    이 강의는 우리가 하는일이 단순 설계 및 코드 작성이 아니라, 현실세계의 고객의 문제 파악 및 소프트웨어를 통한 해결 이라는 것을 명확히 알려줍니다. 서버, API, 데이터베이스만 배운 사람에게 “고객 지향적으로 개발 하라” 라고 얘기해도 그게 무슨 이야기 인지 이해하기 쉽지 않고, 또 누군가는 “클린 아키텍쳐” 혹은 “Ports and Adapters” 아키텍처를 사용 하면 변화하는 요구사항을 처리하기 쉽다고 누군가 알려줍니다. 힘들게 공부해서 패턴을 적용해도 내가 고객 지향적으로 개발하고 있다고 느끼기는 쉽지 않습니다. 이 강의는 그러한 사람들에게 명확한 가이드라인을 제공 합니다. 강의에서 알려주는 내용은 고객의 요구사항을 잘 정리하고 이를 충족하는 코드를 작성하는 것 입니다. 그리고 이 과정에서 ”테스트 주도 개발“이 얼마나 효과적인지 알게 해줍니다. 강의를 끝까지 따라하고 취지에 귀 기울이다 보면 TDD에 대한 물음표가 느낌표로 바뀌게 될 것입니다.

    • 이규원
      Giảng viên

      뜨어어님 강의 들어주시고 좋은 평까지 남겨주셔서 정말 고맙습니다. 제가 말하고 싶었던 생각이 뜨어어님에게 잘 전달이 된 것처럼 느껴져서 참 다행입니다. 학습하신 내용들이 실제로 개발할 때 긍정적인 영향을 미치고 사용자에게도 도움이 되기를 바라겠습니다!

  • 꼬꼬록님의 프로필 이미지
    꼬꼬록

    Đánh giá 5

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    TDD를 현학화되지 않고 실질적인 소프트웨어의 가치에 집중하며 생산성도 올려줄수 있는 방향으로 코드실습을 통해 체득할 수 있었습니다. 강의에서 다루는 예시가 현업에 있을법하면서도, 강의에서 필요한 지식을 커버하도록 세심하게 정제하여 구성하신게 느껴졌습니다. 저처럼 막 만들다 디버깅에 시간을 쏟다 실패해서 다시 처음부터 만들거나, 어설픈 테스트 작성으로 오히려 생산성을 떨어뜨리는 코딩습관을 가지신분들에게 이 강의는 충분히 적확한 해법이 될수 있을것이라고 생각합니다.

    • 이규원
      Giảng viên

      꼬꼬록님 짧지 않은 강의인데 완강까지 정말 수고 많으셨습니다. 👍 좋은 평가 감사드리고요, 강의로 얻으신 내용으로 실무에서 충분한 효과를 만들어 내시기를 바랍니다!

  • 박준혁님의 프로필 이미지
    박준혁

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    흔히 접하는 TDD의 방법론, 적용 방식에서 품던 의문이 해결되는 강의입니다. TDD가 우리에게 어떤 도움을 주는지, 그것이 문제 해결 관점에서 어떤 의미를 가지는지 강사님의 철학이 잘 전달되는 강의입니다.

    • 이규원
      Giảng viên

      준혁님 후기 감사드립니다. 기법 뿐만 아니라 제가 가진 생각이 전달되는 것 같아서 다행입니다. 어려운 내용이 있으면 주저하지 마시고 인프런이나 디스코드에 질문 남겨주세요!

  • 망고님의 프로필 이미지
    망고

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    27% đã tham gia

    TDD라는 개발 방법론을 배워 나간다는 것을 넘어서서, 소프트웨어 설계 및 구현을 진행할 때 어떤 관점에서 바라보고, 어떤 영역을 중요하게 여기는지 등 중요한 이야기 또한 담겨 있습니다. 또한, 실습 난이도 자체는 꽤나 쉽게 여겨질 수 있겠지만, 단순해 보이는 시나리오에 실제 개발하는 과정에서 나올 수 있는 복잡한 문제 혹은 현상들을 쉽고 단순해 보이는 형태로 환산하여 강의에 담았다고 느껴졌습니다. TDD입문 뿐만 아니라 소프트웨어 엔지니어로 입문하거나 기존 관성을 넘어선 새로운 관점에서의 성장을 원하시는 분들이 꼭 들었으면 합니다.

    • 이규원
      Giảng viên

      좋은 평가와 추전 감사드립니다. 강의 후반부의 내용도 도움이 되시면 좋겠습니다!

3.227.962 ₫

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!