Opening Remarks of the. NET Enterprise Application Architecture Design Series

Source: Internet
Author: User

This article is original by spanzhang (Zhang youbang) and released:Http://blog.csdn.net/spanzhang. Repost or reference the source of the original article. Thank you!

In fact, I wanted to write something about architecture design a long time ago and it has never been implemented. During this period of time, I decided to write the content related to the architecture design into a series of articles. It gives back to the various free services provided by CSDN, and gives a little tip to the beginner's architecture design friends. In my six years of work, apart from the first year of pure coding, I have been working on Architectural Design for the rest of the time, and of course I have been writing various types of code. That is to say, I only have a small amount of experience to share, so some ideas in this article cannot be shared by everyone. If you have any objection, you can send an email to discuss it with me.

1. architecture design is easy.
For programmers who are unfamiliar or have no experience in architecture design, the architecture design may seem mysterious, and they do not know how to start or what issues to pay attention. In fact, architecture design is only a part of software system development. The development, maintenance, and change of the entire software system also involves many things, including technology, team, communication, market, and environment. There are also many routines and principles when analyzing and designing the architecture. As long as we analyze the problem according to some basic and simplest ideas and directions, you can get an architecture that roughly meets the actual situation. I have previously written two articles about how the human brain thinks about complex systems: cracking complexity and fighting complexity with SOA. This is a methodology issue in software development. It can run through multiple stages of software development, including architecture design, coding implementation, and post-maintenance. Master certain principles to achieve twice the result of architecture design.

2. architecture design is not a simple task.
Although architecture design is easy, it is not as simple as most programmers without architectural design experience imagine. By putting several servers together, each server is allocated with software for running, and then connected over the network, it seems that every enterprise-level application is just a few simple steps. However, in real life, software systems can be described as complex systems. Many people and things are involved in planning, development, maintenance, and change. Architecture design is to take the following things into consideration in the planning stage, and to make efforts for stability, but also to think about maintainability, scalability, and many performance indicators. In addition to technical considerations, we also need to consider human factors, including personnel organization, software process organization, and team collaboration and communication. Maybe you will say that these are all about project management and have nothing to do with architecture design. However, the architecture that a team member cannot implement has no practical significance. In addition, today is the age of solutions. Many things can be solved in multiple ways. How to make decisions among various options may cause a headache for many people. Your experience, the quality of the team, the requirements of the leadership, the pressure on the environment, and market changes are enough.

3. architecture design requires methodological guidance
Therefore, in general, under the guidance of the correct methodology, complex architecture design is actually an easy task. The ideas of these methodologies include top-down analysis, separation of concerns, and horizontal/vertical module division. Sometimes I think that architecture design decisions are like browsing Google Earth. They actually reflect a top-down decision-making process. Decomposition of problems is the basic quality of software thinking, which can be horizontal decomposition, vertical decomposition, and the combination of the two. Whether the problem can be resolved efficiently and accurately is the first project that software developers need to train. In addition, graphical tools in architecture design are very useful. They can express the structure and operation mechanism of the system in a graphical way. This is why the architecture design is the misunderstanding of frame drawing. Furthermore, architecture design is an engineering task that requires a high degree of practical experience of the parties involved. Only when you have a comprehensive understanding of the various technologies on the market can you design an architecture that best meets various design constraints.

It's an opening remark. Follow the details below.

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.