zoukankan      html  css  js  c++  java
  • 《人月神话》阅读笔记(三)

    我又一次在相关书籍看到了文档的重要性 

    数据的表现形式是编程的根本。创造出自精湛的技艺,精炼、充分和快速的程序也是如此。

    技艺改进的结果往往是战略上的突破,而不仅仅是技巧上的提高。

    这种战略上突破有时是一种新的算法,如快速傅里叶变换,或者是将比较算法的复杂度从n2降低到nlogn。

    更普遍的是,战略上突破常来自数据或表的重新表达——这是程序的核心所在。

    如果提供了程序流程图,而没有表数据,我们仍然会很迷惑。而给我看表数据,往往就不再需要流程图,程序结构是非常清晰的。

    文档的主要内容:

    1、目的。主要的工作是什么?开发程序的原因是什么?

    2、环境。程序运行在什么样的机器、硬件配置和操作系统上?

    3、范围。输入的有效范围是什么?允许显示的合法范围是什么?

    4、实现功能和使用的算法。精确地阐述它做了什么。

    5、输入—输出格式。必须确切和完整的。

    6、操作指令。包括控制台及输入内容正常和异常结束的行为。

    7、选项。用户的功能选项有哪些?如何在选项之间进行挑选?

    8、运行时间。在指定的配置下,解决特定规模问题所需要的时间?

    9、精度和校验。期望结果的精确程度?如何进行精度的检测?

    一般来说,三四页纸常常就能容纳以上的所有信息。不过往往需要特别注意的是表达的简洁和精确。

    由于它包含了和软件相关的基本决策,所以这份文档的绝大部分需要在编程编制之前书写。

    文档用文字记录了充满了维度的软件相关东西。

    我意识到这些东西,是存在且必要的。它将我们所面对的程序,或者说项目,简化了,易懂了,直观了。

    就这些好处,不得不说,我们能更容易发现里面的突破点,或者所暗藏的问题。

  • 相关阅读:
    [转] iphoneX、iphoneXS、iphoneXSMax、iphoneXR适配
    [转] 以 async/await 为例,说明 babel 插件怎么搭
    [转] 使用Node.js实现简易MVC框架
    [转] vue异步处理错误
    [转] 谈谈前端异常捕获与上报
    everything 13问
    Mysql 工具mysqlbinlog
    Mysql 删除日志
    Mysql 错误 ERROR 1 (HY000) at line 1: Can't create/write to file '/home/kaizenly/cfg_dict.csv' (Errcode: 13
    Mysql 问题集
  • 原文地址:https://www.cnblogs.com/maplely/p/5579255.html
Copyright © 2011-2022 走看看