Training: Clean Code, TDD, BDD Crash Course (C++)
Booking
Duration: 2 Days
Contact: Siddhesh Nikude
Inquire via E-Mail
Phone: +91-95-52572354
Scheduled
- 2019-06-12, Mumbai, India
Available Languages
- English
- German
Audience
Software Crafters: Software Developers, Architects.
Precondition
Good knowledge of C++.
Goals
Learn how to develop software better using Clean Code, TDD, and BDD.
Contents
- Clean Code Introduction
- Clean Code and Scrum/XP
- The Two Values of Software
- The 5 Design Smells
- Clean Code Basics
- Form and Names
- Functions and Function Structure
- Programming Paradigms Revisited
- Clean Architecture: Principles of Object-Oriented Class Design
- Coupling and Cohesion
- SOLID Principles
- Package Principles
- The 4 Rules of Simple Design
- Refactoring
- Goals
- Techniques (rename, move, extract, convert, etc)
- Protect against regression
- Legacy code: Characterization testing, seams, sprouts, etc
- Test Basics
- Testing and Scrum/XP
- The Test Automation Pyramid
- Test Automation, Testing, and CI/CD
- Test-Driven Design
- Anatomy of xUnit Frameworks; AceUnit
- Definition of Testable
- The Three Laws of TDD
- The Red-Green-Refactor Cycle
- The Red-Green-Refactor-Commit Cycle
- The Test-Commit-Revert Cycle (TCR)
- Principles of TDD
- Advanced TDD
- The Transformation Priority Premise, Test Sequence
- Test-Doubles, Mocking with GMock
- Stateism vs Mockism
- How TDD drives an emergent design
- Behavior-Driven Development
- The Gherkin Language, Feature Files
- Integrating and Mapping BDD in Scrum/XP - Acceptance Test-Driven Development
- Cucumber for C++
- Installing Cucumber C++
- Setting Up Cucumber C++ with an IDE
- Running Feature Files
- Implementing Step Definitions
- Assertions with Google Test
In open classroom training, we use a specific set of tools listed below. In brackets are alternatives to which we can tailor the training in case of in-house training.
- Language
- C++ (also available in C#, Golang, Java, JavaScript, Kotlin, and Scala)
- IDE
- CLion (Atom, Eclipse, Goland, IntelliJ Idea, NetBeans, Visual Studio Code)
- Unit Test Framework
- AceUnit (Google Test, TestNG, JUnit 3, JUnit 4, JUnit 5, ScalaTest, NUnit, Visual Studio Testing Framework, Mocha)
- BDD Framework
- Cucumber (Godog, Fit, FitNesse, JBehave, JDave, Concordion, SpecFlow)
Scheduled
- 2019-06-12, Mumbai, India (In-House Training)