Victor Rentea

// Java Champion, ex Lead Architect @IBM
Victor 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: Clean Code Essentials

What will you learn:

Fundamental Concepts (discussed throughout the day, inteweaved with coding) 

  • Economics of money, time and emotions in code;  The 3 Hats Metaphor 
  • Technical Debt: main reasons and workarounds 
  • Refactoring Blockers: Time, Fear, Branches, Motivation, and 10 more; hints on how to tackle them 
  • Refactoring Opportunities: Boy Scout Rule, Comprehension, Preparatory, Planned and TDD-flow 
  • Code Smells: a list of typical micro-design problems and fixes 
  • Good Refactoring means safe, tiny steps: real-world best practices and tricks

Writing Expressive Code: 

  • Refining explanatory variables and methods, close to domain language 
  • Consistent naming 
  • Comments: Bad/Good/Life-saving 
  • Separation by Layers of Abstraction 
  • Clean Lambdas and Streams (Java) 

Functions: 

  • Avoiding Boolean parameters, Guard Clauses 
  • Number of parameters 
  • How to flatten deeply nested functions: proper use of if, for, try and switch. 
  • Null vs Optional<> 
  • Pure Functions: definition, functional core / imperative shell, real-life application, advanced tricks 
  • Refactoring Monster Functions (50-500 lines) – Main Techiques Cheat Sheet

Exception Best Practices: global exception handler, where to catch, exceptions and Lambdas Classes: 

  • True Object-Oriented Design Immutable 
  • Objects: benefits, tricks, mindset of immutability, advanced real-world tricks 
  • How to avoid 1000+ lines Service classes 
  • Mixing Imperative with Object and Functional paradigms effectively

Effective use of your JetBrains/Eclipse/VSCode IDE: double your speed in 2 weeks! 🙂 

Exercise: hands-on refactoring 2-3h coding kata, brainstorming and discussing each step