Training: Clean Code, TDD, BDD Crash Course (Go)
Booking
 Duration: 2 Days
 Contact: Siddhesh Nikude
 Inquire via E-Mail
 Phone: +91-95-52572354
Scheduled
- 2018-06-27, Munich, Germany
 - 2018-09-24, Chennai, India
 
Available Languages
- English
 - German
 
Audience
Software Crafters: Software Developers, Architects.
Precondition
Good knowledge of Go.
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; 
go test/testing - 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
 
 - Anatomy of xUnit Frameworks; 
 - Advanced TDD 
- The Transformation Priority Premise, Test Sequence
 - Test-Doubles, Mocking
 - 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
 
 - Godog 
- Assertions with Nelkinda 
assert-go - Reusing Feature Files on different levels of the test pyramid
 - Managing Godog in large projects
 
 - Assertions with Nelkinda 
 
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
 - Golang (also available in C#, C++, Java, JavaScript, Kotlin, and Scala)
 - IDE
 - IntelliJ IDEA (Eclipse, GoLand, NetBeans, Atom, Visual Studio Code)
 - Unit Test Framework
 - go 
testing(TestNG, JUnit 5, JUnit 4, JUnit 3, ScalaTest, NUnit, Visual Studio Testing Framework, Mocha) - BDD Framework
 - Godog (Cucumber, Fit, FitNesse, JBehave, JDave, Concordion, SpecFlow)
 
Scheduled
- 2018-06-27, Munich, Germany (In-House Training)
 - 2018-09-24, Chennai, India (In-House Training)