Å·±¦ÓéÀÖ

Software Architecture Quotes

Quotes tagged as "software-architecture" Showing 1-16 of 16
Robert C. Martin
“I'm a programmer. I like programming. And the best way I've found to have a positive impact on code is to write it.”
Robert C. Martin, Clean Architecture

Robert C. Martin
“All race conditions, deadlock conditions, and concurrent update problems are due to mutable variables.”
Robert C. Martin, Clean Architecture

Robert C. Martin
“The perfect kind of architecture decision is the one which never has to be made”
Robert C. Martin

Yegor Bugayenko
“Just by making the architect role explicit, a team can effectively resolve many technical conflicts.”
Yegor Bugayenko, Code Ahead

“If the application is event-driven, it can be decoupled into multiple self-contained components. This helps us become more scalable, because we can always add new components or remove old ones without stopping or breaking the system. If errors and failures are passed to the right component, which can handle them as notifications, the application can become more fault-tolerant or resilient. So if we build our system to be event-driven, we can more easily achieve scalability and failure tolerance, and a scalable, decoupled, and error-proof application is fast and responsive to users.”
Nickolay Tsvetinov, Learning Reactive Programming with Java 8

“[...] you shouldn't be uneasy about any parts of the architecture. It shouldn't
contain anything just to please the boss. It shouldn't contain anything that's hard for you
to understand. You're the one who'll implement it; if it doesn't make sense to you, how
can you implement it?”
Steve McConnell, Code Complete: A Practical Handbook of Software Construction

“Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.”
Jamie Zawinski

Robert C. Martin
“The component structure cannot be designed from the top down. It is not one of the first things about the system that is designed, but rather evolves as the system grows and changes.”
Robert C. Martin, Clean Architecture

“Just because architecture is supposed to be stable, it does not mean that it should never change.”
Gereon Hermkes, Scaling Done Right: How to Achieve Business Agility with Scrum@Scale and Make the Competition Irrelevant

Gregor Hohpe
“Evolving a widely reused resource also requires coordination because changes must be compatible with all existing systems or users. Such coordination can slow down innovation... Some digital companies have even begun to explicitly favor duplication because their business environment rewards economies of speed.”
Gregor Hohpe, The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise

Felienne Hermans
“Despite being roughly twice as many characters, it requires a fraction of the mental effort when you read it”
Felienne Hermans, The Programmer's Brain

Neal Ford
“Even if the ecosystem doesn’t change, what about the gradual erosion of architectural characteristics that occurs? Architects design architectures, but then expose them to the messy real world of implementing things atop the architecture. How can architects protect the important parts they have defined?”
Neal Ford, Building Evolutionary Architectures: Support Constant Change

Neal Ford
“All too often architects make a decision that is the correct decision at the time but becomes a bad decision over time because of changing conditions like dynamic equilibrium. For example, architects design a system as a desktop application, yet the industry herds them toward a web application as usersâ€� habits change. The original decision wasn’t incorrect, but the ecosystem shifted in unexpected ways.”
Neal Ford, Building Evolutionary Architectures: Support Constant Change

Neal Ford
“For any dimension in our architecture that requires protection from the side effects of evolution, we create fitness functions. A common practice in microservices architectures is the use of consumer-driven contracts, which are atomic integration architecture fitness functions.”
Neal Ford, Building Evolutionary Architectures: Support Constant Change

Neal Ford
“The other new role that evolutionary architecture creates has enterprise architects defining enterprise-wide fitness functions. Enterprise architects are typically responsible for enterprise-wide nonfunctional requirements, such as scalability and security. Many organizations lack the ability to automatically assess how well projects perform individually and in aggregate for these characteristics. Once projects adopt fitness functions to protect parts of their architecture, enterprise architects can utilize the same mechanism to verify that enterprise-wide characteristics remain intact.”
Neal Ford, Building Evolutionary Architectures: Support Constant Change

Neal Ford
“Metrics are a common adjunct to the deployment pipeline in incremental change environments. If teams use this effort as a proof-of-concept, developers should gather appropriate metrics for both before and after scenarios. Gathering concrete data is the best way to for developers to vet the approach; remember the adage that demonstration defeats discussion.”
Neal Ford, Building Evolutionary Architectures: Support Constant Change