Refactoring Strategy for Big Design Smells
Agile design or emergent design relies heavily on timely refactoring efforts that aim to improve existing design. Yet often, when the code base grows or when someone else's code is handed over to us, there is a reluctance to refactor existing code - despite an obvious design smell. While the reasons to avoid refactoring may be well-grounded – lack of time, lack of understanding or fear of breaking it – in the long term, delaying code refactoring makes the code rot further. And, as a result, technical debt continues to pile up.
This session begins by reviewing common design smells, discusses five key features of good code and then discusses a common yet often overlooked design smell in detail – big methods. Using an example of a big method, it proposes a refactoring strategy that will ensure that a refactoring effort does not cause any negative side effects. During the session, participants are walked through a real code refactoring example – step by step.
Though the session focuses on one particular design smell (big methods), the proposed refactoring strategy should apply equally well to other design smells too.
Outline/Structure of the Case Study
Introduction – 2 min
Slide Presentation – 20 min
Code refactoring exercise – 30 min
Q&A – 8 min
A Quick Review of Design Smells
Why Big Methods are considered a design smell?
Why code refactoring is an essential practice to contain Technical Debt?
A proven strategy for refactoring existing code without breaking it
Walkthrough of a code refactoring example
Developers, Tech leads, Architects, Managers
schedule Submitted 4 years ago
People who liked this proposal, also liked:
Saket Bansal - How to fix team dysfunction?Saket BansalDirectoriZenBridge
schedule 4 years agoSold Out!
Many teams suffer from dysfunction where they lack trust and have huge communication overhead. Can we fix it? I do not have directly plug and play solution for this but I have done some experiments in this area which I would like to share during this talk.
To give some idea things like following will get presented with real life experience
- Right Information radiators
- Culture of Accountability
- Fixing the Process or work allocation and monitoring
- Promote Healthy Conflict
- Show vulnerable side of you
- And many more… I am still exploring.