Clean Code Workshop

Writing code is easy. Writing good code is hard. When code is not maintained, it becomes smelly. This usually means that we need to change something in the code, refactoring it to remove the problematic parts.

This engaging and enjoyable workshop focuses on identifying problematic areas in the code and ways to eliminate them. Throughout the workshop, we discuss best practices and methods for writing and organizing code.

Agenda

Maximum number of attendees: 22 participants.

The workshop is a single 6-7 hour block, with couple of breaks, including a lunch break and a chill-out time at the end. It’s designed to be interactive, without wasting precious time. We’ll be working on cleaning smelly code and learning to recognize various code smell patterns.

  • Why we need clean code after all? Setup the environment.
  • Software development principles overview (YAGNI, POLA, KISS, SOLID…)
  • Confusers
  • Bloaters
  • Object-Oriented Abusers
  • Couplers
  • Dispensable
  • Recapitulation
  • Add-on content (more katas or Fun Java Quiz)

There will be plenty of opportunities for dialogue and debate, creating a dynamic environment for uncovering emerging practices. These conversations will be key in helping you identify the most suitable practices and patterns for your own professional endeavors.

Target Audience

The workshop’s language is Java—however, it could be followed by any programmer that understands basic OOP. It is aimed at Software Engineers with at least two years of experience.

  • Tech Leads
  • Senior developers
  • Junior developers

Learning Objectives – What are we gonna learn?

  • Code Smell patterns
  • Refactoring using IDE
  • Software design guidance
  • Software development laws and principles
  • Shared experience from real-life projects

Expect to get your hands dirty – How it works

The workshop will include a variety of activities, including coding (both solo, in pair or mob programming), discussions, group exercises and collaborative modeling on the whiteboard.

The main focus is on coding in Java. While you have the option to code individually, we strongly recommend pair programming or ensemble programming to enhance the learning experience.

The majority of your time will be spent engaging with the examples, mainly through coding.

Requirements

  • Language: English
  • Laptop: required
  • Software: Java 8+, IntelliJ IDEA, git.
  • Hardware: projector, whiteboard, Internet