2 days
Online / Zoom
English
Certificate
15 people max
Daniel Moka
€6000
7500
Master the art of building modern, high-quality, maintainable software using Test-Driven Development (TDD) and Pragmatic Architecture, specifically tailored for developers building large-scale projects with the .NET stack.
Introduction
This training will guide you through the foundational practices of Test-Driven Development (TDD) – from its core principles to advanced concepts, common pitfalls, and applying it effectively to large-scale projects.
Through practical examples and hands-on lab work, you'll master real-world TDD to write cleaner code, better tests, move fast w/o breaking things, reduce technical debt, and foster a culture of technical excellence on your team.
Additionally, you'll explore how architectural best practices, like Vertical Slice Architecture, boost your TDD game, enabling even faster, safer, and more enjoyable software development.
What's under the hood?
Master TDD Fundamentals
Understand the economics of TDD and how it enables faster and safer software development.
Learn the essence of the Red-Green-Refactor cycle and the three laws of TDD.
Overcome common obstacles to the Test-First approach and TDD flow.
Design clear, simple, and testable code you and your teammates enjoy to read and use.
Leverage Evolutionary Design to prevent big up-front designs.
Reduce technical debt without big rewrites through Continuous Refactoring.
Change complex code safely using Baby Steps and Microcommits.
Eliminate manual debugging with short Feedback Loops.
Write better tests
Learn the 7 most common test smells (and how to fix them).
Write maintainable, domain-driven, and self-documenting tests.
Identify the most suitable test types (e.g. unit vs. integration) using Testing Pyramid and Testing Diamond.
Learn the five Test Doubles (Mock, Stub, Fake, Spy, Dummy) and when to apply each.
Skillfully switch between Classical and Mockist test/TDD styles.
Write fast and robust tests for repositories, file system, time and async code.
Build and evolve fluent Test APIs for functional and acceptance testing.
Measure the quality of your tests with Mutation Testing (and see why Code Coverage is a flawed metric).
Build .NET backend services with TDD
Implement clean and maintainable Web APIs with a test-first approach.
Apply SOLID principles to design modular and testable apps.
Utilize the best .NET libraries and tools.
Design Solitary and Sociable unit tests.
Write Mocks and Stubs using the Moq library.
Use Fluent Assertions to make clean test assertions.
Leverage Docker to write reliable integration tests.
Master the best practices of .NET Web API design.
Implement Pragmatic Architecture with .NET
Understand the difference between centralized and Vertical Slice Architecture.
Learn how Vertical Slice Architecture supports TDD.
Discover the best design patterns to achieve clean .NET apps.
Apply DDD with rich romain models.
Utilize CQRS for clean separation of concerns.
Optimize data operations with EntityFramework and Dapper.
Apply the Mediator pattern with the famous MediatR .NET library.
Learn how to write Architecture Tests.
Learn how to improve your architecture incrementally, w/o revolutions and risky rewrites.
Advanced TDD Techniques
Apply TDD effectively to legacy projects.
Resolve the dilemma: "I need tests to refactor safely, but I need to refactor to write tests."
Use Characterization and Approval testing to understand how legacy code works.
Reproduce and fix production bugs using bug-driven TDD.
Integrate TDD, ATDD, and BDD practices into QA teams.
Understand the contextual trade-offs and when TDD may not be the best fit.
Learn how to effectively explain, teach, and adopt TDD within your team.
... and much more. ⚡
By the end of this course, you’ll be able to confidently apply TDD on both brownfield (legacy) and greenfield (new) software projects. You'll have a firm understanding of deep synergy between testability and good design, and how TDD improves both. Finally, the course will shift your perspective on traditional software development, teaching you to deliver high-quality code quickly and sustainably, even under high-pressure conditions.
Daniel Moka
Victor is a Java Champion, Java Enterprise Architect, and Independent Trainer, delivering intense masterclasses for companies worldwide since 2014. He is passionate about software architecture, clean code, refactoring, and unit testing. He is a regular speaker at top international conferences. He's also the founder of the Bucharest Software Craftsmanship Community with 4000 members.