Victor Rentea

IBM Global Business Services

The Art of Clean Code

After 10 years of hard work experience in Java Enterprise applications, I started several years ago teaching various topics that I mastered (www.victorrentea.ro). Among all these topics, by far the most important topic, that I always include in all my training sessions is 'Clean Code'. It's essential to be able to keep 'alive' 100k-2M lines of code. And I was told that this module has the biggest impact in day-to-day life of the dev.

Also, this talk will also show how a professional developer should behave in code, the 'ethics code' that ough to be followed by everyone. We will go from the most basic concerns like how should we choose our names, how should we write our functions, format and (not) comment them, to more advanced topics of true Objects. The entire presentation is spiced with numerous esay to understand examples and code snippets.

The contents of the material mainly revolves around the Clean Code boogvof Uncle Bob plus many other sourcesm

Full abstract

The primary value of software is to be flexible. The secondary value of software is to do what business wants it to do.

Sounds insane? Just think a bit: what's the difference between IT and regular engineering? What propulsated IT that much? The ability to evolve, to adapt to new business needs. And we all know how difficult it is to adapt and strech old, dirty, rigid code.

Financially, the fact that 80% of the costs of a software project are in maintenance may not concern you, the developer, directly. But the fact that you read 10x times more time than you write code should make it clear to you: do your very best to write clean, beautiful code that is easy to understand and maintain. This talk explains how write such art.

Besides the bare writing of code, the talk will touch on the problematic of team work, code responsibility and cooperation, necessary to any professional software engineer.

This talk reviews the most important practical guidelines from the reference book 'Clean Code' by Robert C. Martin, as they proved essential in so many situations of my experience.

This is the central topic of any corporate trainings I hold, and the best module of my training portfolio. The ideas that we'll discuss together are most likely to have a deep impact on your day-to-day work, changing the way you think and write software.

Agenda:

• What is Clean Code

• Expressive Names

• Functions: Size, Signature, Extract Method Object refactor

• Functions: Side Effects & Temporal Coupling

• Classes: True Encapsulation? In enterprise Java apps?!

• OOP: 'Tell, Don`t Ask' Principle, Feature Envy

• Dependency Inversion Principle

• Code Formatting

• Comments are failures

• A Word on Clean Lamdas