Software Craftsmanship is at the heart of this course. Throughout this training series, your team will learn about the Software Craftsmanship mindset and how to apply it within your organisation.
Writing Clean Code is difficult. Cleaning existing code, even more so. Your team should attend if they need to:
- Write clean code that is easy to understand, maintain, and adapt
- Become more proficient in Test-Driven Development (TDD): using tests to design and build
- Through practical exercises, learn the difference between the two most important TDD styles: Chicago school (classicist) and London School (outside-in).
- Learn how to define test boundaries and responsibilities.
- How do we define a unit?
- What is the difference between the test boundary and test responsibility?
- What should we mock? What should not be mocked?
- Learn how to write tests that express business behaviour, not technical implementation.
- Learn how to test and refactor legacy code
- How to deal with hard-wired dependencies
- How to localise tests while avoiding a major refactor of the code
- Refactor the code to express business rules
Clean code demands good design. Your team will learn how to:
- Design code that expresses business requirements.
- Understand design principles that lead to clean code
- Pay attention to every minor detail at code level, like names, responsibilities of classes and methods, types,
- Look closely at the key principles of design like coupling and cohesion and how they are applied at code level.
- Avoid over-engineering and large rewrites by incrementally evolving the software design through testing
Software Craftsmanship is a mindset that focuses on professionalism and quality. Clean Code and Test-Driven Development are part of that mindset and are at the heart of this course. More than learning the techniques, the course also touches on the attitude expected from professional software developers.