logo

Quotes from Robert C. Martin

Structured programming is discipline imposed upon direct transfer of control.
~ Robert C. Martin
Object-oriented programming is discipline imposed upon indirect transfer of control.
~ Robert C. Martin
It is no longer sufficient that every programmer does what is right in their own eyes. Some disciplines, standards, and ethics will come. The decision before us today is whether we programmers will define them for ourselves or have them forced upon us by those who don't know us.
~ Robert C. Martin
Functional programming is discipline imposed upon variable assignment.
~ Robert C. Martin
Objects hide their data behind abstractions and expose functions that operate on that data. Data structure expose their data and have no meaningful functions.
~ Robert C. Martin
If we really want to spend our days programming, we are going to have to learn to talk to—people.1
~ Robert C. Martin
If its dependencies are inverted, it has an OO design. If its dependencies are not inverted, it has a procedural design.
~ Robert C. Martin
It is far more common to fight your way through terrible software designs than it is to enjoy the pleasure of working with a good one.
~ Robert C. Martin
God is in the details, said the architect Ludwig mies van der Rohe.
~ Robert C. Martin
Software architecture is the art of drawing lines that I call boundaries. Those boundaries separate software elements from one another, and restrict those on one side from knowing about those on the other.
~ Robert C. Martin
Learning to write clean code is hard work. It requires more than just the knowledge of principles and patterns. You must sweat over it. You must practice it yourself, and watch yourself fail. You must watch others practice it and fail. You must see them stumble and retrace their steps. You must see them agonize over decisions and see the price they pay for making those decisions the wrong way.
~ Robert C. Martin
Recall that the goal of an architect is to minimize the human resources required to build and maintain the required system.
~ Robert C. Martin
A stitch in time saves nine. The early bird catches the worm. Don't put off until tomorrow what you can do
~ Robert C. Martin
Which kinds of decisions are premature? Decisions that have nothing to do with the business requirements—the use cases—of the system.
~ Robert C. Martin
creative output depends on creative input.
~ Robert C. Martin
The only way to make the deadline—the only way to go fast—is to keep the code as clean as possible at all times.
~ Robert C. Martin
Why does good code rot so quickly into bad code? We have lots of explanations for it. We complain that the requirements changed in ways that thwart the original design. We bemoan the schedules that were too tight to do things right. We blather about stupid managers and intolerant customers and useless marketing types and telephone sanitizers. But the fault, dear Dilbert, is not in our stars, but in ourselves. We are unprofessional.
~ Robert C. Martin
Because this ratio is so high, we want the reading of code to be easy, even if it makes the writing harder. Of course there's no way to write code without reading it, so making it easy to read actually makes it easier to write.
~ Robert C. Martin
The tragedy is that the architects, by making a premature decision, multiplied the development effort enormously.
~ Robert C. Martin
When classes lose cohesion, split them!
~ Robert C. Martin
is not the language that makes programs appear simple. It is the programmer that make the language appear simple!
~ Robert C. Martin
In Scrum, we make everything visible. We air our dirty laundry. We are honest about the state of our code because code is never perfect. We become more fully human, more worthy of the divine, and closer to that greatness in the details.
~ Robert C. Martin
Professionals use their powers for good and write code that others can understand.
~ Robert C. Martin
Cuteness in code often appears in the form of colloquialisms or slang. For example, don't use the name whack() to mean kill(). Don't tell little culture-dependent jokes like eatMyShorts() to mean abort(). Say what you mean. Mean what you say.
~ Robert C. Martin