logo

Quotes from Martin Fowler

So I hope I've made clear that imposing agile methods is a very red flag.
~ Martin Fowler
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
~ Martin Fowler
I can only think of so many good ideas in a week. Having other people contribute makes my life easier.
~ Martin Fowler
Now I'm a pretty lazy person and am prepared to work quite hard in order to avoid work.
~ Martin Fowler
Why is composing symphonies tough? I don't know. It's just very few people in the world can do it well. And I think that's the case with upfront design. It is very hard to do well.
~ Martin Fowler
Repetition is the root of all software evil
~ Martin Fowler
An intuitive definition is that a safe refactoring is one that doesn't break a program. Because a refactoring is intended to restructure a program without changing its behavior, a program should perform the same way after a refactoring as it does before.
~ Martin Fowler
For diagrams comprehensiveness is the enemy of comprehensibility.
~ Martin Fowler
Code that communicates its purpose is very important. I often refactor just when I'm reading some code. That way as I gain understanding about the program, I embed that understanding into the code for later so I don't forget what I learned.
~ Martin Fowler
As I suggested before, temporary variables can be a problem. They are only useful within their own routine, and therefore they encourage long, complex routines.
~ Martin Fowler
Most programmers, even experienced ones, are poor judges of how code actually performs.
~ Martin Fowler
Even so the program works. Is this not just an aesthetic judgment, a dislike of ugly code?
~ Martin Fowler
So, my overall advice on performance with refactoring is: Most of the time you should ignore it. If your refactoring introduces performance slow-downs, finish refactoring first and do performance tuning afterwards.
~ Martin Fowler
Martin Fowler NoSQL Distilled: "In general, with remote communication you want to reduce the number of round trips involved in the interaction, so it's useful to be able to put a rich structure of information into a single request or response." Patterns of Enterprise Application Architecture" "Due to the latency costs of remote calls, it's better to err on the side of sending too much data than have to make multiple calls.
~ Martin Fowler
Moving state and behavior between classes is the very essence of refactoring. As the system develops, you find the need for new classes and the need to shuffle responsibilities around. A design decision that is reasonable and correct one week can become incorrect in another. That is not a problem; the only problem is not to do something about it.
~ Martin Fowler
Use this advice to prod your thinking, but don't use it as a replacement for your thinking. In the end you have to make, and live with, the decisions yourself.
~ Martin Fowler
It Takes Awhile to Create Nothing
~ Martin Fowler
If oy have to spend effort looking at a fragment of code and figuring out what it's doing, then you should extract it into a function and name the function after the "what".
~ Martin Fowler
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
~ Martin Fowler
I'm not a great programmer; I'm just a good programmer with great habits.
~ Martin Fowler
Whenever I have to think to understand what the code is doing, I ask myself if I can refactor the code to make that understanding more immediately apparent.
~ Martin Fowler
If you can get today's work done today, but you do it in such a way that you can't possibly get tomorrow's work done tomorrow, then you lose.
~ Martin Fowler
parts of classic MVC don't really make sense for rich clients these days.
~ Martin Fowler
A heuristic we follow is that whenever we feel the need to comment something, we write a method instead.
~ Martin Fowler