In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/03 Report--
Summary:
At the design document review meeting of a certain project, all kinds of technology bulls had a "heated" discussion, and the focus of the discussion was what kind of design is beautiful! Everyone had a "heated" debate on how to OO, how to have high cohesion and low coupling, and how to reverse control. If it goes on like this, won't this review meeting become a "fairy convention"? What kind of design is good design?
Outline:
1. What is a good design?
two。 Excellent design can save project workload.
3. Good design starts with the analysis of requirements
4. The software system is not a wooden bucket.
5. The "Great Truth" of Software Design
6. Planning system Framework-- Architecture Design
7. Building the essence of the system-- Database Design
8. Details determine success or failure-detailed design
9. Users feel good is really good-- user experience design
10. Continuously improve the design level
1. What is a good design?
At the design document review meeting of a certain project, all kinds of technology bulls had a "heated" discussion, and the focus of the discussion was what kind of design is beautiful! Everyone had a "heated" debate on how to OO, how to have high cohesion and low coupling, and how to reverse control.
Do you think the following standards can be used as the standard of "beautiful" design?
1) efficient
2) reliable
3) easy to use
4) Security
5) Extensible
6) strong compatibility
7) strong portability
……
If we use the above criteria for each design document review, do you think this design review will be effective?
At that time, I attended such a design review meeting, and I felt that the atmosphere was very wrong. if it went on like this, wouldn't this review meeting become a "fairy conference"?
So I asked two questions:
1) who can tell us the main requirements of this project?
2) how are these requirements considered and realized in design?
As a result, no one can answer!
The "universal" design standards we see in books are, to put it bluntly, nonsense! There is basically no real use for the actual project work!
Please take a look at the following four examples, thinking about the software design ideas of these four cases, you will find that the above "beautiful design standards" is really nonsense!
Case 1: a project is required to be completed in a very short time, and the customer's current understanding of the system is relatively preliminary, how do you plan to design the system?
Case 2: a software company has received a "web page + database" type project, which has been done many times, but this time the business is new. How do you consider the design of this project?
Case 3: a software company has successfully done a management system for n hospitals, and now needs to do a similar system for a new big hospital. How would you consider the design of this system?
Case 4: you received a task to do a real-time strategy game, the goal is to find a way out in the current game market, how do you consider the design of this game?
The four cases have their own characteristics and represent four kinds of "typical" respectively:
Case 1: the demand is very hazy, the construction period is very tight, and there is basically no accumulation in technology.
Case 2: the requirements are new, but the technical architecture of "web page + database" can be reused.
Case 3: the requirements are similar, and so is the technical architecture. I believe you will directly reuse the previous system.
Case 4: this is a game that requires creativity and high-tech content, and the requirements and technology of game software are full of challenges.
In the above four cases, I believe that the design strategy you adopt is different, and you may find that there is no fixed standard for the so-called good design.
What if you insist on a standard of good design?
I will say this: is to do cost-effective design!
A good design should have the following characteristics:
1) excellent designs are demand-driven, and designs made without familiarity with requirements are unreliable.
2) the excellent design should be what the current team can understand and realize, and the design project team which is too advanced can not do it. This design can only be a decoration.
3) excellent design should take full account of the current constraints and make an appropriate balance to ensure that the goals of the project are achieved:
4) excellent design can minimize the overall workload of the project and make the whole project more controllable.
two。 Excellent design can save project workload.
The topic of software design can easily turn into an empty and powerless academic discussion if it is divorced from some actual case discussion, so this article will list a lot of cases for your reference.
Design case: developing an online community website
Background: a community has held several salon events. In order to expand the influence of the salon, benefit more friends, establish a good brand and make a profit in the future, it is necessary to establish an online community website.
The website should have the following features:
1) publish all kinds of activity information.
2) release industry news.
3) be able to carry out online salons, including online video salons.
4) have SNS community, which can gather popularity.
5) each member has his own blog and can maintain his own personal page.
6) support switching between simplified Chinese, traditional Chinese and English at any time.
7) support full-text search.
How do you plan to design the above system?
You may ask, is there a time limit?
What do you say? There must be a time limit for a real project. Your duration for this project is only 1 month!
You may say: you think I am a god, you may not die for a month!
What can help you at this time is excellent design, excellent design may allow you to do it with a small amount of work, excellent design does not necessarily require you to develop from scratch, we can borrow doctrine! There are a lot of open source software that can basically meet the above requirements, we can use it directly, so you need to pay a lot less work.
I once used some open source software to make such a website, but found that there was no full-text search function. As a result, I came up with an "opportunistic" way. Instead of writing a sentence of code, I directly used Google's search function "site: domain name keyword" and asked Google to help me with full-text search. Of course, the effect of this is not perfect, but at least I can make a rough estimate in a very short time, ah, if my own development may not be able to achieve such an effect!
Summary:
Due to time limit, capacity limitation and other constraints, perfect design is basically difficult to achieve, but if you save time or even directly ignore this step in software design because of the rush schedule, in fact, the loss outweighs the gain. Saving 1 hour in software design may make you invest many times more project time in the future; the tighter the time limit, the more you need to think calmly about the software design, and the appropriate design can greatly reduce the project workload and make your later work much easier.
This article is only the first article in this series, software design is not so simple, this is just the beginning.
If this article is helpful to you, please click on "recommendation". Thank you!
Author: Zhang Chuanbo
Lecturer in Innovation Workshop Entrepreneurship Class (Agile course)
Senior consultant of software development management
Chief expert of CMMI
Author of Fireball-UML War demand Analysis
Founder of Software knowledge original Base
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.