首页 > 其他分享 >梦断代码阅读笔记03

梦断代码阅读笔记03

时间:2024-06-19 17:54:36浏览次数:25  
标签:03 -- 代码 笔记 布鲁克斯 Agenda 软件 梦断

梦断代码阅读笔记03

  刚开始读这本书的时候,我是抱着一种读故事的方式去读的,但是慢慢读的过程中,就会发现,这并不是一本故事书,在通过每一个小故事的讲述中,讲述了软件开发的历史,每一次大变革的经验,在这次的读书过程中,我对书中的内容作了如下摘要:

1、布鲁克斯法则:往已延误的项目中补充人力,只会使其继续延误。----《人月神话》作者
2、布鲁克斯发现,在实际开发中,编码只占软件项目开发时间的1/6,
 有一半时间用于测试和修正缺陷。
3、布鲁克斯提到,“在预估及安排项目进度上的每一分努力”都是“危险且具欺骗性的神话”。
 所谓“人月”,是一种科学管理概念,它假定生产力可被拆分为不连续、无差异、可替换的单元。
4、布鲁克斯观察到,“只有任务能分派给许多相互之间无需沟通的工作者时,人和月才是可互换品。”
5、布鲁克斯发现,制作软件的大量工作受困于“序列约束”,
 它限制了任务分解的程度:完成某项任务的先决条件,这与人力投入多少无关。“十月怀胎”,
 布鲁克斯写到,“无论多少妇女参加都一样。”
6、1985年,麻省理工怪才斯托曼出于对商业软件产业封闭代码积习的憎恨,创办了自由软件基金会
 (Free Software Foundation)。基金会发布了一种特殊的软件许可,依据该许可,你能够获得全部所需代码、
 复用这些代码、组合到新产品中---但利用该代码创建出来的任何产物,也必须采用同样的许可。
 这种被称作GPL(GNU Public License)
7、GNU--一个旨在创建占据各大学计算中心的自由UNIX操作系统版本的项目。
8、瑞蒙德指出托瓦茨(Linux)其中的两个要诀:其一,低成本、广泛地接入像互联网那样的网络,
 让开发者之间能建立迅速、可信的沟通渠道,存储可被开放访问的共享知识和代码池;其二,围绕一种领导方式--形成合作团队的
 良好风气,欢迎新人进入、鼓励成员做出贡献,同时尽可能增加合格成员。
9、‘眼球足够多,缺陷无处躲’---李纳斯法则。
10、莲花公司于1988年发布了Agenda软件(列表管理软件)。它突破了计算机的严格逻辑与人类的语焉不详之间的阻隔,
 开拓新天地。它的创建者们认定这样一些超乎常规的原则:用户不用关心软件的存储结构、添加新分类,且不会导致数据丢失;
 用户应该能够用自己创建的新方式查看数据--也可以在自己创建的视图中操作和修改数据。
 (二十年后的今天,只有少数能做到上述几点,这些目标是多么胆大妄为)
11、然而,万千宠爱集于一身的Agenda却没能达到“杀手级应用”的境界。
 部分原因是已经成为巨兽级企业的莲花公司急于在商业市场大获全胜,不知道该怎么利用这个软件,
 也有可能是作为创始人的卡普尔弃公司而去,让莲花公司无心销售Agenda软件。

标签:03,--,代码,笔记,布鲁克斯,Agenda,软件,梦断
From: https://www.cnblogs.com/baizhuoran/p/18256906

相关文章

  • java笔记
    第二章:Java基本数据类型Java具有八种基本数据类型,用于存储简单的数值、字符和布尔值。这些类型分为数值类型、字符类型和布尔类型。1.数值类型byte:8位有符号整数,范围:-128到127。byteb=100;short:16位有符号整数,范围:-32768到32767。shorts=10000;int:32......
  • 01《构建之法》阅读笔记_1
    《构建之法》第一章介绍了软件工程的概念、理论、知识点以及软件工程与计算机科学的关系。具体来说,这一章让我了解了以下几个概念:源代码管理、配置管理、质量保证、软件测试、需求分析、程序理解、软件维护和服务运营,这些概念共同构成了软件的生命周期。此外,我还读到“将软件与程......
  • YC303C [ 20240617 CQYC省选模拟赛 T3 ] Generals(generals)
    题意给定一张\(n\timesm\)的地图。对于第\(0\)列,第\(m+1\)列,第\(0\)行,第\(n+1\)行,有\(2n+2m\)个人,每个人面朝地图中心。每个人走到别人染过色的位置,或走出地图,将走过的地方染色。你需要求出共有多少种本质不同的染色方案。\(n,m\le10^6\)Sol直接......
  • 02《构建之法》阅读笔记_2
    内容总结:单元测试  单元测试是一个合格的软件必备的流程,就像运动员在比赛之前的热身,活动身体的每一块肌肉,检查它是否处于紧绷状态,确保比赛时的完全发挥。 那么一个好的单元测试的标准是什么?1.单元测试应该在最基本的功能上/参数上验证程序的正确性一个软件的基本功能是用......
  • 03《构建之法》阅读笔记_3
    软件领域可以分为两个方面:一方面是技艺创新的大爆发;另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等,这一方面占了90%-95%的比例。——瓦茨·汉弗雷/软件工程的奠基人之一 对于我们做软件的人来说,我觉得写代码的能力固然重要,但是项目开发中用到的项目管理和项目......
  • 05构建之法阅读笔记
    第6章敏捷流程——6.5敏捷的故事这一小节提到了几种比较出名的敏捷开发方法论,如FDD、Scrum、XP、TDD。前三者在书中都有专门的介绍,但TDD,久闻其大名,到底是何许妙招?TDD(TestDrivenDevelopment),即测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编......
  • 06构建之法阅读笔记
    第11章软件设计与实现——11.2开发阶段的日常管理——11.2.2每日构建这一小节中提到了每日构建的重要性,那么,什么是每日构建?软件开发是一种集体活动,其中必然面临各成员间的协调、统一问题。银行每天都要对各网点进行清算结账,软件开发也是一样的,必须找到一种方......
  • 莫比乌斯反演学习笔记
    \[\]前段时间学习了莫比乌斯反演,现在补一篇学习笔记吧。Step1:莫比乌斯函数首先我们来定义一下莫比乌斯函数\(\mu\),它的取值如下:\[\mu(n)=\left\{ \begin{array}{ll} 1\qquad\quadn=1\\ (-1)^k\quadn=p_1p_2\cdotsp_k\\ 0\qquad\quadotherwise \end{array}......
  • 筛法学习笔记
    0.更新upd2023.5.21更新了关于powerfulnumber数量的证明upd2023.5.25更新了关于杜教筛的时间复杂度证明正文1.筛质数筛法其实就是判断质数的一个算法,但是是解决\([1,n]\)这一段区间的算法筛质数是最简单的一个用法1.1暴力最简单的方式就是对于每一个数去判断......
  • 狄利克雷卷积学习笔记
    0.更新upd2023.5.18更新了狄利克雷卷积新的一个性质,更新了常用结论的证明1.正文这玩意儿是这么说的:定义一个运算:$*$为狄利克雷卷积。他是干啥的呢?把两个数论函数进行一个运算。\[h(n)=(f*g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})\]当\(f,g\)都是积性函数时,他们的狄利......