Chapter 7 Architecture Perspective

Architects are usually technical and business balanced, and architects should be able to master architectural perspective. Perspective is the ability to step back and see architecture from many different vantage points.

Architecture principles

  • Rule of least surprises: People with a certain level of knowledge should not be surprised when they first encounter system elements. Suitable for user interface visualization.
  • The least knowledge principle (Demeter’s law) : reduce coupling between independent functions, and increase cohesion for highly related functions. (Do one thing better for each feature)
  • The minimum amount of work (Zipf’s Law) : The least amount of work done to solve the problem at hand is the least amount of work done to solve the total problem.
  • The opportunity cost principle: Seeks to determine how to build systems in the most cost-effective way in the future. (Pay more attention to the changing trend of the system)
  • Single responsibility principle: A module or function of a system should have only one responsibility.
  • The Principle of streamlining (Occam’s Razor or KISS) : Eliminate unnecessary features and the minimum assumptions necessary to complete a task. (Refer to the 80-20 rule.)
  • The Last moment of Responsibility principle (cost of delay) : Wait until you have to make a decision, while prototyping and proof-of-concept to mitigate waiting risks
  • Feedback principle: Use feedback loops to help provide a navigational structure for decision making to aid in the next step.

Architectural concerns

Availability: Only what level of availability the system needs to achieve. Scalability: The system’s ability to respond (usually when resources are critical, the system actively notifies management of load balancing, etc.) Scalability: The system’s ability to add or change components only. Repeatability: The business consistency of a system. Data is processed consistently before and after operations. Compatibility: The ability to introduce non-destructive changes into the system, or the ability to use old functionality. Sustainability: The system does not remain architecturally relevant due to unexpected chaotic state changes. Security, disaster, business continuity, and open source license third-party integration