Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Code complete Reading Notes 2 Murray-use metaphors to fully understand software development

2025-04-13 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/03 Report--

With the help of metaphor, we can understand the process of software development more deeply. By comparing what you don't understand with something you understand and very similar, you can have a deeper understanding of what you don't understand. this way of using metaphors is called modeling.

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

Software metaphors are more like revelations than algorithms, telling you how to find answers. An algorithm is a set of well-defined instructions that enable you to complete a specific task. The algorithm is predictable, deterministic, and immutable.

The difference between algorithms and heuristics lies in the indirect distance from the final solution: algorithms give you direct guidance on solving problems, while heuristics tell you how to find these instructions or at least where to find them.

The biggest challenge for programming is to conceptualize (modeling) the problem. Many errors in programming are conceptual errors, because each problem is conceptually unique, so it is rare or even impossible to find a set of guidelines that can solve all problems, so being able to know roughly how to solve a problem in general is at least as valuable as knowing how to solve a particular problem.

The oyster culture view of software: the process of oyster making pearls is a metaphor for software development, in which the key words are "incremental", "iterative", "adaptive" and "evolutionary". Designing, compiling, and testing incrementally is the most powerful software development concept known so far.

In incremental development, we first make a simple but runnable version of the software system, which does not have to accept real input, real data processing, or real output. All we need is a strong enough skeleton to support the real system to be developed in the future. For each basic function at the flag, only the fake class needs to be called. After the skeleton is formed, attach muscles and skin to it little by little: replace the fake class with the real class, accept the real input, and produce the real output.

Software construction: first decide what type of house you are going to build-problem definition, then discuss the overall design-software architecture design with the architect, then draw a detailed blueprint and hire a contractor-software detailed design, then build the foundation, build the house frame, build walls, connect water and electricity, etc.-software construction, painter and decorator beautify the house-software optimization Inspectors inspect the site, foundation, frame, wiring, etc.-software review.

It usually doesn't make sense to write ready-made, affordable code yourself, unless you need to customize it in special cases.

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.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report