Unmaintainable code, repetitive bugs, time-consuming corrections, depressed teams ... No wonder most of us prefer to start projects from scratch (a.k.a. Greenfield) rather than a Legacy code base (Brownfield). For sure, situations where control has been lost are annoying, even more: exhausting. But what if we were wrong? What if -fully equipped with some refactoring techniques and communication skills- we were able to reverse things and get back control over such situations?
During a session with real live-coding inside, come and discover the tips and tricks from people who prefer to regain control rather than undergo. From people who prefers the hidden opportunities of the legacy to the blank pages of the Greenfield projects. You too, realize it could be fun and join the Legacy Club!
35. Our First job as a developer?
“Understand the domain
we’ll have to code”
( Jérémie GRODZISKI )
36. Put yourself in their shoes…
em-pa-thy
noun ’em-pe-thé
the feeling that you understand and share
another person's experiences and
emotions : the ability to share someone
else's feelings.
45. Egoless Programming
1. You are not your code
2. No matter how much “karate” you know, someone
else will always know more
3. The only constant in the world is change
Be open to it and accept it with a smile
4. Don’t be “the coder in the corner
5. Be kind to the coder, not to the code
6. Don’t rewrite code without consultation
7. …
62. Code Smells
Name your enemies
Long method
Large class
Long parameter list
Primitive obsession
Data clumps
Feature Envy
Inappropriate IntimacyMessage Chains
Divergent Change
Shotgun Surgery
Parallel Inheritance
Hierarchies
Switch
statements
Temporary field
Bad naming
Dead Code
Speculative Generality
Duplicate Code
Alternative classes with
different interfaces
Refused bequest
Conditional
Complexity
Indecent
Exposure
70. Test or the Egg?
We want to add more
tests to our code
We have to
refactor our code
to be testable
We can't refactor
without tests
71. Until you didn't set up a test
harness, brace yourself!
Hyperaware
Editing
Never change public
contractsa single goal at a time
Pair / MOB
Programming
Delegate to the
compiler