zoukankan      html  css  js  c++  java
  • 《人月神话》读后感2

    整体部分

    在设计的过程中,我们要做到自上而下的设计,在设计的每个步骤中,尽可能地使用级别较高的表达方法来表示概念和隐藏细节,直到必要的时候再进一步的细化。文中的这段话让笔者想起SICP中教授们试图传达给学生们的一个屠龙之术——“推迟做出决定的时机,因为只有尽可能地退出做出决定的时机,你之后的行为才不会被当下做出的决定所影响,所阻碍”。而且细节的抑制使得结构上的缺陷更加容易识别。

    作者在本章中还详细给出了控制变更的最佳实践——阶段化,定期变更。

    1. 直到下一次定期发布前都使用快速补丁。
    2. 而在当前的发布中,其将已经通过测试并进行了文档化的修补措施整合到系统平台中。

    另外作者还给出了系统集成测试阶段的最佳实践——一次添加一个构件。我们总是倾向于将所有的构件全部组合到一起再测试,但是,请拒绝诱惑。正如《重构》里说的,我们要遏制住心魔,小步前进!

    祸起萧墙

    进度落后往往并不是因为大灾难,而通常只是因为那些仅仅会导致延迟半天到一天的事件的堆积最终致使整个进度延期一年。

    对于里程碑的确立,必须是具体的,特定的,可度量的事情,能够清晰定义。不能清晰定义的里程碑是难以处理的负担。

    关键路径技术是衡量是否延期的重要方法,每个人都要尽量让自己的工作远离关键路径。

    老板要克制住越俎代庖做决定的心魔,那样才能得到真实的项目状态报告。这里让笔者联想到家庭教育,家长总是希望孩子能说出自己的心里话,但是孩子说出后又横加指责,不问孩子的意见而横加干预,最后又去责怪孩子什么话都憋在心里不说出来。

    另外一面

    试图维护不同文件之间的同步关系,是一件非常费力不讨好的事情。

    对于程序而言,"合并文档"才是比较好的解决方案,而且最好做到自文档化。感觉这些应该是类似代码里的注释,以及诸如Swagger等等。

    没有银弹

    这涉及到软件工程中的根本和次要问题。复杂性,一致性,可变性以及不可变性这四个根本特性决定了软件开发中很难出现银弹。而且作者甚至觉得人们对银弹的追求,有点类似于古往今来对炼金术的追求。

    但作者同时指出面向对象这一颗铜弹有前途——强制的模块化和清晰的接口等等可以极大增加效率。

  • 相关阅读:
    mac命令
    缓存穿透、缓存击穿、缓存雪崩区别
    计算属性 和 方法的区别
    Docker笔记
    使用excel 生成多个 sql语句
    开发分支操作步骤
    Python3.8中使用pymysql连接数据报错__init__() takes 1 positional argument but 5 were given解决方案
    测试时间评估
    js map() 函数的使用 --待补充
    左联后再内联的2种写法
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/14939439.html
Copyright © 2011-2022 走看看