Even bad code can function. But if code isn't clean, it can bring a development organisation to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way!
In this two-day Clean Code Workshop you will learn the principles and practices of Clean Code as described in Robert C. Martin's book: Clean Code: A Handbook of Agile Software Craftsmanship. You will also receive this book as part of the course materials.
This Clean Code workshop alternates between lectures and exercises so that you can experience, first-hand, the practices and disciplines of the following fundamental topics:
- Professionalism, Craftsmanship, and Clean Code.
- Choosing Meaningful Names
- Writing Clean Functions
- The Proper Use of Comments
- Coding Style and Formatting
- Object Oriented Programming vs. Procedural Programming.
- Error Handling Boundaries between Subsystems
- Unit testing, and Test Driven Development
- Writing Clean Classes Systems
- Plan vs. Emergence
- Smells and Heuristics.
Learn how to:
- Develop an attitude of professional craftsmanship.
- Tell the difference between good and bad code.
- Create write good code and transform bad code into good code.
- Create good names, good functions, good objects, and good classes.
- Format code for maximum readability.
- Implement complete error handling without obscuring code logic.
- Apply effective unit testing and refactoring techniques.
What the community says
"Very friendly and enjoyable teaching style. Feel like I have learnt a lot that I wouldn't get from just reading the book!"Andrew Lord, Ocado Ltd
"Great and effective teaching style to hold attention of the class throughout the day!"Ian Jones, Ocado Ltd
- There Will Be Code- Bad Code
- The Total Cost of Owning a Mess
- The Grand Redesign in the Sky
- What is Clean Code?
- A review of expert opinions.
- Schools of Thought
- The Boy Scout Rule
Use Intention Revealing Names
Make Meaningful Distinctions
Use Pronounceable Names
Use Searchable Names
Avoid Mental Mapping
Don’t be Cute
One Word per Concept
Solution Domain Names
Problem Domain Names
Do One Thing- One Level of Abstraction
Function Names (again)
Arguments and Parameters
Command Query Separation
DRY - Don’t Repeat Yourself
- Why and When to Write Comments
- Explain Yourself in Code
- Good Comments
- Bad Comments
- The Purpose of Formatting
- Vertical Formatting
- The Newspaper Metaphor
- Horizontal Formatting
Objects and Data Structures
- Data Abstraction
- Data/Object Anti-symmetry
- The Law of Demeter
- Data Transfer Objects
- Use Exceptions not Return Codes
- Write your try/catch Statements First
- Use Unchecked Exceptions
- Provide Context with Exceptions
- Define Exception Classes for Callers
- Define Normal Flow
- Don’t Return Null
- Don’t Pass Null
- Using Third Party Code
- Exploring and Learning Boundaries
- Learning Log4J
- Learning Tests are Better than Free
- Using Code that Does Not Yet Exist.
- Clean Boundaries
- The Three Laws of TDD
- Keeping Tests Clean
- Domain Specific Testing Language
- One Assert
- Class Organization
- Small Classes
- The Single Responsibility Principles (SRP)
- Maintaining Cohesion
- Organizing for Change
Smells and Heuristics
Dozens and dozens of them
If you are a developer and you want to improve your ability to contribute to your company and your team by writing better code - then Uncle Bob Martin's Clean Code workshop is for you!
Bring your own hardware
For this Clean Code workshop, you are required to have your own laptop with the following: - Preferred IDE - 2GB ram - Your preferred Browser. Please contact our team at any time if you need any assistance!