梦断代码一共分为11章,分别为《死定了》,《Agenda之魂》,《原型与Python》,《乐高王国》,《管束奇客和狗》,《完成设计方案》,《细节视图》,《白板上的即时贴》,《方法》,《工程师和艺术家》和《通往狗食饭之路》,看着这几个章节的标题我觉得非常有趣,这也使我对阅读这本书产生了极大的阅读兴趣,下面我将分别分析我对这几个章节的理解以及感受:
第一章是《死定了》,死定了”不得不说这是一个很吸引人的题目,到底为什么死定了呢?原来他们都死定了——那些编程老手们!他们为了各自的任务不能及时完成而痛苦着。他们在一起讨论着为什么不能按时完成工程的原因,正是从他们的言语中我了解到了软件工程工作的大概流程和工作步骤。“先有蓝图”,的确,盲目的工作是多么无知的行为,尤其是软件工程这个需要明确分工和统一协调的工作。怎么能只图快而盲目下手呢。就像我们工作生活中最好也要有一个计划吧。布鲁克斯法则也是我应该记下的:往已延误的项目中补充人力,只会使其继续延误。即使有些人装作法则不适合于自己,但事实确实如此。人月并不等价,只有任务能分派给许多互相之间无需沟通的工作者时,人和月才是可互换品。可见,软件工程项目不是靠人多就能完成好的,只有一个默契无间的团体,在合适的时间内才能完成一个好的作品。
第二章是《Agenda之魂》,angenda项目是为了解决提醒、要做的事、好主意、建议等一些很难分类的信息,让计算机进行分拣,并能快速找到。虽然是一个简单的列表管理软件,但是几个突出的特性让其成为传奇: 引入了一种管理数据的新手段;突破了计算机的严密逻辑和人类语言不详之间的阻隔。用户不关心软件的存储结构,只管输入数据;用户能够轻易修改和拓展数据结构、添加新的分类;用户能够用自己的方式产看数据。很难想到这是二十多年前的成果,它完全达到了现在很多软件的都达不到的水平。而对于软件灾难,我们不应该太过于在意,不然很难将代码写下去,所以“程序员都是乐天派”。
第三章是《原型与Python》,把生活的某方面融入到软件代码中之后,就很容易不饿,igezhong新奇诱人 的可能行所迷惑,看不到自己放弃了什么。设计良好的诚信互在提供大多数新特性的同时,并不试图对抗进化过程留给我们的物理世界倾向。(我从昨天就记得这个按钮在哪儿,因为大脑能记忆空间中的位置—所以明天最好还能在同一个地方找到它!)“好程序员懂得写什么”而“卓越的程序员知道改写(并复用)什么”没必要重新发明RDF轮子—只要打上顺风车就行了。当你遇到一个众人期盼救世主降临拯救苍生的是刻,而你恰巧知道答案,你可以自信的说:我以前做过类似的东西,我能搞定。
第四章是《乐高王国》,模块化和组件化是软件程序员的梦想,谁都 想把几个模块插到一起就能完美的运行并完成任务,但现实却相当残酷,可以运行的模块通常不能与自己想 写的程序配合工作,好的源代码由于商业利益也不太容易找到,程序员只能自己另起炉灶,搭建自己的模块,但结果还是一样,做出来的东西那一让他人共享,这个现象周而复始,不断的在多个程序员身上上演。我们能不能找到一个途径,来打破这个模式。可复用软件之梦有一个悖论:几乎总能找到一段满足大部分需要的代码。但这些拿来的代码所不能做到的部分,恰恰是项目与众不同的创新之处----也是创新这个项目的出发点。
第五章是《管束奇客和狗》,编程环境仍是一个未知数。 而创建虽然费时费力但无疑是针对自己的状况,两者各有优劣。
向往未来那种程序可由复用的部件组成,软件部件将在全球范围内提供,那样我们或许会告别这痛苦的编程过程了吧,只去享受那成功的喜悦。软件界那太多势不两立的标准,或许是阻碍我们复用代码的一大难题吧。“程序员总以创作为荣,叫他们拾人牙慧,无异于佛其逆鳞。”的确,原创固然很棒,但我们要的是好的结果,因为用户是不会去看你的程序的,很多人都站在巨人的肩膀上取得了成功,我们为什么不能?一个软件的开发,就像人的成长——成人,成长,学习发展,向着完美改变自己。
第六章是《完成设计方案》,程序员负责猜测程序该如何应对用户输入和机器状态的上千种可能组合。他们并不善于站在用户的立场考虑问题,想出合理之策。他们花费大量的时间纠结于数字化细节,他们被调教得按自己做出的系统一般的运作。他们视之为理所当然的概念,对于非程序员而言纯然是怪异之举;他们多数不太了解用户的想法。程序员们经过训练要巨细靡遗通盘考虑,他们太执着于警惕会出现问题的情形,结果却难免会迟钝不灵。他们在边缘案例上绞尽脑汁,以至于偏离了中心点。良好设计的原则:坚固——良好的结构、没有缺陷;适用——“程序应符合其设定目标之所需”;愉悦——“使用程的体验应令人愉悦”。