书中有一段说的是一个闪烁缺陷——在改变某软件中某个窗体的尺寸时,屏幕会闪烁一秒钟左右。虽然该缺陷不会影响程序运行,但它不符合作者的审美观,历时六个多月仍然没能修正。其实在日常的编程中也有许多小bug的棘手程度超乎自己的想象。首先你需要一点一点的去测试,找出问题的根源之所在,然后才是如何最小程度的修改程序,最好不要牵扯程序的其他部分。而我在之前的编程学习中就遇到过类似的问题,本来想去改一个小小的bug,结果这个缺陷修好了,却引起了其他更多的bug,正好符合一句话——“牵一发而动全身”,就令我十分头疼,印象深刻。

书中说过这么一个概念,我看得不是太懂,是关于软件时间的讨论。对软件时间所导致的问题的最早的也是最好的诊断,是来自弗里德里克·布鲁克斯于1975年撰写的《人月神话》一书。布鲁克斯所在的部门,深受进度落后之困,不断招募新程序员参加项目,结果却发现后援力量非但不能援救项目,而且会让状况变得更糟糕。布鲁克斯法则就是这样产生了,使人听起来即是原则也是悖论:向已延误的项目中补充人力,只会使其继续延误。因为他观察到“只有在任务能分派给许多互相之间无需沟通的工作者时,人和月才是可互换品”。对于软件开发而言,项目各有差异、工具不断升级,每当团队中加入一个新成员,老组员就得放下手里的工作,帮助新组员进入角色,每位组员都要等待重新分配任务。然而在你意识到这一切之前,已经远远落后于进度了。虽然我现在只是个体编程,还没有经历过一个团队共同编写一个程序,所以理解不是很深入,有一些东西并不能很好的体会。但是从字面意思有一定的道理,软件开发和零件加工无法类比,当零件加工延误时,可以增加人力,因为每一个人都是都是相互独立的,没有联系;而软件开发就不一样了,需要的是人与人的密切合作,才有可能实现最终的功能。

《梦断代码》Scott Rosenberg著(二)的更多相关文章

  1. <<梦断代码>>阅读笔记一

    没有想象中的枯燥,甚至有些有趣.这就是我对<梦断代码>这一本书的第一印象.而且,作为一本面向程序员的书籍,作者很有意义地从第0章开始,那我也从第0章开始说.这第一次读书笔记是针对0~2 章 ...

  2. 《梦断代码Dreaming In Code》阅读计划

    书籍是人类宝贵的精神财富,读书是人们重要的学习方式,是人生奋斗的航灯,是文化传承的通道,是人类进步的阶梯.学生作为学习人群的主体,必须把读书作为头等大事.学校就是一个学生在教师指导下自主读书的空间,而 ...

  3. <梦断代码>读后感2

    <梦断代码>这本书读了一半,我的心情久久不能平静. 为什么好软件如此难做?这是我本人,我想也是很多人都在苦苦思索的一个问题,虽然没有人能有完全确定的答案,但通过书中的记述,和个人思考,还是 ...

  4. 读书笔记:《梦断代码Dreaming in Code》

    读书笔记:<梦断代码Dreaming in Code> 拿到<梦断代码>书后,一口气翻了一遍,然后又用了3天时间仔细读了一遍,也不禁掩卷长叹一声,做软件难.虽难,仍要继续走下去 ...

  5. <<梦断代码>>阅读笔记三

    看完了这最后三分之一的<梦断代码>,意味着这本软件行业的著作已经被我粗略地过了一遍. 在这最后三分之一的内容中,我深入了解了在大型软件项目的运作过程中存在的困难和艰辛.一个大型软件项目的成 ...

  6. <<梦断代码>>读后感

    <梦断代码>中对软件工程所面临的种种困难与艰难的描述,即便再过5年读也许都不过时.因为正如原作者所说,书中描写的是一队人马并肩扛起代码大石,虽历经磨难仍欲将其推上山顶的故事,而正是这种故事 ...

  7. 《梦断代码Dreaming In Code》阅读笔记(三)

    最后这几章感觉上更多是从软件完成整体上来讲的.比如说技术.方法等. 在我看来,其实一个团队一直坚持一种好的.先进的方法是不可少的.如果一个优秀的团队刚愎自用,只随着成员们喜好发展,那不能长久.比如说, ...

  8. 《梦断代码》Scott Rosenberg著(三)

    开放与封闭之论: 程序源代码是商业软件公司最重要的资产,所以软件公司售卖二进制文件.这样也就意味着如果微软的软件产品出了问题,即便你是一个程序大牛也无法修复它.你只能等着微软来修正问题,因为只有微软程 ...

  9. 《梦断代码》Scott Rosenberg著(一)

    两打程序员,3年时间,4732个bug,只为打造超卓软件.  --序 在我们平时看到的大部分书籍只是讲技术和理论,但我们其实并不知道在真实的软件开发过程中,这些技术和理论究竟是被什么样的人如何去使用, ...

随机推荐

  1. python3+beautifulsoup4爬取汽车信息

    import requests from bs4 import BeautifulSoup response = requests.get("https://www.autohome.com ...

  2. JavaScript获取IE版本号与HTML设置ie文档模式

    JavaScript获取IE版本代码: var gIE = getIE(); alert(gIE.version) function getIE() { var rmsie = /(msie) ([\ ...

  3. 4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图

    目录 目录 前言 (一)竖值条形图 (二)水平条形图 1.使用bar()绘制: 2.使用barh()绘制: (三)复杂的条形图 1.并列条形图: 2.叠加条形图: 3.添加图例于数据标签的条形图: 目 ...

  4. (转)Spring Boot 2 (二):Spring Boot 2 尝鲜-动态 Banner

    http://www.ityouknow.com/springboot/2018/03/03/spring-boot-banner.html Spring Boot 2.0 提供了很多新特性,其中就有 ...

  5. C#深度学习の枚举类型(IEnumerator,IEnumerable)

    一.关于枚举的含义 .Net提供了可枚举类型的接口IEnumerable和枚举器接口IEnumerator,程序集System.Collections 另: IQueryable 继承自IEnumer ...

  6. centos7下部署mysql主从复制

    首先大致看一下这个图 环境说明: 系统:centos7 IP:master:192.168.7.235 slave:192.168.7.226 mysql版本MySQL-5.7 1.Master 下载 ...

  7. Linux 使用nexus搭建maven私服

    系统:LINUX           JDK:已安装           Maven:已安装           Nexus Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维 ...

  8. 提取http接口响应报文中需要的值,获得的是string,使用dict转换为字典处理

  9. 箱线图boxplot

    箱线图boxplot--展示数据的分布 图表作用: 1.反映一组数据的分布特征,如:分布是否对称,是否存在离群点 2.对多组数据的分布特征进行比较 3.如果只有一个定量变量,很少用箱线图去看数据的分布 ...

  10. 使用java实现快速排序(挖坑填数法和指针交换法)

    快速排序:通过一趟排序,将数据分为两部分,其中一部分中的所有数据比另外一部分的所有数据要小,然后按照此方法,分别对这两部分进行排序,达到最终的排序结果. 每趟排序选取基准元素,比该基准元素大的数据放在 ...