What is a schema

Source: Internet
Author: User

What is a schema

This article is the first article of "Architecture Ramble" series. This article will focus on the "What Is Architecture", "What the architecture can solve", "the difference between architecture and framework" three points, this article is a personal point of view, if there is an incorrect place, please correct the discussion.

What is a schema?

Every time we develop a new project, we create a new solution and then build n projects in the solution. Each project through the "reference" to achieve the function of interaction, this process can be called the architecture, and the final product of the architecture is the SOFTWARE PRODUCT. Different programmers have two situations when building architectures: they are familiar with the business, are structured according to the business, are not familiar with the business, and are structured according to their own understanding. These two cases are described in the software engineering industry with two nouns, namely "implicit architecture" and "explicit schema".

For example, to allow an experienced programmer to develop a blog system, the experienced programmer's brain will have a blog system of the general structure, such as functions and so on. Conversely, if a novice to develop a blog system, then he may not understand the requirements, functions and other issues need to be delayed for a long time, so we need to show the architecture, through the sketch or UML to tell the programmer what the functional modules, and their associations and so on to help programmers develop.

The schema cannot be present without the system it needs to implement. Before we proceed with the software architecture, we need to understand how the system is related to the external environment and how it is embedded in the external environment. Architecture is the most important part of a system, and it is the pillar in the process of constructing system. We often need to understand a lot of things before we get to the system architecture. For example: Analyzing requirements, designing systems, and ensuring the viability of the architecture according to the technical language itself.

The perfect design is not the universal, but the complete self-consistency is not streamlined.

What problems can the architecture solve

This question can be answered in one sentence: architecture is to solve the complexity of the system, but also to ensure the maintainability of the system.

Once in the development phase, some of the features we define in the architecture cannot be easily changed. This simply means that it is not easy to change, not to change. While some features can change as the business changes, with the architecture, it's easy to change them. For example, a company needs to develop a financial system that does not have a professional staff structure before the system is developed, and a number of programmers start writing functions when they are finished. These programmers in writing a certain function point is not to consider this function others have written, directly began to write, but they wrote this function has been written by several people. At this point, the boss said that a function needs to be modified, then these repetitive "wheels" are modified, if a programmer forgot to modify the system will cause the crash. Or, if the programmer who wrote the financial system had resigned all the time, and the company was hiring to continue to develop the project, the lack of an overall architecture diagram could lead to the project failing to maintain, which could eventually lead to a project failure.

  

The difference between architecture and framework

Many people confuse the framework with the architecture. Frameworks are software, and architectures are not software.

A framework is a special software that does not provide an intact solution, but rather provides a good basis for building your solution. The frame is semi-finished. Typically, a framework is a semi-finished product of a system or subsystem, and the service grams in the framework is called directly by the final application system, and the extensibility points in the framework are "changeable points" that are customized by the application developer.

Architecture is not software, but an important strategy for how software is designed. Software architecture decision design to how to break down the software system into different parts, the static structure of the relationship between the parts and dynamic interaction and so on. After the complete development process, these architectural decisions will be reflected in the resulting software system, of course, after the introduction of software architecture, the entire development process becomes a "two-step", and architectural decisions are often reflected in the framework. Perhaps that's why people often confuse architecture with frameworks. We cannot point to some code, which is the software architecture, because the software architecture is an abstraction level concept that is higher than the specific code. Architecture is bound to be embodied and followed by code, but no specific code can represent architecture.

The emergence of framework technology and architecture technology is to solve the complexity of the software system and the difficulties brought about by the "divide and conquer" thinking of the result-----The first big picture after the local, there is a framework, the first universal after the special, there is a frame. This is well revealed. Architecture is an abstract solution to the problem, it focuses on the overall situation and ignores the details, while the framework is a generic semi-finished product and must be further tailored to the specific needs to become an application system.

Category:. Architecture ramble

What is a schema

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.