ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

推荐一本书——《梦断代码》

2022-01-10 12:33:03  阅读:197  来源: 互联网

标签:本书 11 代码 Chandler 银弹 软件 梦断


《梦断代码》作者罗森伯格对 开放源代码应用基金会 主持的Chandler项目进行田野调查,跟踪经年,试图借由Chandler的开发过程揭示软件开发中的一些根本性大问题。

斯科特·罗森伯格,作家,编辑,1981年毕业于哈佛大学,1995年与他人共同创办了Salon网站。就是这哥们是个作家,写了本小说叫《梦断代码》,又因为他懂编程,所以在故事中增加了科普和代码类元素,使得这本书读起来比较nice。

如果你只想为了完成博客笔记而读这篇博客的话,点击这里,这哥们儿总结的比谁都详细。


本书主线是一群很有经验的代码牛人先进软件开发模式的指导下,没有资金压力,在更多大牛的带领下,原计划用一到两年的时间开发出一个备受期待的个人信息管理软件Chandler后来花了七年时间才完成这一创举,但是已经落后时代太久。

我的理解,时间脱了这么久的原因就是,这群大牛讨论了很多细节,而没有付诸实践,他们太专注于细节了,想要保证一次性开发出完美的软件,就像我不经意间就会追求代码做到完美,导致软工程序写出来后完全符合BOSS(民哥)的要求,不过,讽刺的是,需求是他随便想出来的。所以被坑过的我决定痛定思痛,痛改前非,总之就是很痛,在软件中做到规定的时间完成规定的事儿,至于做成什么玩意儿就不考虑了,反正我把技术交在那了,回头有时间再精细加工呗。

咳咳,扯远了。这本书的支线就是很多软件工程中的名词,概念的解释,作者很巧妙地自然过渡,读起来不是很费力,也很有乐趣。

背景是卡普尔这个人,他创建了莲花公司,公司很成功,每年给他赚几百万美元的利益。但这与他的价值观不服,于是他“功成身退”,然后就去搞Chandler了。

喷:以写作为生的跟以编程为生的就是不一样,还是前者写的书更招我们读者喜欢。


接下来是对我有用的名词的解释。

我觉得这本书最重要的是里面的一个个故事,大故事下的小故事,这叫“以史为镜可以明得失”,可让我闲的没事儿写自己看过的不知道忘没忘记的故事,我欠你的?

第0章 软件时间

心流:
你沉浸在一行行代码的逻辑中无法自拔,以至于过去了很长时间而你浑然未觉。
我们在写一篇很长的代码或者在用算法优化某个函数的时候,会进入这种状态。
当然,对于我来说,像进入这种状态无比简单----随便打开个动作类游戏即可。

没有银弹:
在现代软件研究领域多有建树的专家弗里德里克·布鲁克斯在1987 年写了一篇题为没有银弹(No Silver Bullet )的著名论文。
文章把软件比作当时人们最害怕的精怪---狼人,而银弹可以杀死狼人。
很遗憾,作者对存在杀死软件制作困难这个狼人的银弹持否定态度。

第1章 死定了[2003年7月]

讨论软件进度:
进度忽而突飞猛进,忽而不知何故驻足道中。在你以为大功即将告成之时,却又山穷水尽, 花上整半年时间,一无所得。

第2章 Agenda之魂[1968~2001年]

布鲁克斯法则:
最理想的开发组规模是一个人----无须停下工作与同事沟通的单个开发者。

提靴带:
初次启动计算机时,内存是空的。这就造成了鸡与蛋的悖论:计算机硬件需要操作系统软件来装载程序——包括操作系统本身。计算机系统发明者们通过一个叫做"bootstrap loader (靴带装载者,引导程序)”的小程序让机器具备刚好足够把大操作系统装入内存的能力,开始正常运行。

第3章 原型与Python[2001~2002年11月]

python是解释型语言,科普了python的优缺点

电梯游说:
就是当你有幸在电梯间遇到某位权钱人士时,能脱口而出,在短时间内说服他。

第4章 乐高王国[2002年11月~2003年8月]

乐高假设:
未来程序将由可复用的部件组合而成。部件将在全球范围内提供。
做好项目的关键在于复用,而不是重复发明。

第5章 管束奇客和狗[2003年4月~8月]

质量三角:
既好、又快、还便宜,同时满足的事情不太可能发生。好像书上说的是最多满足两个。

奇客:
编程能力很强,但与人交往能力差的要命的人。

奇拗:
沉浸到细节中直到变态境界。
(愿意刨析底层代码不是一种优良的品质吗?)

第6章 完成设计方案[2003年7月~11月]

关于Linux的作者李纳斯托瓦茨的一段原话:
别做大项目。从小项目开始,而且永远不要期望它变大。
如果这么想(指做大型软件),就会做过度设计,把它想象行过于重要。
更坏的情况是,你可能会被自己想象中的艰难工作所吓倒。
所以要从小处起步,着力考虑细节。别去想大图景和好设计。
如果项目没解决某些需求,多半就是被过度设计了。
(很有道理!)

第7章 细节视图[2004年1月~5月]

“吃你自己的狗食”:
比尔盖茨提出,意思是开发者必须使用自己正在做的产品。

第8章 白板上的即时贴[2004年6月~10月]
第9章 方法

瀑布模型:
将项目切分为依序进行的多个独立阶段,比如需求定义、设计、实现、集成、测试和发布。每个阶段需在下一阶段开始前完成。
这套做法在纸上看似合乎逻辑,但实践起来却总是导致延误、混乱和灾难。每个阶段都耗时无算,但没一个工作正常的。
(深受其害的我强烈认同这句话)

螺旋模型:
将开发切割为六个月到两年的“迭代周期”——更快生产出可工作代码的小瀑布,从部分完成的产品使用中得到反馈、指导下一步迭代。
(对,这也是我们需要采用的编程方法)

第10章 工程师和艺术家

写软件是门艺术?你要是这么想我也无话可说。

第11章 通往狗食版之路[2004年11月~2005年11月]
尾声 长赌[2005~2029年及以后]


彩蛋:分享 梦断代码pdf文件(我的百度网盘分享)

链接:https://pan.baidu.com/s/1GgdMkJdGwW7YH6hJ6tVsAQ
提取码:1024

标签:本书,11,代码,Chandler,银弹,软件,梦断
来源: https://www.cnblogs.com/zhuangzhongxu/p/15783911.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有