Similar to the car is the pearl on the crown of modern industry, architecture design is also the pinnacle of the software industry. Just like every aspiring climber wants to climb The Pearl Mountain, every software person with an idea wants to climb the architectural design mountain to see, and summary is a way to climb.

Question: What is the problem with architectural design?Copy the code

Learning the process of software technology, like a dozen monster process, from the very beginning of language syntax, middleware to framework, and then to design pattern system operations, then to the needs of the business architecture design, eventually to be responsible for business artifact, this process is accompanied by professional and technical ability to grow, also accompanied by way of thinking method. There is a mantra that accompanies this process, and the mantra is “What is software architecture design?” .

If you want to answer what is software architecture design, you should first define this question clearly, otherwise it is wrong to answer it, because software architecture design is a multi-dimensional problem in nature, and there must be multiple answers to multi-dimensional problems. Only by defining the questions can you get the correct answer.

Architectural Design Origin

First of all, we need to define the problem. From the perspective of external benefits, who can gain benefits if the architecture design is well done? The following is a kind of revenue chain.

  1. Research and development personnel benefit from professional technology, can use more professional technology continuous iteration;
  2. The software system itself benefits, can have better stability and expansibility;
  3. Company project income, can have better product sales;
  4. User revenue, using a better system.

Supporting business technology

It is then inferred from the problem definition that user + R&D is really business + technology, how to support business development and technology iteration, the two factors are intertwined. There are several practical problems for software developers.

  1. Whose business is it?
  2. Whose technology is it?

Business belongs to users, while technology belongs to the industry. What most r&d personnel do is research and development rather than research or innovation. Research and development is to use existing industry technologies to meet user requirements. Spring family bucket +Redis+MQ+MySQL plus a microservice technology architecture, the space for developers to play is getting smaller and smaller (not absolutely), this part will not be discussed.

Business technology mapping

Finally, to answer this question, architecture design is a way that software technology supports user business development. An important idea of software architecture design is layering. Business and technology are not single points but layering. Technical layering includes hardware network bottom layer, software system middleware, business system research and development and user terminal use, etc. Each layer has different constraints. Architectural design is a process product of r&d to achieve business through technology.

Answer: Architectural design is a way of mapping multiple businesses onto layered technologies, and the architect is the mapping person.Copy the code

Architectural design = Architecture + design. Architectural design is a multidimensional problem, of course, there are a variety of answers, many articles online what architecture is, the interpretation framework, middleware, such as micro code design patterns, and service, etc., these really belong to a particular dimension architectural design, but I want to summarize “design”, how to set the user’s “business requirements” structured mapped to the technical architecture.

Besides architectural design, there are also non-technical professional factors such as team size, personnel capacity and project planning. After all, architectural design is a method of business implementation, and the important criterion to measure success is business implementation, which is also the difference between R&D and research.