What is architecture all about

What does architecture do? There’s a business architecture on the front end and a technical architecture on the back end. What’s the difference? To do something, to solve a problem, to have a conversation, to use design patterns as architecture, not necessarily. The IT industry has long been the category of the building industry, architects and IT engineers have become architecter, whether they have a relationship, the architect is to decide the space allocation of the house, the flow of people, the expansion of facilities, but they are not necessarily very understand the heating, ventilation and lighting, because there are specialized engineers, Or you don’t have to be very knowledgeable about what the latest facilities are and how they are installed, because there are specialized equipment engineers. So architects make these decisions based on an understanding of existing capabilities and past experience. The architect determines the allocation of space, the flow of people, the extension of facilities (heating, ventilation and lighting). The architect determines the layout of functions, the flow of data between business components, and the development and maintenance of the project itself. The architect mainly does these things. Digging deeper into what the architect is essentially doing, I think it’s using past experience to define and past accumulated technology to define the project.

Architect and engineering values

Consider a question: why do some projects become more difficult to maintain, and why do structures corrod? After thinking about it, I summarize the answer as engineering values. It is reflected in many aspects, for example, there are many problems in the project, some problems are similar, in solving these same or similar solutions are really different, for example, today according to the intuition of a set of solutions, another day to meet similar problems in accordance with the intuition of another solution; Or how to choose when there is a fish and a bear’s paw can not have both, what is the difference between the fish and the bear’s paw, why to choose the fish and why to choose the bear’s paw. These issues further lead to engineering values. Engineering values are similar to Euclidean classical geometry, which was developed based on some classical theorems, and engineering values can classify these theorems. There are three axioms in engineering values:

  1. Engineering will grow

The architect needs to set some preconditions for the growth of the project, without which it will grow out of control. This presupposition needs to grow based on business specification engineering. For example, the data related to the user can be put in one table, and some other data such as the integral data is another business and there may be other businesses, they do not belong to the user’s own business, so need to be put in another table. Since the project will grow, this presupposition cannot be too fine.

  1. No two computer schemes are exactly the same

Analogy a philosophical proposition, the world does not exist two identical leaves. Computers are only allowed to have unique solutions, and that unique solution must be exclusive. Because of this exclusivity, all decisions need to be based, and if there are two similar problems and each decision produces a different solution, then the decision basis must be not fully considered. In fact, when considering the basis of decision, it is also preparing for the possible challenges in the future. It doesn’t matter if it’s the best solution, it’s the thinking.

  1. The cost of the project goes beyond development

For example, a complex function is written in one day. The cost of this project is not necessarily low, because it takes one day to develop and all functions are hardcode, which leads to longer testing and follow-up maintenance. The project should not only consider the development time, but also consider the subsequent maintenance cost. So the project needs to write code that interprets itself, preferably one that can help the novice learn.

Engineering values are actually a good tool to solve a problem. For example, if there are several options for an architecture and how to compare the advantages and disadvantages of each solution, you can think from the above three points. Engineering values don’t tell you exactly how to think about it, they tell you to think about it, they tell you to think about it when you’re doing an architecture, they tell you to conclude with theorems when you’re doing analogical geometry, but geometry doesn’t tell you how to conclude.