COURSE

Crafting Code with Sandro Mancuso

Topics covered at CRAFTING-CODE-SM-03
View Schedule & Book More dates available

Next up:

  • 14th - 15th January 2021, Online Course, delivered by Sandro Mancuso

Overview


This 2-day course is designed to improve your team's skills around creating well-crafted, testable and maintainable code.


With a strong focus on software craftsmanship, this hands-on course will teach software developers practical techniques they can immediately apply to real-world projects — both new development and legacy codebases. The techniques covered in this course provide the foundation needed for more frequent and safer releases.

Crafting Code workshop with Sandro Mancuso

Writing Clean Code is difficult. Cleaning existing code, even more so. Your team should attend if you need them 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
  • Learn with hands-on exercises 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

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.



Online Learning at Skills Matter

This course will be offered virtually over 2 full day sessions.

Our virtual courses offer the same expert-led, hands-on experience we've offered since 2013 — only now we’re making it accessible from the comfort of your own home (office).

You'll join Sandro and participants from around the globe in a virtual classroom where you'll utilise a collaboration tools like Zoom, Miro, Slack, and Notion.so in this fast-paced Clean Code course.



Learn how to:


Design code that expresses business requirements.

Understand design principles that lead to clean code

Pay attention to every minor detail at the code level, like names, responsibilities of classes, methods and types
 

Look closely at key design principles like coupling and cohesion and how they are applied at the code level.

Avoid over-engineering and large rewrites by incrementally evolving the software design using tests.
 


About the Author

Sandro Mancuso

Software craftsman, author, and founder of the [London Software Craftsmanship Community (LSCC)](http://londonswcraft.com/). Sandro has been coding since a very young age but only started his professional career in 1996. He has worked for startups, software houses, product companies, international consultancy companies, and investment banks. During his career Sandro had the opportunity to work in a good variety of projects, with different languages, technologies, and across many different industries. Sandro has a lot of experience in bringing the Software Craftsmanship ideology and Extreme Programming practices to organisations of all sizes. Sandro is internationally renowned by his work on evolving and spreading Software Craftsmanship and is frequently invited to speak in many conferences around the world. His professional aspiration is to raise the bar of the software industry by helping developers become better at and care more about their craft.

Programme


In this course we'll cover:

    Principles of:
  • Test-Driven Design (TDD)
  • Object-Oriented Design (OOD)
  • Domain-Driven Design (DDD)

  • Content:
  • Advanced introduction to TDD lifecycle
  • Chicago School (classicist) TDD
  • London School (Outside-In) TDD
  • Expressing business behaviour via tests, not the implementation
  • Principles of Clean Code and good design
  • Using unit tests as a tool to drive good design
  • Mocking as a design tool
  • Expressive code that describes business rules
  • Testing and refactoring legacy code
Crafted Code workshop with Sandro Mancuso

Audience

Audience


This course is designed for software development teams that:

  • have a fluency with at least one Object-Oriented language, such as Java, C#, or C++;
  • are able to understand Java or C#;
  • are able to write and execute unit tests using a framework, such as JUnit, NUnit, etc.;
  • have a basic understanding of mock objects.

Note: This is not a course for people learning how to code. Developers with a few years in the industry will benefit more from this course then people with limited industry experience. Also, this is not a basic TDD training. This course is fully Zoom, Miro, Slack, and Notion.so . Although the course can be attended and followed by developers without TDD experience, people with TDD experience will benefit more.

Crafted Code workshop with Sandro Mancuso



Prerequisites

The is a fast-paced and hands-on training course. Software development teams will be required to write a lot of code.

Required:

  • Bring your own laptop
  • Be able to create projects from scratch, add test and mocking libraries, build source code, and run test cases in their development environment
  • Have a development environment that consists of the following:
    • Object-Oriented language
    • A unit test framework
    • A mocking library
Optional:
  • A distributed version control system such as git