Code Daquan reading notes 2---Use metaphor to fully understand software development

Source: Internet
Author: User

With the help of metaphor, the process of software development can be understood more deeply. By comparing things that you don't understand with something you understand and are very similar, you can have a deeper understanding of what you don't understand, and this metaphor is called modeling.

The power of metaphor is its vividness, which allows you to grasp the whole concept, to imply various attributes, relationships and parts that need to be verified. But the model can also mislead people when it is over-extended.

The role of software metaphor is more like a revelation than an algorithm that tells you how to find the answer. An algorithm is a set of well-defined instructions that enable you to accomplish a particular task, and the algorithm is predictable, deterministic, and not easy to change.

The difference between an algorithm and a heuristic is in its indirection to the final Solution: the algorithm directly gives you guidance on how to solve the problem, and the Heuristic method tells you how to find the guidance information or at least where to find them.

The biggest challenge for programming is to conceptualize (model) problems, and many of the errors in programming are conceptual errors, because each is conceptually unique, so finding a set of guiding rules to solve all the problems is rare, even unlikely, so you can generally know how to solve the problem in general. At least as valuable as knowing how to solve a particular problem.

The oyster farming perspective of the software: the process metaphor software development of oyster making pearls, in which the key words are "incremental", "iterative", "adaptive" and "evolutionary". design, compile, and test incrementally are the most powerful software development concepts known at the moment.

In the incremental development, the first to make a software system as simple as possible, but can run version, it does not have to accept the real input, no real processing of the data, without producing real output, just need a strong enough skeleton to support the future will be developed by the real system. For each basic function of the flag, you only need to invoke the bogus class. After the skeleton is formed, attach a little bit of muscle and skin to it: Replace the false class with the real class, accept the real input, and produce the true output.

Software build: First decide what type of house to build---problem definition, then discuss with the architect the overall design---software architecture design, then draw a detailed blueprint and hire the contractor---the detailed design of the software, and then play the foundation, building frame, walls, water and electricity and other---software construction, painter, Decoration workers will beautify the house---software optimization, inspection personnel inspection site, foundation, frame, cabling and other---software review.

It is often meaningless to write your own ready-to-buy code, unless you need to customize it in special cases.

Code Daquan reading notes 2---Use metaphor to fully understand software development

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.