Software beauty
Software architecture
At the beginning of the new year, the temperature of Beijing will rise slightly. On the weekend, the Summer Palace is bustling, tourists are like weaving. On the banks of Kunming, Wanshou Mountain, there is a magnificent, laminated heavy gurle, natural and beautiful, gods like water township, Jiangnan; enjoy the lake and mountains, can't help but sigh the beauty of Chinese ancient buildings. In fact, many buildings in the Summer Palace are mainly built by standardized components.
The beauty of ancient buildings can find the source traceability in "Building French". The book became in the Northern Song Dynasty (about 1103 years), all three volumes, is the Chinese ancient architecture. The book proposes a design method of a set of wood frame buildings, summarizes the details, specifications, sizes, and standards of various material components, and bricks, watts, glass firing methods, etc. - This book can be said to be the origin of the Summer Palace architecture and the architectural method - "Building French" has laid the foundation for the structural design and engineering management of Chinese ancient buildings through the decomposition and standardization of building components. The beauty of Chinese architecture begins here.
At the same time as the beauty of architecture, I am thinking: Can I find "Creating French" belonging to the software system?
Research the current software system, it is not difficult to find: The current software experts still need to deal with the details of a large demand, design, code. For project implementation time, investment resources, etc., large software is often targeted for a number of specific user functions. Experts don't have time, and there is no effort to pursue software aesthetics. Day Recycle, as the user functional requirements change, large software projects have become a randomly accomplied stack of code, and unparalleled. Once the project is completed, once the project is completed, he is not as good as it, does not want to touch the labor results of the next few months.
In the software idea of the components, software experts must be lucky. They no longer need to repeat the technical details of the specific software implementation; 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 a simple structure There is a personality, a beautiful software.
As looking at the scenery. Imagine that the lake in Kunming suddenly rains, you can still go around the lake, the taste of the rain; or look for an octagonal pavilion, invite three five friends to drink tea. But say back to the current software, the beauty of the United States is lost; it seems that there is a sense of being in the end of the score. Maybe there is one day, the software will also like the scenery of Kunming, whenever and wherever, can make users feel free to experience the Internet era of happiness.
Software structure
From a psychological point of view, human beings have roughly experienced a perception, perception, and then gradual process of thinking, which is also a process from specific to abstract. At first we would "expression" according to the substance of the substance (such as soft hard, cold, black and white), and then "expression" according to its function, and finally we understand the structure of all substances.
As early as the first five centuries BC, Democritic proposed a substance forever. He believes that the world consists of a huge void and countless atom.
The atomics founded by the British Chemist Daltton in 1803, revealing from the world from the world: "All elements are composed of fine particles that cannot be divided and not destroyed, this particulate is called atoms; from then on The understanding of things is gradually transitioned from atoms and molecules to the macro level.
This evolution of this essential understanding has laid the foundation of the entire scientific progress. Regardless of the atomic theory from the philosophy, it is clear that the way we can clearly discover that the way Western expression is an evolution process, and it is still always from essence, and the basic structure of the substance is used. - So, if we are no longer functional as the software, it is concerned about its nature, pay attention to its structure, will it find a new way to enhance software production efficiency? The answer is yes. In constant changing, the new day-changing business knowledge is category, the component-oriented software system finds a structure that can curing software knowledge, that is, the means for establishing effective accumulation and reuse of knowledge resources through components - substantially, component is various general purpose Package and multiplexing of knowledge and business knowledge. The components can improve the quality of the production and management of software knowledge, realize the effective accumulation of software wealth, implement knowledge management and innovation.
Software made by "assembly" in component forms is more accommodated in software companies and their customers, and it is also more "beauty" characteristics. The beauty ugliness of the evaluation software, the key to consider the structure of the software, the software design and the change of the ability to respond quickly to business needs. Based on this standard, it can be concluded that the code software is subject to the development method and software structure, so it is not much likely to show the characteristics of "beauty"; and the components have a component-oriented software system to rely on changes to obtain vitality, which can be kept clean, Simple design - this is certainly closer to our definition of "beauty".
Beautiful software structure requires good reuse, maintainability, and portability. Good complexability, guarantees that developers save a large number of resources; and get rid of code-based traditional software structure, it is difficult to understand, and establish a basis for convenient maintenance. More traditional coded software maintenance is difficult, modifying difficult defects, the components are clear, easy to understand, but also have strong maintenanceability. Portability, in the traditional software system, there is no mention of the software system itself and the system application environment, software companies are also unable to unlock the complicated related entity, and she clipped. With the components, the component has been taken away from the dependence on the underlying application environment and technology, so that the component can also be reused in the heterogeneous environment to achieve good portability.
The beauty of experience in demand
In the preamble of "Agile Software Development", Robert C Martin has described Software: "(The Beauty of Software) is that its internal structure is that the team creates its process." However, the value of the United States is ultimately in the experience. It is like Bolhers. When the scenery can't see it, it can't be "landscape" - so we need to make a moderate correction for Robert Martin's views. : The beauty of the software is reflected in the coordination of structural and functionality, the development of developers and applicants, and the process of teamwork creation.
Beautiful software is the ultimate goal of software companies and software developers.
Let's take a look at traditional code software. Traditional coded software, difficult to adapt to future IT technology and business changes; code-based customization development and customer demand often there is often difficult to overmaters, customer complaints, software manufacturers are often announced by large software projects. Completely failed. Can only be upgraded in the way "broken and back" way - after paying expensive information costs, it is a time-free, lack of flexible software: how long, customers will find When the business needs have changed fierce, the original software system is so weak. Customers are reluctant to step into the same river twice (repeated investment on the same software project), software companies may not like to push down the "secondary development".
Software that looks facing components, it will have sufficient ability, sufficient flexibility to manage changes, meet the requirements of the market and customers. "Change" does not bring challenges and crises to the components, which is just the opposite, "change" can fully display the advantages of components software. Through "change", customers can fully display the core competitiveness of the component-oriented IT system. Who said that the elephant can't dance? Who said that enterprise informationization can only be thousands of people? Regardless of the size of the company, the component-oriented software can support agile functional extension and rich "personal selection". At present, traditional general-purpose enterprise software is frequently rigid, narrow and unable to respond to customer needs, etc., is because code-based applications are "limited" in terms of extensibility and personalization. Component-oriented software inevitably enables both software companies to get better and wonderful development and application experiences.
Software process beauty
The beauty of the software process, for software developers and customers are multiple: for software designers, software structures can be visually split, and the software structure with minimal internal coupling is "simple beauty". For developers and managers, produce non-defective code, and obtain a significant progress weekly is "exquisite beauty." For the user, by intuitive, simple interface, accurately present the selected program is "clear beauty".
Only by software development methods, software companies can capture aesthetics from product development - clear division of labor will break a huge software project into several controllable, manageable sub-projects; reducing project risks At the same time, it improves the visibility and controllable project management.
Specifically, the beauty of the software is mainly reflected from time to space, from the connotation to the different sides of the epitaxial:
From time control, traditional processes are unclear, or there are trivial and complex associations between different divisions, leading to demand variations, the time progress and engineering quality of the project is easily out of control. This is not the case, because there is a large number of multiplexed software exists, the division of labor is relatively clear, and the time and quality of the project are naturally easier to control.
For software space deployment, traditional software project deployment management is often only completed on some parameter settings and limited secondary development interfaces, and large business needs cannot be met; and the components are complex in software systems. Business needs can also be done in the infrastructure and industry components, have good service engineering management capabilities.
From the contents of the product, in a component-oriented software system, the product consists of many components; only recombacked small parts, or adds a small part of the component to achieve product innovation.
Inside and outside, personalization is an external manifestation of a member-oriented software product: in a component-oriented software engineering management, a general purpose function is realized by the component, and personalization is realized by the selection, assembly and configuration of the component, and it is easy to implement software. Engineering management of personalized demand; contrary to traditional software products, even perform effective expression of a single personalized user demand, unable, personalized function and general function are often mixed together.
The component-oriented software is beautiful. Through the component-oriented Internet application base platform, business experts can focus more to envisage software, structural experts can separate universal components to build US software, and component-oriented software development process is more harmonious, more efficient. Today, components-oriented software system and this new system brought us more efficiently, but more importantly, it is its connotation, which is its performance.
"Horizontal Gongling Side", if we stand on a higher perspective search software, it will find that the software has many similarities with knowledge: knowledge, unlimited, constituent software basic elements - components Endless endless. But as long as you master certain knowledge, you can do infinite exploration; software is also, as long as there is a certain number of infrastructure, you can produce different applications. Bill Gates has a saying: the development of software does not have the so-called "limit", and its development speed will only be restricted by people's intelligence, imagination and creativity. But I think, if it is based on the software research and development of the success rate in the past, the software research and development of the project is broken into the coke pit, then the development of software (especially large industry applications) has already been encountered "limits" - good Today, the component-oriented software allows us to easily go beyond the limit and fully release their intelligence, imagination and creativity. It should be fortunate that the "gene" defect of the traditional software system has been promptly discovered. It should be pleased to manage software development knowledge, industry business knowledge, and management. It should be believed that the practice of the idea of the components should be considered, we can build new companies - knowledge companies, we can build new society - knowledge society.
When the software revolution whirls blow, let us expect changes to change the storm that is more violent, let us expect software to provide endless power for the information train high speed, and let us expect software beauty to be a heart!