Jphvn8blrsfyitey1cje
3 DAY COURSE

Uncle Bob's Clean Code: Agile Software Craftsmanship

Topics covered at CLEAN-CODE-01-03
View Schedule & Book More dates available

Next up:

Don’t let bad code undermine your efforts. This three-day intensive Clean Code course includes both lectures and collaborative exercises to build your knowledge of the principles and practices behind Agile Software Craftsmanship.

Join ‘Uncle Bob’ Martin, Master Craftsman at 8th Light, as he provides you with a comprehensive insight into the principles and practicalities of clean coding and how they can be applied to your programming.

- Create seamless user experiences with an expert understanding of clean coding -


Who you will be learning with

This clean coding course in Agile Software Craftsmanship is a fantastic resource for developers experienced with Java, C#, and/or C++. You will find developers from a range of industries in this course who are all looking to upskill and consolidate their knowledge of clean coding.

How to apply these skills

From developing a thorough understanding of Functions to Formatting and everything in between, you will come away from this course having expanded your knowledge of clean coding. Apply these skills to your work so that you can produce seamless user experiences and drive the growth of your company. Having a rich knowledge of clean coding opens up doors for your career, placing you as an authority in one of the most fundamental aspects of DevOps.

What next?

Book early to receive a discount on the course price and in doing so you will not only grow your own skill set, but help us grow our community of over 140,000 passionate techies.

Learn how to:

  • Develop an attitude of professional craftsmanship
  • Write great code and transform weak, old code
  • Create good names, functions, objects & 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 well taught. Knows his stuff."

Matthew, Lead X on 3rd Oct 2018

"Enjoyed the course a lot. Thanks!"

James, Capegemini on 3rd Oct 2018

"Great speaker. Good tone and delivery."

Attendee on 3rd Oct 2018

"Amazing tutor, friendly, interesting. Excellent examples and explanations provided. Always willing to answer questions and give advice."

Isabelle Laking, Investec

"Very interactive and charismatic instructor. Kept us very focused."

Attendee

About the Author

Uncle Bob (Robert C. Martin)

Robert Martin (@unclebobmartin) is Master Craftsman at 8th Light, Skills Matter instructor and author of a range of books (as well as hundreds of articles), including: Clean Code: A Handbook of Agile Software Craftsmanship as well as his most recent, Clean Architecture: A Craftsman's Guide to Software Structure and Design.

Thanks to our partners

DAY ONE

Clean Code

  • 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

Meaningful Names

  • Use Intention Revealing Names
  • Avoid Disinformation
  • Make Meaningful Distinctions
  • Use Pronounceable Names
  • Use Searchable Names
  • Avoid Encodings
  • Avoid Mental Mapping
  • Class Names
  • Method Names
  • Don't be Cute
  • One Word per Concept
  • No Puns
  • Solution Domain Names
  • Problem Domain Names

Functions

  • Small!
  • Do One Thing.
  • One Level of Abstraction
  • Switch Statements
  • Function Names (again).
  • Arguments and Parameters
  • Side Effects
  • Command Query Separation
  • Exceptions
  • DRY - Don't Repeat Yourself.
  • Structured Programming
Comments
  • Why and When to Write Comments
  • Explain Yourself in Code
  • Good Comments
  • Bad Comments

Formatting

  • The Purpose of Formatting
  • Vertical Formatting
  • The Newspaper Metaphor
  • Horizontal Formatting

Summary

DAY TWO

Objects and Data Structures

  • Data Abstraction
  • Data/Object Anti-symmetry
  • The Law of Demeter
  • Data Transfer Objects

Error Handling

  • 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

Boundaries

  • 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

Unit Tests

  • The Three Laws of TDD
  • Keeping Tests Clean
  • Domain Specific Testing Language
  • One Assert
  • F.I.R.S.T.

Classes

  • Class Organization
  • Small Classes
  • The Single Responsibility Principles (SRP)
  • Maintaining Cohesion
  • Organizing for Change

DAY THREE

Systems

  • How would you build a city?
  • Separation of Construction and Use
  • Dependency Injection
  • Scaling Up
  • Cross Cutting Concerns
  • Test Drive the System Architecture
  • Optimize Decision Making
  • Use Standards Wisely
  • System DSLs

Emergence

  • Getting Clean via Emergent Design
  • Simple Design Rules
  • DRY (again)
  • Expressiveness
  • Minimal Classes and Methods

Concurrency

  • Why Concurrency?
  • Concurrency Defence Principles
  • Know your Library
  • Execution Models
  • Producer-Consumer
  • Readers-Writers
  • Dining Philosophers
  • Beware Dependencies between Synchronized Methods
  • Keep Synchronized Sections Small
  • Writing Correct Shut-down Code is Hard
  • Testing Threaded Code

Smells and Heuristics

  • Dozens and dozens of them.

Conclusion

Audience

If you are a Java/C#/C++ developer and want to improve your ability to contribute to your team and company by writing better code, this Clean Code course is for you!

Prerequisites

To benefit from this Clean Code course, you will need to know Java, C# or C++ prior to attending.

Bring your own hardware

Delegates are required to bring their own laptop to this course as Skills Matter does not provide this.

All delegates will need to have their own laptop with the following:

  • Preferred IDE
  • 2GB ram
  • Browser
Overview

Don’t let bad code undermine your efforts. This three-day intensive Clean Code course includes both lectures and collaborative exercises to build your knowledge of the principles and practices behind Agile Software Craftsmanship.

Join ‘Uncle Bob’ Martin, Master Craftsman at 8th Light, as he provides you with a comprehensive insight into the principles and practicalities of clean coding and how they can be applied to your programming.

- Create seamless user experiences with an expert understanding of clean coding -


Who you will be learning with

This clean coding course in Agile Software Craftsmanship is a fantastic resource for developers experienced with Java, C#, and/or C++. You will find developers from a range of industries in this course who are all looking to upskill and consolidate their knowledge of clean coding.

How to apply these skills

From developing a thorough understanding of Functions to Formatting and everything in between, you will come away from this course having expanded your knowledge of clean coding. Apply these skills to your work so that you can produce seamless user experiences and drive the growth of your company. Having a rich knowledge of clean coding opens up doors for your career, placing you as an authority in one of the most fundamental aspects of DevOps.

What next?

Book early to receive a discount on the course price and in doing so you will not only grow your own skill set, but help us grow our community of over 140,000 passionate techies.

Learn how to:

  • Develop an attitude of professional craftsmanship
  • Write great code and transform weak, old code
  • Create good names, functions, objects & 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 well taught. Knows his stuff."

Matthew, Lead X on 3rd Oct 2018

"Enjoyed the course a lot. Thanks!"

James, Capegemini on 3rd Oct 2018

"Great speaker. Good tone and delivery."

Attendee on 3rd Oct 2018

"Amazing tutor, friendly, interesting. Excellent examples and explanations provided. Always willing to answer questions and give advice."

Isabelle Laking, Investec

"Very interactive and charismatic instructor. Kept us very focused."

Attendee

About the Author

Uncle Bob (Robert C. Martin)

Robert Martin (@unclebobmartin) is Master Craftsman at 8th Light, Skills Matter instructor and author of a range of books (as well as hundreds of articles), including: Clean Code: A Handbook of Agile Software Craftsmanship as well as his most recent, Clean Architecture: A Craftsman's Guide to Software Structure and Design.

Thanks to our partners

Program

DAY ONE

Clean Code

  • 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

Meaningful Names

  • Use Intention Revealing Names
  • Avoid Disinformation
  • Make Meaningful Distinctions
  • Use Pronounceable Names
  • Use Searchable Names
  • Avoid Encodings
  • Avoid Mental Mapping
  • Class Names
  • Method Names
  • Don't be Cute
  • One Word per Concept
  • No Puns
  • Solution Domain Names
  • Problem Domain Names

Functions

  • Small!
  • Do One Thing.
  • One Level of Abstraction
  • Switch Statements
  • Function Names (again).
  • Arguments and Parameters
  • Side Effects
  • Command Query Separation
  • Exceptions
  • DRY - Don't Repeat Yourself.
  • Structured Programming
Comments
  • Why and When to Write Comments
  • Explain Yourself in Code
  • Good Comments
  • Bad Comments

Formatting

  • The Purpose of Formatting
  • Vertical Formatting
  • The Newspaper Metaphor
  • Horizontal Formatting

Summary

DAY TWO

Objects and Data Structures

  • Data Abstraction
  • Data/Object Anti-symmetry
  • The Law of Demeter
  • Data Transfer Objects

Error Handling

  • 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

Boundaries

  • 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

Unit Tests

  • The Three Laws of TDD
  • Keeping Tests Clean
  • Domain Specific Testing Language
  • One Assert
  • F.I.R.S.T.

Classes

  • Class Organization
  • Small Classes
  • The Single Responsibility Principles (SRP)
  • Maintaining Cohesion
  • Organizing for Change

DAY THREE

Systems

  • How would you build a city?
  • Separation of Construction and Use
  • Dependency Injection
  • Scaling Up
  • Cross Cutting Concerns
  • Test Drive the System Architecture
  • Optimize Decision Making
  • Use Standards Wisely
  • System DSLs

Emergence

  • Getting Clean via Emergent Design
  • Simple Design Rules
  • DRY (again)
  • Expressiveness
  • Minimal Classes and Methods

Concurrency

  • Why Concurrency?
  • Concurrency Defence Principles
  • Know your Library
  • Execution Models
  • Producer-Consumer
  • Readers-Writers
  • Dining Philosophers
  • Beware Dependencies between Synchronized Methods
  • Keep Synchronized Sections Small
  • Writing Correct Shut-down Code is Hard
  • Testing Threaded Code

Smells and Heuristics

  • Dozens and dozens of them.

Conclusion

Audience

Audience

If you are a Java/C#/C++ developer and want to improve your ability to contribute to your team and company by writing better code, this Clean Code course is for you!

Prerequisites

To benefit from this Clean Code course, you will need to know Java, C# or C++ prior to attending.

Bring your own hardware

Delegates are required to bring their own laptop to this course as Skills Matter does not provide this.

All delegates will need to have their own laptop with the following:

  • Preferred IDE
  • 2GB ram
  • Browser