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:
November 17th & 18th | 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 comprehensive set of live-coding exercises, targeting the most powerful refactoring moves, interweaved with brainstorms on topics like design, motivation, attitude, professional ethics, and more. Besides the exercises, participants and trainer will work out together a more complex coding kata, plus several production code snippets, ideally from the audience. The training is spiced with analogies, stories and jokes that will make it a very pleasant and memorable experience.

Concepts and Principles

  • Fundamental Concepts:
      » Economics of money, time and emotions in code; The 3 Hats Metaphor
    • » Technical Debt: main reasons and workarounds
    • » Refactoring Blockers: Time, Fear, Branches, and 10 more; practical advices
    • » Refactoring Opportunities: Boy Scout Rule, Comprehension, Preparatory,
    • » Planned and TDD
    • » Code Smells: common micro-design problems and fixes
    • » Safe Refactoring with baby steps: best practices and hands-on tricks
  • Writing Expressive Code:
      » Refining meaningful names for variables and methods
    1. » Comments: Bad/Good/Life-saving
    1. » Separation by Layers of Abstraction
    1. » Clean Code guidelines for Functional Programming
  • Functions:
      » Avoiding Boolean parameters, Guard Clauses
    1. » Number of parameters
    1. » Null vs Optional<>
    1. » Pure Functions: definition, functional core / imperative shell segregation, real-life application
    1. » Refactoring Monster Functions (50-500 lines), techniques to reduce code depth
  • Exception Handling Best Practices: global exception handler, where to catch, exceptions vs Lambdas
  • Classes:
      » True Object-Oriented Design: Encapsulation, Law of Demeter, Tell Don’t Ask, Feature Envy
    1. » Immutable Objects: benefits, tricks, immutability mindset, real-world usage
    1. » How to avoid bloated Service classes
    1. » Programming Paradigms: Mixing Imperative, Object and Functional effectively

Refactoring Techniques:

  • Extract-Inline Variable, Split Variable to avoid semantic overload
  • Extract-Inline Method + Parameterize for Reuse, Move Statements to Function / to Callers
  • Extract-Inline Parameter, Change Method Signature
  • Split Loop, => Functional Pipeline
  • Boolean Logic: Early Return, Encapsulate Conditional, Assertions, Introduce Null Object [opt]
  • Move Function (static and instance)
  • Introduce Parameter Object
  • Split Phase
  • Extract Method Object
  • Extract Class
  • Encapsulate Attribute/Collection
  • Refactor to Immutable Objects
  • Constructor to Factory Function
  • Refactoring Inheritance [opt]

Refactoring Exercises

  • Refactoring Coding Kata (~3h)
  • 2 x Real-World Refactoring Exercises
  • Productivity tips for your IDE (along the way)

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