Architecture with Chat

Source: Internet
Author: User

Read Catalogue
    • Definition of Schema
    • How to start designing a schema
    • Features of a good architecture
    • Make a mistake in architecture
    • Conclusion

I. Definition of architecture

  There are 1000 "best-of-architecture" patterns in the so-called 1000 architects.

"Architecture" is one of the most common words in our industry, suggesting that it is also a word that has been shaped by a long years of polishing. What is the meaning of the term architecture? In order to solve what problem? Only by thinking about these 2 problems can we design a good project structure.

I think the architecture is similar to drawing a house design, in the beginning we build a small house, patted the forehead to think about, the brain has a general appearance began to work, how to cover how to cover, in most cases will not appear. But when you build a building, the way you clap your forehead may still work, but without deliberate consideration, it's a matter of necessity. In addition, the size of the building and the one-storey hut required for the team must be different, everyone in the heart of the standard is different, if there is no uniform norms, the final results can be imagined. So the architecture is to limit the rules, is to weigh the parties after the loss of a "most reasonable decision", it is to guide everyone in the team at the ideological level of consistency, so that the final product to achieve the same as a person made out of the same. Also has the control complexity, enhances the team cooperation ability, reduces the cost and so on the function.

In software development, the meaning of architecture is not just for the team to agree, because the essence of our work is to make better software products that support the business development, so the architecture is also based on the business architecture. I think a good architecture can anticipate business development in advance for 1-2 years. This can pay a more reasonable price to truly achieve the effect of technology leading business growth. I believe most of the people who have been in small and medium-sized companies should have experienced the times of being pushed by the business, every day is stuck here, hang up here, error here and so on. When we come across these issues, it's time to take the cost to consider whether there is a problem with the current architecture.

Ii. How to start designing an architecture

  One of the most important things about architecture is the bullying of the business, and any architecture that does not operate on a whim is a matter of fact.

Architecture is not like writing code, right is right, wrong is wrong, it is not right and wrong, is a process of trade-offs. It's really difficult when we start with the 0 architecture. Although everything is difficult at first, a good beginning is half the success, which will give us a solid foundation for the work we are going to do.

Below to explain how the author of the personal how to do a structure from the beginning, for everyone to reference the study:

1. The architecture is a whole--and part of the process, first of all the company/organization to provide the external service is what? This is the top-level strategic architecture, which is fundamentally difficult or even impossible to change once it is determined.

2. Divide the solution for each part (for example, a service for SOA). For example, according to the company's organizational structure or products.

3. Find the core features and support capabilities of each solution. and form a business overview map

4. It is the most time-consuming point in the whole process, which determines the complexity of the architecture and the cost of development, and makes the final decision based on the current actual resource situation. This includes, but is not limited to, extracting reusable functionality, the combination of functions, the ability to split the finer granularity to improve reusability, and more. All of these decisions have to be "just right". Never blindly follow the breeze of micro-service! Never blindly follow the breeze of micro-service! Never blindly follow the breeze of micro-service! The important thing to say 3 times. The finer the granularity of the service, the more complex the invocation of the link, and the suitability of the development cost for the team, as a point that architects need to focus on.

5. Establish a collaborative approach between each function block, including, but not limited to, communication, communication protocols, dependencies, etc.

6. Finally, this is a final architectural overview, which helps to take a higher view of the evolution of the architecture. If you are re-architecting for existing projects, then you need to comb out the existing project structure as part of our thought process.

a city features of a good architecture

  First of all from the mentality must have the Craftsman spirit, because the software architecture and build the house still have different, it is not the beginning of one step, good design must undergo repeated modification, from simple to complex cycle verification, continuous polishing.

In the direction I think the following points are divided:

1. Documentation: The whole or part of the entire life cycle must be documented, the source of changes including but not limited to bugs, requirements.

2. High availability: To improve the usability of the software as much as possible, I think every operator is unwilling to see that his work is not working properly. Black box white box testing, unit testing, automated testing, fault injection testing, improve test coverage, and other ways to step by step.

3. Security: Data generated during the operation of an organization is commercially valuable, and ensuring the safety of the data is an urgent part. So as to avoid the scandal such as XX door. Encryption, HTTPS, etc. as a universal means

4. Extensible: Software design adhering to the concept of low coupling to do, attention in a reasonable place to abstract. Facilitates functionality changes, new and applied technology iterations, and enables refactoring of the architecture at the right time.

5. Rapid iteration: Embrace change, seize strategic opportunities.

6. High degree of autonomy: in order to better support 4th and 5th, the benefit of a high degree of autonomy for each function is that it can be quickly iterated and minimizes the impact on the entire system, whether functional iterations or technical iterations.

7. High reuse: In order to avoid duplication of effort, in order to reduce costs, we want to be able to reuse the previous code, the previous design. This is most dependent on the architecture environment.

8. Verifiable: A good framework needs to take into account a variety of special circumstances, and can be specific validation.

Iv. making mistakes in the architecture

  To do anything, you need to constantly jump out of the original thinking angle to re-examine, so as to avoid falling into the mire. List a few misconceptions I can think of:

The myth that the architecture is built specifically by architects, business developers do not need to pay attention to: the architecture of the better, ultimately the need for code to land, and the larger the organization, the more difficult the landing. Not only is the system architecture, each solution also consists of its own architecture, such as tiering, design patterns, and so on. If each tile is not strong enough, then the whole system will still be at risk of collapse. The so-called "dikes, Yixue".

Myth 2--After the architect has determined the architecture blueprint, the task is over: The architecture is not "castles in the Castle", and ultimately it will be landed, but the architect does not go deep into the front line how to Know "where"? How to fall the steady.

Misunderstanding 3--do not make perfect architecture design does not work: There is no best architecture, only the most appropriate architecture. What we need is not to build a car all at once, but from a single wheel-------bike----and finally to the car. Imagine a product that could be created after 2 years, and the market still exists?

v. Conclusion

  The road to architecture is long and heavy. Programming and architecture design is interoperable, everyone can design a program to design a system architecture forward. If it is not enough now, I recommend that you can start with the concept of domain-driven design, which is a business-oriented design approach, you can cultivate the design of the landing of the architecture has a great help. I also happen to be writing how to design an e-commerce website series with DDD Step by step, hoping to give you some ideas and inspiration. Finally quoting "Yu June" a famous saying, we as architects should have "the spirit of Doubt: self-iteration" of the heart.

Architecture with Chat

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.