Strategy and tactics-review the degree of Software Design

Source: Internet
Author: User

During software development, various decisions are always faced, ranging from module division to function body writing. These are all design problems. It is not difficult to design, but it is difficult to make a good design. But what is a good design? What is the standard?

In military terms, "Tactics serve strategy ". This sentence can be changed to a number of statements about software: Functions serve objects, objects are designed to serve the underlying architecture, and underlying design serves the architecture; the architecture serves the needs, and the demand serves the customer's production and life ...... Different abstraction layers correspond to different strategies and tactics.

The foundation of a good design lies in not only focusing on the current work level, but should be able to understand the current work service level!

For example, to write a function body, you need to understand the position and role of the function in the context of the current object. If you do not understand it, you can certainly complete the work, but it cannot be called a "good" word. Someone may ask, "what is good? I optimized the current function to the constant complexity, right ?" That is not necessarily the case. "good" and "bad" need to be put into the overall picture. If the current function is called only once at system startup, there is no significance for optimization, it is called "good" to complete this function as soon as possible "!

This is more important and obvious in demand analysis! The phrase "demand is always changing" is not false at all, but it is the purpose of the user to develop the software. This is the real requirement of the user. The goal of satisfying users is to make shortcuts to the current project. For example, most small and medium-sized enterprises (SMEs), especially the portals or departmental websites of public institutions, are talking about online office, customer management, and internal interactions, in fact, I don't need to do anything. The boss (the lead) cares about the two words: artist! What is the real purpose of the customer? Achievements!

Therefore, only the position and significance of tactics at the strategic level can the work at hand be done appropriately. What strives for perfection is not an engineer or an artist. It's just like the power of the cool, toilet, and row room to win the power of every employee's commanders is not necessarily qualified, not to mention the huge casualties, the sky is angry, if you win even the war of the enemy that should have been defeated, take measures in the army!

For. net enterprise-level applications, the hierarchical theory involved can be roughly divided:

Electronic Circuits-assembly-system kernel-CLR-function-object-design mode-architecture-demand-customer productivity (competitiveness)

Most of the work on. NET is at the function, object, and design pattern level. Architects certainly work at the framework level and demand analysts focus on requirements. One point that agile software development advocates is that the purpose of software is to improve the competitiveness of customers (in their field), which clearly proposes a higher level of abstraction in software engineering. The rest is usually out of our worries.

When writing a function, you can look at the object. When you look at the object, you can focus on the mode. When you do the mode, you can look at the architecture. When you do the architecture, you cannot forget the requirements. This is not only a career plan, but also a necessary condition to do the current job well. No wonder people say: soldiers who don't want to be generals are not good soldiers!

Related Article

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.