Using Microsoft. NET architecture for Enterprise Solutions (iii) Design Principles

Source: Internet
Author: User
The original version of the book titled ting Microsoft. NET solutions for the Enterprise

Preface

Designing a software system is very challenging because, on the one hand, you need to focus on today's needs, while at the same time, you need to be able to adapt to future changes to and increases in functionality.

Especially in the past two decades, the IT industry has done a lot of work to systematize the software development process. Methodology, design principles, and design patterns are used to help guide the architecture and build a system, and build a complex system in a standardized manner.

The goal of this chapter is to provide you with a quick tutorial on software engineering. First, there are some design principles that inspire the design of modern software systems. Then we will discuss the principles of object-oriented design. Throughout the process, we will also introduce the design pattern, language features, aspect-oriented, demand-driven design, and key factors that affect the design, such as testability, security, running performance,

Basic Design Principles

Writing code that can be run is one thing. Writing good code that can be run is another thing. It accepts a feature "writing good code that can work" and looks at the system's capabilities from a wider perspective. Finally, the best system is not just a product that implements functions. More are related, direct, and indirect designs.

This feature allows you to write good code that can run. For example, you can use some standards to evaluate the maintainability of the Code, such as International Organization for Standardization (ISO) and nternational Electrotechnical Commission (IEC ). You introduce these standards because maintainability is more important than scalability. Because of the high maintenance cost, developers are more frustrated and frustrated.

The Code should be easy to find bugs. fixing bugs is beyond the limit of scalability. Therefore, the maintenance design should be given the highest priority when designing the system.

Why is the cost of software maintenance so high?

Basically, if you produce software that does not meet the requirements, and you do not perform enough tests, or both of them exist, the maintenance cost will be high. What special features can make the software easy to maintain and evolve? Structured Design from the very beginning is the most practical way to achieve correct programming techniques. The readability of the Code is another basic point. If the Code has both internal documents and a change tracking system, it is the best. However, this seems to exist only in the perfect world.

Software that does not meet requirements is generally designed poorly. But what causes poor design?

There are usually two causes for poor design:

  • Technical insufficiency of Architects
  • Inaccurate requirements, or conflicts between requirements

So what are the requirements? Conflicting demands usually cause self-communication problems. During communication, communication is one of the most important technologies for architects to cultivate and improve.

There is no doubt that solving communication problems drives us to introduce Agile Methodology. How many people have a wrong understanding of agile movement? The biggest benefit it brings is not the theory itself, but continuous communication, which improves the efficiency among teams, teams, and customers. No matter how wrong you get in the first repeat process, you will correct it in the next repeat process, because communication is necessary for progress and clarification of incorrect understanding of requirements, understanding of fixing errors. This repetitive approach reduces the possibility of poor communication that causes high software maintenance costs. This is also the main reason why a group of developers and architects decided to build agile sports one day. Pragmatism is motivated, while fantasies are not motivated.

This means that you will remember that the trend of Agile Methodology increases development costs. You must make everyone involved aware of this. If the participants do not understand their own roles, or do not agree with this, or do not re-examine or review the work in the repetitive process, agility will fail. Therefore, the bottom line is that agility is not the magic wand that everyone uses to work. But when it works, it usually works well.

 

Source: http://www.cnblogs.com/virusswb/archive/2010/05/19/Architeching-Microsoft-DotNET-Solutions-for-Enterprise-3.html

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.