Victor Rentea

Java Champion, ex Lead Architect @IBM
Victor (@VictorRentea) is a Java Champion, and one of the top Technical Trainers, having trained more than 1.5K developers in dozens of companies worldwide.
Victor’s talks are regularly top-rated at the largest international conferences in Europe: his live-coding sessions are lightning-fast but well crafted, full of enthusiasm, deep insights and take-away tips. His passion is Simple Design, Refactoring, and Unit Testing, about which he regularly talks at top conferences. His personal commitment is to seed passion for writing clean, professional code.

Workshop topic:
Clean Code and Refactoring

Time & Date:
March 14th & 15th | 9am-5pm CET

About workshop

Learn code smells, key refactoring moves, and fall in love forever with writing impeccable code. The training is composed of a large set of live-coding exercises, targeting the most common and dangerous code smells, that we fix using powerful refactoring moves. All that interweaved with brainstorms on topics like design, motivation, attitude, professional ethics, and more. Besides the exercises, we will work out together a more complex coding kata, plus several production code snippets, ideally from the audience. The training is spiced with analogies, real-life stories and jokes that will make it a very entertaining and memorable experience.

Concepts and Principles

  • Introduction:
      » Technical Debt: main reasons and workarounds
      » Refactoring Blockers: Time, Fear, Branches, and ten more; practical advice
      » Refactoring Opportunities: Boy Scout Rule, Comprehension-, Preparatory-, Planned- and TDD
      » Code Smells: common micro-design problems and fixes
      » Safe Refactoring in baby steps - many hands-on tricks
  • Writing Expressive Code:
      » Refining meaningful names; How to avoid bloated Service classes
      » Introducing Value Objects; Primitive Obsession
      » Separation by Layers of Abstraction
      » [opt] Comments: Bad/Good/Life-saving
  • Functions:
      » Avoiding Boolean parameters, Guard Clauses
      » Number of parameters
      » Null-safety using Optionals and a Self-validating Model
      » Clean Code guidelines for Functional Programming
      » Pure Functions: functional core / imperative shell separation, real-world usage
      » Refactoring Monster Functions (50-500 lines): techniques to reduce code depth
      » [opt] Exceptions Best Practices: global exception handler, exceptions vs. Lambdas
  • Classes:
      » Object-Oriented Design Principles: Encapsulation, Law of Demeter, Tell Don't Ask, Feature Envy
      » Immutable objects: cost-benefit, deep/shallow immutability, collections, real-world usage
      » Mixing Programming Paradigms in Practice: Imperative, Object and Functional

Refactoring Techniques

  • Extract-Inline Variable, Split Variable
  • Extract-Inline Method, w/ parameterization for Reuse
  • Extract-Inline Parameter, Change Method Signature
  • Split Loop to Functional Pipeline (Stream)
  • Boolean Logic: Early Return, Encapsulate Conditional
  • Move Function (static and instance)
  • Introduce Parameter Object
  • Encapsulate Collection
  • Refactor to Immutable Objects [hard-core]
  • Split Phase [hard-core]
  • Dozens of Productivity tricks for your IDE (IntelliJ or Eclipse)

Larger Refactoring Exercises (besides various smaller code exercises)

  • Refactoring Coding Kata (~3h)

You can download the full program for this workshop at the following LINK.

* If you're interested in this program, please contact us at to find out more about availability and prices.