logo

Quotes from Robert C. Martin

Adding manpower to a late project makes it later.
~ Robert C. Martin
Building a project should be a single trivial operation.
~ Robert C. Martin
An estimate is not a number. An estimate is a distribution.
~ Robert C. Martin
The perfect kind of architecture decision is the one which never has to be made
~ Robert C. Martin
Three arguments (triadic) should be avoided where possible. More than three (polyadic) requires very special justification—and then shouldn't be used anyway.
~ Robert C. Martin
Just as the Hare was overconfident in its speed, so the developers are overconfident in their ability to remain productive.
~ Robert C. Martin
No matter how elegant it is, no matter how readable and accessible, if it hath not tests, it be unclean. Dave
~ Robert C. Martin
Another problem with service-level decoupling is that it is expensive, both in development time and in system resources. Dealing with service boundaries where none are needed is a waste of effort, memory, and cycles. And, yes, I know that the last two are cheap—but the first is not.
~ Robert C. Martin
The unit tests are documents. They describe the lowest-level design of the system.
~ Robert C. Martin
Design and programming are human activities; forget that and all is lost. —Bjarne Stroustrup, 1991
~ Robert C. Martin
This is the monstrosity in love, lady, that the will is infinite, and the execution confined; that the desire is boundless, and the act a slave to limit. —William Shakespeare
~ Robert C. Martin
LeBlanc's law: Later equals never.
~ Robert C. Martin
In fact, wrapping third-party APIs is a best practice. When you wrap a third-party API, you minimize your dependencies upon it:
~ Robert C. Martin
The first value of software—behavior—is urgent but not always particularly important. The second value of software—architecture—is important but never particularly urgent.
~ Robert C. Martin
FUNCTIONS SHOULD DO ONE THING. THEY SHOULD DO IT WELL. THEY SHOULD DO IT ONLY.
~ Robert C. Martin
If we all checked-in our code a little cleaner than when we checked it out, the code simply could not rot.
~ Robert C. Martin
The Dependency Inversion Principle (DIP) tells us that the most flexible systems are those in which source code dependencies refer only to abstractions, not to concretions.
~ Robert C. Martin
Architecting for the enterprise, when all you really need is a cute little desktop tool, is a recipe for failure.
~ Robert C. Martin
Code, without tests, is not clean. No matter how elegant it is, no matter how readable and accessible, if it hath not tests, it be unclean. Dave
~ Robert C. Martin
Duplication is the primary enemy of a well-designed system.
~ Robert C. Martin
Every system is built from a domain-specific language designed by the programmers to describe that system. Functions are the verbs of that language, and classes are the nouns.
~ Robert C. Martin
A system that is comprehensively tested and passes all of its tests all of the time is a testable system. That's an obvious statement, but an important one. Systems that aren't testable aren't verifiable. Arguably, a system that cannot be verified should never be deployed.
~ Robert C. Martin
It is a myth that we can get systems "right the first time." Instead, we should implement only today's stories, then refactor and expand the system to implement new stories tomorrow. This is the essence of iterative and incremental agility.
~ Robert C. Martin
Without tests every change is a possible bug. No
~ Robert C. Martin