Nirvana of software (III)-beauty of software

Source: Internet
Author: User

Beauty of software

The beauty of software architecture

At the beginning of the Chinese New Year, the temperature in Beijing rebounded slightly. On weekends, the Summer Palace is full of bustling people. On the lakeside of Kunming, on the side of the Wanshou mountain, there is a magnificent and stacked multi-corridor complex Hall, and a garden in the south of the Yangtze River featuring natural beauty and charm, the beauty of Chinese ancient buildings cannot help but sigh. In fact, most of the buildings in the Summer Palace are constructed by a combination of standardized components.

The beauty of ancient buildings can be traced in the "Create a French. The book was established in the Northern Song Dynasty (around 1103 AD), where the 36-volume book is a masterpiece of Ancient Chinese architecture. The book presents a complete set of design methods for wooden architecture, which summarizes the detailed details, specifications, sizes, and standards for producing various material components at that time, and the burning methods of bricks, tiles, and glaze-this book can be said to be the source of the architectural style and method of the Summer Palace-through the decomposition and standardization of building components, "Creating a French" laid the foundation for the structural design and engineering management of Ancient Chinese buildings. The beauty of Chinese Architecture begins here.

While sighing the beauty of architecture, I am also thinking: Can I find the "creation French" that belongs to the software system?

Studying the current software system makes it difficult to find that the current software experts still need to deal with a large number of requirements, designs, and code details. Due to restrictions on project implementation time and resource input, large software is usually designed to meet a number of specific user functional requirements. Experts do not have time or energy to pursue the aesthetic goal of software. Day after day, as the functional requirements of users change, large software projects become a random and unordered accumulation of a large number of code, which is very ugly. Once the project is completed, many engineers may not be able to touch the fruits of their work that have been around for several months.

Software experts are far more fortunate in component-oriented software ideas. They no longer need to repeat the technical details of specific software implementations; their work is more like a software architect; their thoughts are re-concentrated on the user's personal business needs, around the user, how to build personal and aesthetic software with a concise structure.

See the scenery. Imagine that by the lake in Kunming, suddenly it rained, you can still walk around the lake along the corridor, taste the clear rhyme brought by the rain; or find a octagonal pavilion, invite friends of three or five to have tea. But back to today's software, aesthetic loss; it seems that there is a period of farming and fire for a shelter and contentment. Maybe one day, software will be like the scenery on the Kunming Lake. anytime and anywhere, users can experience the wonderful Internet era as they wish.

 The beauty of software architecture

From a psychological point of view, human cognition of things generally goes through the process of feeling, perception, and progressive thinking. This is also a process from concrete to abstract. At the beginning, we will "Express" the material based on its extended characteristics (such as hardware, software, cold, black, and white), and then "Express" the material based on its functions ", finally, we understood the structure of all things.

As early as the 5th century of BC, the theme things existed forever. He believes that the world is composed of a huge void and countless atoms.

The atomic theory created by British chemist Dalton in 1803 reveals to the world from the perspective of physics: "All elements are composed of particles that cannot be further divided or destroyed. These particles are called atoms "; from then on, our understanding of things has gradually transitioned from atoms and molecules to the macro level.

This evolution of understanding the nature of things lays the foundation for the entire scientific progress. No matter from the atomic theory in the field of philosophy or from the atomic theory in the field of physics, we can clearly find that the Western way of expressing things is an evolutionary process, and it is still starting from the essence throughout the process, focusing on the basic structure of matter with an analytical perspective -- if we do not focus on software as functionally as before, but on its nature and structure, will we find a new way to improve the efficiency of software production? The answer is yes.

In the ever-changing and changing scope of business knowledge, the component-oriented software system has found a structure that can solidify the software knowledge, that is, building an effective way to accumulate and reuse knowledge resources for humans through components. In essence, components are the encapsulation and reuse of various general knowledge and business knowledge. Component-oriented approach can improve the quality of production and management of software knowledge, realize the effective accumulation of software wealth, and realize the management and innovation of knowledge.

Software assembled in the form of components is more compatible with the needs of software enterprises and their customers, and is also more "beautiful. The key to reviewing the beauty of the software is to consider whether the software structure is concise or not, and whether the software design and implementation can quickly respond to changes in business needs. Based on this standard, it can be concluded that code-based software is subject to the development method and software structure, so it is unlikely to present a "beautiful" feature; the component-oriented software system relies on changes to obtain vitality and maintain a clean and concise design as much as possible. This is certainly closer to our definition of "beautiful.

The beautiful software structure requires good reusability, maintainability, and portability. Good reusability, which can save a lot of resources for developers, and get rid of the obscure structure of traditional software based on code, and build a basis for convenient maintenance. Compared with the defects of traditional code-based software that are difficult to maintain and modify, component-oriented software is clear, easy to understand, and highly maintainability. Portability is not mentioned in the traditional software system. The software system itself is closely related to the system application environment, and software enterprises are unable to solve the complicated Association and tangle; using the component-oriented software structure, components can be reused in heterogeneous environments and achieve good portability.

The beauty of on-demand experience

In the preface to agile software development, Robert c Martin once described beautiful software as "(the beauty of software) lies in its functionality, lies in its internal structure, and in the process of creating a team." However, the value of beauty ultimately lies in the experience, As Borges said: When the scenery is invisible to others, it cannot be regarded as a "Landscape". Therefore, it is necessary for us to make a moderate correction to Robert Martin's views: the beauty of software is reflected in the beauty of the coordination between structure and functionality, the beauty of the experience between developers and users, and the beauty of the Process of team creation.

Midea software is the ultimate goal of software enterprises and software developers.

Let's take a look at traditional code-based software. Traditional code-based software is difficult to adapt to future changes in IT and business environments. Code-based custom development and frequent changes in customer needs often have insurmountable gaps, complaints from customers and the helplessness of software vendors often result in the complete failure of large-scale software projects. The software can only be upgraded in the form of "break down and stand up"-after the customer pays for the expensive information cost, what he gets is a software with limited time and space and lack of flexibility: it won't take long for the customer to find that the original software system is so weak when the business needs change dramatically. Although customers do not want to step into the same river twice (repeated investment in the same software project), software companies may not like to repeat the "secondary development ".

When looking at component-oriented software, it will be capable and flexible enough to manage changes and meet market and customer requirements. "Changes" won't bring challenges and crises to component-oriented software. On the contrary, "Changes" can fully demonstrate the advantages of component-oriented software. Through "Changes", customers can fully demonstrate the core competitiveness of component-Oriented IT systems.

Who said elephants cannot dance? Who said that enterprise informatization can only be a thousand people? Regardless of the enterprise scale, component-oriented software can support agile function extension and rich "personalized selection ". Currently, traditional general enterprise-level software is prone to many problems, such as rigid, narrow, and inability to respond to customer requirements. It is precisely because code-based application software has limited scalability and personalization capabilities ". Component-oriented software will certainly enable both software companies and customers to enjoy a richer and more elegant development and application experience.

Beauty of software processes

The beauty of software processes has multiple meanings for software developers and customers: for software designers, the software structure that can be intuitively split and has minimum internal coupling is "simple and beautiful ". For developers and managers, producing defect-free code and making significant weekly progress is "exquisite ". For users, it is "clear and beautiful" to present the selected program accurately through an intuitive and simple interface ".

Only through component-oriented software development, software Enterprises can capture aesthetic feelings from the product development process-a clear division of labor will divide a huge software project into several controllable and manageable sub-projects; the Project Management visibility and controllability are improved while project risks are greatly reduced.

Specifically, the beauty of the software process is mainly reflected in the different aspects from time to space, from connotation to extension:

From the perspective of time control, when the traditional process is subject to unclear division of labor, or there is a trivial and complex association between different division of labor, the project's time schedule and quality are easily out of control like a wild horse. This is not the case for component-oriented engineering management. because a large number of reusable software exists and the division of labor is relatively clear, the project's time and quality are naturally easier to control.

For the spatial deployment of software, traditional software project deployment management can only be completed on some parameter settings and limited secondary development interfaces, and the business needs with great changes cannot be met; in the component-oriented software system, complex business requirements can also be visually assembled on basic components and industrial components to provide better service engineering management capabilities.

From the product connotation, in the component-oriented software system, the product consists of many components. Only a small part of components need to be reorganized or a small part of components can be added to achieve product innovation.

Personalization is the external manifestation of component-oriented software products: In component-Oriented Software Engineering Management, the component implements general functions, personalization is achieved by component selection, assembly, and configuration, which makes it easy to implement the project management of personalized software requirements. Traditional software products, on the contrary, can effectively express individual user demand changes, cannot be achieved, personalized features and general functions are often mixed.

Component-oriented software is beautiful. Through the basic platform for component-Oriented Internet applications, business experts can focus more on imagining software functions, and structural experts can separate common components to build beautiful software, the component-oriented software development process is more harmonious and efficient. Today, the component-oriented software system and the basic platform in this new system not only bring us the efficiency of personalized enterprise-level Internet application software development, but also its connotation, is its software aesthetics.

If we look at the software from a higher perspective, we will find that the software has many similarities with knowledge after it is oriented to components: infinite knowledge, components are the basic elements of software. However, as long as you have a certain degree of knowledge, you can carry out endless exploration; software is also true. As long as you have a certain number of basic components, you can produce different applications. Bill Gates has a saying that the development of software does not have the so-called "Limit", and its development speed will only be restricted by the human intelligence, imagination and creativity. But I think, if it is based on software R & D ideas that used to make projects fall into tar traps with a low success rate, then software (especially for large-scale industrial applications) in fact, the development has already met the "Limit"-Fortunately, today, component-oriented software allows us to easily go beyond the limit and fully release our own intelligence, imagination and creativity.

We should be glad that the "genetic" defects of traditional software systems have been promptly discovered. We should be delighted with the component-oriented ideology to integrate software development knowledge and industry business knowledge into components for management. We should believe that through the practice of component-oriented software, we can build a new enterprise-Knowledge Enterprise, and we can build a new society-knowledge society.

When the software revolution sounded the horn of Nirvana, we were expecting more intense storms of change, and we were expecting the software to provide endless impetus for the high-speed flying of Information trains, let's look forward to the beauty of software!

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.