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/4
which you can then turn into 3/4
.3/4
but we have made it easier for us to work with; by changing 1/2
to 2/4
it fits into our "domain" easier.name
in a particular language
if
statements doesn't feel good and we have a duplication of concatenating a language specific greeting with ,
and the name.
So I'll refactor the code.Hello
function could look like thisgo test
and 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.