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

    画蛇添足:过度设计的现象常常存在,据我的观察,这种现象往往出现于极度追求完美的人和刚刚经历过首次开发设计不足的经验教训的人。过度设计的系统在最初就引入了过多的复杂性,导致开发举步维艰,这个问题或许在一个架构师有了一定经历后就自然能够解决,但是“第二个系统”的困境出现时,我们可以有意识地约束自己做出一些舍弃。

    贯彻执行:世界的规律就是一切往着混乱的方向发展,所以我们往往需要耗费很大的精力将上层的决策向基层贯彻执行。书中提出了几个方法来实现整个团队保持系统的概念完整性。首先是文档化的规格说明,文字是思想传播的载体,也正是文字和纸的出现,前人的思想才能流传至今,这足以证明文档对于维持概念完整性的重要性,文档的编写也需要形式化的定义保证概念的清晰和确定。对于软件开发这样的特殊团队,我们还可以通过建立模块间的结构来将各部分进行整合。虽然有了持久化的文字和代码,语言的交流会更有利于概念的确定,不至于在不同的人那里产生歧义,所以正式的会议和随意的交流都是必须的。书中还提出了多重实现、电话日志和产品测试的方法。

    为什么巴比伦塔会失败:巴比伦塔的制造是一个神话故事,但是其中的道理却对今天人们的协作有着重要的启示。软件系统的开发完全通过计算机执行,为什么还是很少有远程协作的企业,这是因为远程协作很容易导致交流的缺失。大型的软件项目开发需要团队中的每个人能及时了解到整个团队在做些什么,这就需要经常的交流。交流的方式可以通过非正式的电话、网络,也需要正式的会议和工作手册。

    提纲挈领:我们做课程作业时往往需要交大量的文档,而我们在写这些文档时就像填充八股文一样只考虑制式放弃了思考为什么要将它放在文档中。设计与决策的书面记录是必要的,但是文档存在的本意是为了沟通,我们写文档时应该考虑文档内容的现实指导意义,建立功能划分明确的文档类型和逻辑清晰的文档结构。

    未雨绸缪:我们在实现功能时往往有很多思路,但是哪种思路能行得通并且最适合情况就需要我们进行试验性开发。试验性开发确实会造成精力的消耗,或许大量的测试方案最终还会被舍弃,但是我们必须这样做。实际上如果不进行方案的实验,正式的开发反而可能遭遇返工和混乱的拆补,会严重分散重新开发人员的精力和信心,甚至影响用户对产品的信任。这世界上唯一不变的就是变化本身,我们必须有未雨绸缪的能力,对未来可能产生的变化做出提前的设计,甚至对组织架构也需要进行提前的计划来规避变化造成的风险。除了开发,运营维护也需要适应变化,这就需要我们提高代码的质量和可读性,完善测试过程,保证系统在调整的过程中能够尽量少地引入更多问题。前人的智慧告诉我们,缺陷是永远存在的,我们需要通过质量管理放缓系统混乱度的提高。

  • 相关阅读:
    Android添加横线和竖线分割界面
    ViewPager + Fragment实现滑动标签页
    fragment中嵌套viewpager,vierpager中有多个fragment,不显示 .
    Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View
    Android SDK快速下载
    Codeforces Round #256 (Div. 2) D. Multiplication Table
    UITabBarControler解决旋转问题
    SQL Server 板机
    nested push animation can result in corrupted navigation bar
    10.树和树店
  • 原文地址:https://www.cnblogs.com/tianwenjing123-456/p/14865765.html
Copyright © 2011-2022 走看看