Quotes from Robert C. Martin
MacBook is at least 1022 more powerful than those early computers that I started using half a century ago
~ Robert C. Martin
BazillionQuotes.com
O objetivo da arquitetura de software é minimizar os recursos humanos necessários para construir e manter um determinado sistema.
~ Robert C. Martin
BazillionQuotes.com
I used to think 2000 lines was a big program. After all, it was a full box of cards that weighed 10 pounds. Now, however, a program isn't really big until it exceeds 100,000 lines.
~ Robert C. Martin
BazillionQuotes.com
It doesn't take a huge amount of knowledge and skill to get a program working. Kids in high school do it all the time. Getting it right is another matter entirely. When software is done right, it requires a fraction of the human resources to create and maintain.
~ Robert C. Martin
BazillionQuotes.com
You know you are working on clean code when each routine turns out to be pretty much what you expected.
~ Robert C. Martin
BazillionQuotes.com
If we tried to design the component dependency structure before we designed any classes, we would likely fail rather badly. We would not know much about common closure, we would be unaware of any reusable elements, and we would almost certainly create components that produced dependency cycles. Thus the component dependency structure grows and evolves with the logical design of the system.
~ Robert C. Martin
BazillionQuotes.com
THE STABLE DEPENDENCIES PRINCIPLE Depend in the direction of stability.
~ Robert C. Martin
BazillionQuotes.com
When you look at the top-level directory structure, and the source files in the highest-level package, do they scream "Health Care System," or "Accounting System," or "Inventory Management System"? Or do they scream "Rails," or "Spring/Hibernate," or "ASP"?
~ Robert C. Martin
BazillionQuotes.com
Jacobson makes the point that software architectures are structures that support the use cases of the system. Just as the plans for a house or a library scream about the use cases of those buildings, so should the architecture of a software application scream about the use cases of the application.
~ Robert C. Martin
BazillionQuotes.com
One sure way to make a software component difficult to change, is to make lots of other software components depend on it.
~ Robert C. Martin
BazillionQuotes.com
The LSP makes clear that in OOD the ISA relationship pertains to behavior . Not intrinsic private behavior, but extrinsic public behavior; behavior that clients depend upon.
~ Robert C. Martin
BazillionQuotes.com
A good architecture makes it unnecessary to decide on Rails, or Spring, or Hibernate, or Tomcat, or MySQL, until much later in the project. A good architecture makes it easy to change your mind about those decisions, too. A good architecture emphasizes the use cases and decouples them from peripheral concerns
~ Robert C. Martin
BazillionQuotes.com
The word "architecture" is often used in the context of something at a high level that is divorced from the lower-level details, whereas "design" more often seems to imply structures and decisions at a lower level. But this usage is nonsensical when you look at what a real architect does.
~ Robert C. Martin
BazillionQuotes.com
The diagram in Figure 14.5 shows X, which is a stable component. Three components depend on X, so it has three good reasons not to change. We say that X is responsible to those three components. Conversely, X depends on nothing, so it has no external influence to make it change. We say it is independent.
~ Robert C. Martin
BazillionQuotes.com
The web is a delivery mechanism—an IO device—and your application architecture should treat it as such. The fact that your application is delivered over the web is a detail and should not dominate your system structure. Indeed, the decision that your application will be delivered over the web is one that you should defer. Your system architecture should be as ignorant as possible about how it will be delivered.
~ Robert C. Martin
BazillionQuotes.com
Working overtime is not a way to show your dedication to your employer. What it shows is that you are a bad planner, that you agree to deadlines to which you shouldn't agree, that you make promises you shouldn't make, that you are a manipulable laborer and not a professional.
~ Robert C. Martin
BazillionQuotes.com
Figure 14.6 shows Y, which is a very unstable component. No other components depend on Y, so we say that it is irresponsible. Y also has three components that it depends on, so changes may come from three external sources. We say that Y is dependent.
~ Robert C. Martin
BazillionQuotes.com
Duplication may be the root of all evil in software.
~ Robert C. Martin
BazillionQuotes.com
a good architecture must support: • The use cases and operation of the system. • The maintenance of the system. • The development of the system. • The deployment of the system.
~ Robert C. Martin
BazillionQuotes.com
Think about how you can preserve the use-case emphasis of your architecture. Develop a strategy that prevents the framework from taking over that architecture.
~ Robert C. Martin
BazillionQuotes.com
The moral of the story is simple: Test code is just as important as production code. It is not a second-class citizen. It requires thought, design, and care. It must be kept as clean as production code.
~ Robert C. Martin
BazillionQuotes.com
Clean code is focused. Each function, each class, each module exposes a single-minded attitude that remains entirely undistracted, and unpolluted, by the surrounding details.
~ Robert C. Martin
BazillionQuotes.com
STABILITY METRICS How can we measure the stability of a component? One way is to count the number of dependencies that enter and leave that component. These counts will allow us to calculate the positional stability of the component.
~ Robert C. Martin
BazillionQuotes.com
All race conditions, deadlock conditions, and concurrent update problems are due to mutable variables. All the problems we face in applications that require multiple threads, and multiple processors—cannot happen if there are no mutable variables.
~ Robert C. Martin
BazillionQuotes.com
