The laws describe a balance between forces driving new developments on one hand, and forces that slow down progress on the other hand.
Any software system used in the real-world must change or become less and less useful in the environment
As a system evolves, its complexity increases unless work is done to reduce it
However the term "refactoring" is often used when it's not appropriate. If somebody talks about a system being broken for a couple of days while they are refactoring, you can be pretty sure they are not refactoring.
1/2 + 1/4
2/4 + 1/4which you can then turn into
3/4but we have made it easier for us to work with; by changing
2/4it fits into our "domain" easier.
namein a particular
ifstatements doesn't feel good and we have a duplication of concatenating a language specific greeting with
name.So I'll refactor the code.
Hellofunction could look like this
go testand get immediate feedback as to whether my refactoring efforts have altered behaviour. In practice it's best to learn the magic button to run your tests within your editor/IDE.