Two qualities of a beautiful software

Source: Internet
Author: User

Two qualities of beautiful software Author by Michael@soho


What kind of woman is the most beautiful.

One, Simplicity

Secondly, the Independent

The same is true with software.

The third, and another common trait, is openness. For this, different people have different views (I mean the opening of women), but for the Open software, most will agree.


simplicity, the first trait, that simplicity is beauty. You can experience it from Oracle's data dictionary. The main content of the data dictionary storage is all the tables in the database, and the data dictionary itself is a table. The table has a table, concise. Another example, MQ API is very few, but hands, less than 10, it is easy to learn. Of course, as you know, both are huge. For a user, whether developers or administrators, a simple beauty is the easiest to read.


The software is not simple everywhere. Open the software that you are developing and using, the function is interlaced with each other, the API design has obvious patching traces, and so on. The simplest decision is whether a new person has a limited amount of time (such as 1 days) to master the core function and design. If he or she is confused, then this is not concise beauty, it is also difficult to be the first time to impress the user's heart. Most users will give up when they don't understand the complexities at the first time.


independence, the second trait, that independence is beauty, and low coupling is beauty. examples of success are difficult to cite, but bad examples must exist around you. The most common example is the absence of clear boundaries between modules, such as module A and Module B, which sometimes communicate via sockets and sometimes through APIs. The reader's face is a question, but the author is unconscious. Another characteristic of low coupling is that each module has its own core function. I remember the primary school language teacher asked me to give a definition of each natural paragraph. I also know that I was confused when I was older. I often see "Playboy" modules, for example, it includes both basic function A, as well as rights management, auditing, and so on, such as the binding of a large number of business logic in the UI, or in the business logic to read some special input, a variety of. so "Heart" module will encounter sad time, is reuse .


Open, is the economic people's favorite, is most Chinese men scratching their heads, I like it.


The IT industry has gone through a closed era. Open Source is only one of the main ways, software specialization is the second. No software can fully meet all the needs of customers, there is an open interface allows customers to choose another software more refined to achieve specific requirements. Historically all-inclusive software and the replacement of series software, one of the series software will be replaced by an excellent 3rd party application. If not, there may be an open source software that was born. This open software matures and then generates a commercial version. The genie that drives these changes is the need and the money, and the positive feedback of both.


There are many open ways , such as data import and export, API access (such as SDK), database, service services (such as Web service), integration of internal and external processes, and so on. Open protocols if based on development criteria, good. Open protocols are good, based on a company's open but proprietary standards.


openness equals antitrust. MS's large software is required to give a public API in the EU, and 3rd party companies can have their own implementations based on the API. and public APIs are required to be rigorous and accurate, and offenders are penalized. (The above is unconfirmed). Openness is a weapon against monopoly. In short, with the client-side API provided by a software, you and I can develop client side with proprietary rights. Similarly, we can create a proprietary server side. The API is the same, the implementation is different, there is no copy right's obsession, but there are countless market opportunities. The monopoly's software has the competition product, the monopoly cost enhances, the opportunity cost becomes the 3rd party profit source.


Personal view, not concise enough, not perfect, only for independent humble opinion.

Memorial July 27, Michael@soho

July 31, 2011 Version One





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.