Does your team need to become proficient in TDD and combating legacy code? Looking for guidance on software quality and clean code from renowned experts with recent real-world expertise? Then this course is for you!
This course is designed to help developers write code that is well-crafted; code that is clean, testable, maintainable, and an expression of the business domain. The course is entirely hands-on, designed to teach developers practical techniques they can immediately apply to real-world projects.
Software Craftsmanship is at the heart of this course. Throughout, you will learn about the Software Craftsmanship attitude to development and how to apply it to your workplace.
Writing Clean Code is difficult. Cleaning existing code, even more so. You should attend if you want to:
- Write clean code that is easy to understand and maintain
- Become more proficient in Test-Driven Development (TDD): using tests to design and build your code base
- Focus your tests and production code according to business requirements using Outside-In TDD (a.k.a. the London School of TDD)
Clean code necessitates good design. In the process of driving your code through tests, you will learn how to:
- Understand design principles that lead to clean code
- Avoid over-engineering and large rewrites by incrementally evolving your design using tests
Once you have an understanding of the principles at work, we will apply them to Legacy Code to help you gain confidence in improving legacy projects through testing, refactoring and redesigning.
Learn how to:
- Understand the ideology and professionalism associated with Software Craftsmanship.
- Write clean code that is easy to understand and maintain.
- Keep the code clean using Test-Driven Development.
- Improve legacy code retrofitting tests and refactorings.
- Understand the principles behind clean code.
- Object-Oriented Design and SOLID principles.
- Organise code structure around business domain concepts
What the community says
"Sandro has a deep knowledge in crafting code and the ability to focus on the details that make the difference in teaching."Efi Moutopoulou, Paddy Power Betfair on 12th Sep 2017
"Brilliant course; well paced and with interesting, robust practical example. Sandro was approachable and friendly, presented the material clearly, and is obviously passionate about TDD approaches. Very knowledgeable and helpful. I learned a lot and would definitely recommend."Jacq Train, Ocado Technology on 24th Apr 2017
"This is a great course, packed with lots of little details which we often miss."Seema Vodithala, BMJ on 17th Jun 2016
"Fantastic!! Really enjoyed the experienced and inspired."Fawad Ali on 27th Mar 2015
"I had no preconceptions of the course, but I got a huge amount out of it, and really enjoyed it."Paul Alcock on 27th Mar 2015
- TDD lifecycle and the London School of TDD
- Writing unit tests that express intent, not implementation
- Using unit tests as a tool to drive good design
- Expressive code
- Testing and refactoring Legacy Code
- Introduction to SOLID Principles and Domain-Driven Design
The course is fully hands-on and developers will be writing a lot of code.
Software developers that:
- are familiar with at least one Object-Oriented language
- are able to understand Java or C#
- can write and execute unit tests using a framework (such as JUnit, NUnit, etc.)
- have a basic understanding of mock objects
Bring your own hardware
Delegates are required to bring personal laptops and have a development environment consisting of:
- their favourite Object-Oriented language
- a unit test framework
- a mocking library
- be able to create projects, build source code and run test cases in their development environment
In addition, a distributed version-control system such as Git is desirable.