About the Code Refactoring course

In this course you will learn the tools to effectively and efficiently work with existing code bases. Be that legacy code or iterating on a working design.
Having a good understanding of refactoring patterns leads to more productive development, finds better abstractions and can even guide great design.
This is a course centered around Java and the powerful code refactoring tooling in the Java ecosystem. Even though the general concepts can be applied to any and all programming languages.

You’ll gain a whole vocabulary for small code changes that can build up to a big improvement in readability, performance and ability to test the code.
We’ll go over some very basic refactoring techniques, and we’ll build a heuristic on how to chain these simple blocks to a much richer refactor, and then we’ll practice recognizing these patterns in more production-like code bases.
We’ll also practice some TDD to make sure the refactoring did not break existing code, and how tests and refactors yield a better design.

After finishing the course, the student will receive a Completion Certificate.

Code Refactoring Course topics

  • Basic building blocks of refactoring
  • Extract and Inline method
  • Extract and inline variable
  • Change method signature
  • Introduce parameter
  • Rename
  • Move method
  • Some more advances refactors
  • Parameter Object
  • Pull up/Push down
  • Introduce Interface and implement class
  • Generalize declared Type
  • Remove middleman
  • How to better integrate these patterns the tools we are using (IDE)
  • Refactor chaining
  • Test-driven development
  • Code refactoring Outline


  • Lesson 1: Introduction & Philosophy
  • Lesson 2: Basic refactoring
  • Practical Guided Exercises: based on lessons 1 & 2
  • Lesson 3: Advanced refactoring
  • Lesson 4: Refactor Chaining
  • Practical Guided Exercises: based on lessons 3 & 4
  • Lesson 5: Review and heuristics building
  • Lesson 6: Production-like examples and closing thoughts

Reference Materials: Alongside the course, students will be given reference materials with additional information.

What will you learn during the Code Refactoring Course?

  • What is a "refactor"
  • Deepen the knowledge of the tools we work with (IDE)
  • Effectively working with an existing code base
  • Iterate a design to improve readability, performance and ability to test the code
  • Overcome difficult to understand code base

Starting Date, Duration & Schedule of the course

Starting Dates:

  •  No dates are scheduled for this course. Let us know if you think we should organize it near you, or if you’d like to book it on premise in your organisation.

Duration: This course consists of 12 hours divided into 6 sessions of 2 hours each (2 weeks).

Schedule: Mondays, Wednesdays and Fridays


Joaquin Azcarate

Joaquin Azcarate is a Backend Engineer at Apiumhub who enjoys functional programming, programming design and architecture discussion. He has extensive knowledge working with Java, with different IDEs, creating refactor chanining and competing in “code golf” initiatives.

Price & Payment Method

Get a quote

Interested in this course? Contact us!