Model Online / On-Site
Duration
Modules 5 modules

Course Objective & Scope

Developers spend far more time reading and trying to understand existing code than writing new code. Long methods, vague identifiers and duplicated logic slow down every subsequent feature and multiply regression risks.

This hands-on course covers intention-revealing naming, small side-effect-free functions, simplifying nested conditionals, clean error handling, Martin Fowler's catalogue of code smells and refactoring moves, and maintainable unit tests (FIRST, AAA). Participants progressively clean up a tangled codebase backed by automated tests and agree on a team code review charter.

Who Should Attend?

  • Software developers across languages looking to write clearer, more maintainable code
  • Engineering teams establishing shared standards for pull requests and code reviews
  • Team leads tackling technical debt and sustaining delivery velocity
  • Prerequisite: hands-on coding experience in any programming language

Key Takeaways

  • Break methods with high cognitive complexity into small, readable routines
  • Recognise code smells such as Bloaters, OO Abusers, Change Preventers and Couplers
  • Execute safe, incremental refactoring moves using IDE tooling without breaking behaviour
  • Replace scattered null checks and noisy try-catch blocks with clean error handling
  • Write fast, expressive, non-brittle unit tests and practise the TDD cycle

Curriculum

Clean Code Foundations, Naming and Function Design
  • The cost of technical debt, the Boy Scout Rule and cognitive complexity
  • Intention-revealing names, avoiding misleading abbreviations and magic literals
  • Function size, argument counts, eliminating flag parameters and Command-Query Separation
Conditionals, Comments, Formatting and Error Handling
  • Flattening nested conditionals with guard clauses, early returns and polymorphism
  • Removing redundant comments by making code self-explanatory, and when comments do add value
  • Avoiding null pitfalls (Optional/Result patterns) and clean exception boundaries
The Code Smell Catalogue and Diagnosis
  • Bloaters: Long Method, Large Class, Primitive Obsession, Long Parameter List
  • Change Preventers & Couplers: Divergent Change, Shotgun Surgery, Feature Envy, Inappropriate Intimacy
  • Catching smells automatically with SonarQube and static linters
Systematic Refactoring Techniques
  • Extract/Inline Method, Introduce Parameter Object, Replace Temp with Query
  • Move Method, Extract Class, Hide Delegate and Replace Conditional with Polymorphism
  • Hands-on refactoring katas in small, green-to-green steps
Clean Unit Tests, TDD and Code Review Culture
  • Treating test code as first-class code: AAA structure, Test Data Builders and FIRST principles
  • Practising the Red-Green-Refactor cycle with Test-Driven Development
  • Constructive code review habits and a team Clean Code checklist

Other Courses in This Category

  • Practical Software Testing (Manual, API & Exploratory)

    End-to-end software testing lifecycle (STLC), deriving test cases from requirements, exploratory testing, API testing with Postman, database verification with SQL and clear bug reporting — hands-on software testing training.

    Software Testing & Quality Corporate
    Live Course
    5 modules
  • Test Analysis, Requirements Engineering and Test Design Techniques

    Catching requirement ambiguities early, BDD/Gherkin and Example Mapping, black-box design techniques (EP, BVA, decision tables, state transition, pairwise), risk-based prioritisation and traceability — for test analysts and BAs.

    Software Testing & Quality Corporate
    Live Course
    5 modules
  • ISTQB Foundation Level (CTFL v4.0) Software Testing

    Aligned with the ISTQB Certified Tester Foundation Level (CTFL v4.0) syllabus: the 7 testing principles, testing in SDLC/Agile, static reviews, black/white-box design techniques, test management and practice exam questions.

    Software Testing & Quality Corporate
    Live Course
    5 modules
  • Web UI Test Automation with Selenium WebDriver

    Selenium WebDriver 4 (W3C protocol), resilient CSS/XPath locators, Explicit Wait synchronisation, Page Object Model, parallel execution on Selenium Grid/Docker and Allure reporting — for QA teams building enterprise web test automation.

    Software Testing & Quality Corporate
    Live Course
    5 modules
  • Modern Web and Component Testing with Cypress

    In-browser Cypress architecture, auto-waiting, network spying and stubbing with cy.intercept, fast login with cy.session, React/Vue component testing and CI parallelisation — for modern frontend and QA teams.

    Software Testing & Quality Corporate
    Live Course
    5 modules
  • Test Automation Architecture and Sustainable Quality Processes

    Test automation ROI and tool selection, Page Object vs Screenplay patterns, hybrid API + UI automation architecture, parallel execution, flaky-test root-cause analysis and maintenance — for teams scaling test automation.

    Software Testing & Quality Corporate
    Live Course
    5 modules

Get in touch