Skip to content

Instantly share code, notes, and snippets.

View glenegbert's full-sized avatar

Glen Egbert glenegbert

View GitHub Profile
**What is technical debt?**
Credit card analogy
credit cards allows you to buy what you want now(shots at the bar, new iPhone, attendance at Turing)/you feel the pain later
technical debt is the same - companies get features/customers/revenue faster for less $ up front but comes with problems later
**Common Causes of technical debt**
Business pressures, where the business considers getting something released sooner before all of the necessary changes are complete, builds up technical debt comprising those uncompleted changes.
Lack of process or understanding, where businesses are blind to the concept of technical debt, and make decisions without considering the implications.
Lack of building loosely coupled components, where functions are not modular, the software is not flexible enough to adapt to changes in business needs.
Lack of test suite, which encourages quick and risky band-aids to fix bugs.
1. Why do we refactor?
to make code more expressive, easier to understand, more efficient
2. What's the difference between "refactoring" and "changing shit"?
refactoring makes it better
3. What role do patterns play in refactoring?
they help us id similar probs
4. Why do some refactoring patterns seem to be opposites?