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

/

Back-end

Spring Boot TDD - 入門から実践まで正確に

より早く、より堅牢に Spring Boot アプリケーションを開発しましょう。正確な理論の説明と、実務レベルの連携した実習を通じて、HTTP API アプリケーション開発に TDD を使う効果的な方法を自然に習得できます。

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

学習した受講者のレビュー

こんなことが学べます

  • TDD による Spring Boot Web API アプリケーション開発 実践

  • 正確で核心的な TDD 理論

  • 過度なツールと設計なしに TDDを使う方法

  • 要件を満たした後に設計を改善する方法

  • シンプルな設計から構造化されたアーキテクチャへ安全にリファクタリング

  • TDDに関する誤解の解消

コードの実装を超えて
製品の価値を生み出す力

AIコーディングツールが注がれ、「コードは自動的に編む時代」という言葉が出てきます。しかし、本当に重要なのはコード自体ではありません。要件を正確に検証し、安定してシステムを改善できる設計とテスト能力です。

TDD(Test-Driven Development)は、自動化されたテストに基づいてシステムを確実に改善するのに役立つ強力なツールです。コードを超えて、ソフトウェアが「正しく動作しているか」を継続的に検証し、正しい方向に開発を導くことができます。

今、TDDは「良い」開発習慣ではありません。
コードを超えて製品の価値を実装する強力な武器です。

このような経験があればお勧めします。

例や講義をそのまま行ったが、本気TDDの必要性を体感できずにいる。

TDDをスキルと道具中心だけで身につけてみると、
実戦プロジェクトでは限界を感じている。

TDDを導入しようとすると、テストを考慮していないコードベースのために幕詰まりを感じた。

プロジェクトに急にTDDを適用したが、テストが全部壊れて結局あきらめたことがある。

そこで、様々な組織にTDD文化を定着させてきた
CTOの10年の経験を講義に入れました。

TDD理論を正確に説明します。

TDDを正しく書くためには、スキル中心の単純なテスト作成法ではなく、コア概念と設計原理を正確に理解することがまずです。この講義は、TDDと健全な設計のための理論的基盤をしっかりと固め、実務でよく見られる誤解や誤りを避けるための概念中心の学習を提供します。

Spring BootだけでもTDDで十分です。

途方もないアーキテクチャがなくても、Spring BootはTDDを正しく使用できます。このレッスンは、おなじみのSpring Boot環境でTDDの重要な手順に従い、TDDの全体的な流れがどのように機能するかを豊富な実践中心に体感するのに役立ちます。

実コードフローでTDDを獲得します。

実務で使用するコード作成フローにそのまま従います。要件の理解→テストシナリオの導出→機能の実装→設計管理など、実際の事業開発者が経験するTDDの流れを実習で体得します。また、Copilotを活用したAIコラボレーションも間接的に体験できます。

10年の経験、TDDに心からの開発者が伝えます。

10年以上、様々なチームや組織からTDD文化を直接導入し、実務に定着させた経験を持っています。コラボレーションからコードレビュー、デザインまで! TDDを実際のプロジェクトにどのように溶かすかは、その現実的なプロセスと洞察を講義にまとめました。

このような効果を得ることができます。

この講義を通じて、受講者の皆さんはそれぞれの状況に応じて様々な効果を得ることができます。

ソフトウェア開発を初めて学ぶ方は

Spring Bootを使ってWebサーバアプリケーションを開発するプログラマになるために就職を準備している方は、ソフトウェア開発学習の初期からTDDを基本能力で揃えることができます。他の経験が積み重なる前に正確な情報に基づいてTDDを学習すれば、むしろキャリアのある方よりも抵抗なく簡単に習得できます。

実務で安定してアプリケーションを開発したい人

実務では、Spring Boot Webサーバーアプリケーションを開発していますが、新機能を作成する際にバグが発生する恐れで不安を感じる人は、自動化されたテストを使用して要件を満たしていることを確認し、システムに段階的にコードを追加する方法を学ぶことができます。そして、この能力により、より価値のあるエンジニアに一歩進むことができます。

TDDを学びましたが、実務の適用に苦労している人は

TDDとテストオートメーションを勉強しましたが、実務でSpring Boot Webサーバーアプリケーションを開発するときは、さまざまな困難でTDDを適用できない方は、TDDに関する知識をもう一度取り組んで十分に準備された実習を進行しながら、実戦で経験する問題を解決できる手がかりを得ることができます。

講義内容

TDDに関する理論の説明から始めて、断絶なく続く一連の実習に従い、自然にTDDに馴染み、アーキテクチャの改善、要件の変更、コラボレーションケースまで連続的に経験できるよう講義を構成しました。

TDDコア理論

TDDを正しく使用するために必要な重要な理論を説明します。 Kent Beckが定義したTDD手順と効果的なテスト作成と管理に必要な基盤設計理論を説明し、実践と同様の実習を通じて理論の効果を体感します。

TDDを使用したWebサーバーアプリケーションの開発

実務で利用可能なレベルのTDD学習には、理論の説明と簡単な例では不足しています。このレッスンでは、本番に近いレベルのSpring Boot Webサーバーアプリケーションをプロジェクトが初期化された状態で開始し、すべての機能をTDDを使用して開発します。

効果的なテストを書く

要件を忠実に検証するテストコードを読みやすく書く方法を体験してください。テストはソフトウェア要件を正しく検証する必要があり、要件文書の一種であるため、テストコードの読みやすさは非常に重要です。機能に忠実でありながら読みやすいテストコードの書き方を考え、JUnitを使って自分で書いてみます。

アーキテクチャの改善

TDDを使用して開発されたアプリケーションの設計品質を向上させるために、単純なアーキテクチャから構造化アーキテクチャに改善します。モデルを他のコンポーネントから分離し、Command Query Responsibility Segretation(CQRS)パターンを適用します。

知識共有者の紹介

  • さまざまな分野でさまざまな技術を使用してソフトウェアを開発しました。

  • 10年以上にわたり、複数のスタートアップでCTOの役割を果たし、複数のチームにTDDを定着させました。

  • TDDをはじめ、様々なテーマで様々な技術イベントで講師として知識と経験を共有してきました。

  • テストデータの生成JUnit拡張ライブラリAutoParamsを運営しています。

受講前の注意

練習環境

  • 練習ビデオはWindowsオペレーティングシステムを使用します。しかし、macOSをお使いの方も問題なく受講できます。

  • IntelliJ Community Editionを使用してください。 IntelliJ Ultimate エディションもそのまま使用できます。

学習資料

  • 500ページ以上のスライドを提供します。

  • 100を超えるコミットで構成されたすべての練習コードは、GitHubリポジトリを介して提供されます。

  • Discordでは、知識共有者や他の受講生とTDDや講義の内容をテーマに自由にコミュニケーションできます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • ソフトウェア開発の学習初期からTDDを基本スキルとして身につけたい方

  • 安定して要件を満たし設計を改善するプログラマーとして成長したい方

  • Spring Boot Webアプリケーション開発の実務にTDDを使いたい方

  • TDDに関する基本知識は習得したが、実務導入に難しさを感じている方

  • TDDに関する誤解を解消したい方

前提知識、
必要でしょうか?

  • Javaコーディングに不自由なくできる程度のJava言語の文法理解

  • HTTP基礎知識

  • リレーショナルデータベース基礎知識

こんにちは
です。

508

受講生

30

受講レビュー

13

回答

5.0

講座評価

2

講座

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

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

カリキュラム

全体

109件 ∙ (14時間 9分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

30件

5.0

30件の受講レビュー

  • denia님의 프로필 이미지
    denia

    受講レビュー 6

    平均評価 4.8

    修正済み

    5

    100% 受講後に作成

    Tôi thực sự đã lắng nghe bài giảng rất kỹ. Đây là bài giảng hữu ích nhất trong số những bài tôi đã xem gần đây. Tôi thực sự cảm ơn vì đã chuẩn bị một bài giảng tâm huyết như vậy. Tôi cũng rất quan tâm đến kiểm thử, nên đã mua và học nhiều khóa học và sách liên quan đến kiểm thử như Unit Test, TDD,... nhưng lần nào cũng cảm thấy bế tắc về cách áp dụng những gì đã học vào dự án thực tế. Vì vậy, tôi đã nghĩ sẽ thật tốt nếu có một bài giảng chỉ cách áp dụng TDD hoặc kiểm thử vào dự án một cách đúng đắn, và thông qua bài giảng này, tôi đã nắm bắt được hướng đi tổng thể về TDD. Nhờ đó, giờ đây tôi cũng có thể thử áp dụng TDD một cách thận trọng vào dự án của mình. Và ở phần cuối, bài giảng liên quan đến legacy mà bạn đã đề cập ngắn gọn, tôi rất mong nó sẽ sớm ra mắt. Lời nhắn gửi đến những ai đang cân nhắc mua khóa học: Nếu bạn muốn thử áp dụng TDD nhưng đang băn khoăn không biết phải làm sao, thì bài giảng này chắc chắn sẽ giúp ích rất nhiều.

    • gyuwon2187
      知識共有者

      Xin chúc mừng và cảm ơn bạn denia park đã hoàn thành khóa học. Một trong những động lực lớn để tôi làm khóa học này là vì tôi đã gặp nhiều người nói họ gặp khó khăn khi bắt đầu với TDD như bạn đã đề cập ở cuối, và tôi muốn giúp họ giải quyết vấn đề đó, nên đánh giá khóa học của bạn thực sự có ý nghĩa đặc biệt với tôi. Tôi hy vọng bạn có thể áp dụng TDD một cách ổn định vào các dự án thực tế để tạo ra sản phẩm tốt hơn và nhanh hơn. 🙏

  • jin3378s님의 프로필 이미지
    jin3378s

    受講レビュー 5

    平均評価 5.0

    修正済み

    5

    67% 受講後に作成

    Khóa học này làm rõ rằng công việc của chúng ta không chỉ đơn giản là thiết kế và viết code, mà là xác định vấn đề của khách hàng trong thế giới thực và giải quyết chúng thông qua phần mềm. Đối với người chỉ học về server, API, database, dù có nói "hãy phát triển hướng đến khách hàng" thì cũng khó mà hiểu được đó là gì, hoặc có người nói rằng sử dụng kiến trúc "Clean Architecture" hay "Ports and Adapters" thì dễ xử lý các yêu cầu thay đổi hơn. Dù đã học hành vất vả và áp dụng các mẫu thiết kế, cũng khó cảm nhận được mình đang phát triển hướng đến khách hàng. Khóa học này cung cấp hướng dẫn rõ ràng cho những người như vậy. Nội dung khóa học chỉ cho cách sắp xếp tốt các yêu cầu của khách hàng và viết code đáp ứng chúng. Và trong quá trình này, nó cho thấy "Phát triển dựa trên kiểm thử" (Test Driven Development) hiệu quả đến mức nào. Nếu theo dõi khóa học đến cùng và lắng nghe kỹ mục đích của nó, dấu hỏi về TDD của bạn sẽ biến thành dấu chấm than.

    • gyuwon2187
      知識共有者

      Tôi thực sự cảm ơn bạn 뜨어어 vì đã tham gia khóa học và để lại đánh giá tốt. Tôi cảm thấy thật may mắn vì những suy nghĩ mà tôi muốn truyền tải đã được bạn 뜨어어 tiếp nhận tốt. Tôi hy vọng những nội dung đã học sẽ có tác động tích cực khi bạn phát triển thực tế và cũng hữu ích cho người dùng!

  • gggorock님의 프로필 이미지
    gggorock

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

    Tôi đã có thể tiếp thu TDD thông qua thực hành code, theo hướng tập trung vào giá trị thực tế của phần mềm mà không bị lý thuyết hóa, đồng thời có thể nâng cao năng suất. Tôi cảm nhận được rằng các ví dụ trong bài giảng vừa rất thực tế, vừa được chọn lọc và sắp xếp tỉ mỉ để bao quát kiến thức cần thiết. Đối với những người có thói quen coding như tôi, tức là làm đại rồi tốn thời gian debug, thất bại và phải làm lại từ đầu, hoặc viết test cẩu thả làm giảm năng suất, tôi nghĩ rằng bài giảng này hoàn toàn có thể là giải pháp phù hợp.

    • gyuwon2187
      知識共有者

      꼬꼬록님, xin chúc mừng đã nỗ lực hoàn thành khóa học không ngắn này. 👍 Cảm ơn bạn về đánh giá tốt. Hy vọng bạn sẽ áp dụng hiệu quả nội dung khóa học vào thực tế công việc!

  • junhyogi9546님의 프로필 이미지
    junhyogi9546

    受講レビュー 1

    平均評価 5.0

    5

    30% 受講後に作成

    Đây là buổi học giải đáp những thắc mắc thường gặp về phương pháp luận, cách áp dụng TDD. Đây là buổi học truyền tải tốt triết lý của giảng viên về việc TDD mang lại lợi ích gì cho chúng ta, và ý nghĩa của nó từ góc độ giải quyết vấn đề.

    • gyuwon2187
      知識共有者

      Cảm ơn 준혁님 về bài đánh giá ạ. Rất vui vì không chỉ kỹ thuật mà cả suy nghĩ của tôi cũng được truyền tải ạ. Nếu có nội dung nào khó hiểu thì đừng ngần ngại đặt câu hỏi trên Inflearn hoặc Discord nhé!

  • apfhdzi118666님의 프로필 이미지
    apfhdzi118666

    受講レビュー 1

    平均評価 5.0

    5

    27% 受講後に作成

    Vượt ra khỏi việc học phương pháp phát triển gọi là TDD, nó còn chứa đựng những câu chuyện quan trọng như nhìn nhận từ góc độ nào khi tiến hành thiết kế và triển khai phần mềm, hay coi trọng những khía cạnh nào. Ngoài ra, mặc dù độ khó của phần thực hành có thể được coi là khá dễ, tôi cảm thấy rằng bài giảng đã chuyển đổi các vấn đề hoặc hiện tượng phức tạp có thể phát sinh trong quá trình phát triển thực tế thành một hình thức dễ hiểu và đơn giản hơn để đưa vào bài giảng. Không chỉ dành cho người mới bắt đầu với TDD, tôi thực sự khuyên những người muốn trở thành kỹ sư phần mềm hoặc muốn phát triển từ một góc nhìn mới vượt ra ngoài quán tính hiện tại nên tham gia.

    • gyuwon2187
      知識共有者

      Cảm ơn những đánh giá và đề xuất tốt. Mong rằng nội dung phần sau của bài giảng cũng sẽ giúp ích cho bạn!

¥18,160

似ている講座

同じ分野の他の講座を見てみましょう!