《梦断代码》阅读笔记01
这些天阅读了梦断代码这本书,下面我首先讲我个人感受,之后是读书笔记整理。
个人感受部分:
我过去都是完成任务型的去学习程序,写程序。
正如书中所说,这样做有一个极其大的弊端,那就是会慢慢对编程失去兴趣。并且我现在也有所察觉了。
解决办法:正如书中所说,软件时间是从0开始的,我要先学好基础部分,然后在基础上添加新的东西,这样既能学到东西,又时刻保持兴趣和活力。
读书笔记整理:
第0章 软件时间
作者迷恋于一个开放代码并可以由游戏玩家更改程序的一个游戏,并为在它的基础上创新和增添一些功能而乐此不疲。
0代表程序员的思维方式,因为计算机从0开始计数。
"Hello World " 程序能够唤醒每个程序员心中乐观的一面。既然能叫它说话,就能让它做任何事!
在第一章“死定了”里,作者提到了《人月神话》。人月神话的作者布鲁克斯提到:“只有在任务能分派给许多互相之间无需沟通的作者时,人月才是可互换品。”布鲁克斯法则暗示最理想的开发组规模是一个人——无需停下工作与同事沟通的单个开发者。然而,OSFA给布鲁克斯提出了新的难题,就是“开放源代码软件”。这一章还提到了《大教堂与集市》,《大教堂与集市》阐述了开源是一种飞跃,但是并没有解决布鲁克斯所看到的、在从头搭建一套新软件的过程中所遇到的困难,因为在开源世界中,时间无关大局,志愿者不求物质回报。
在“方法”一章中,作者否定了“瀑布模型”。“这种模型在纸上看似合乎逻辑,但实践起来却总是导致延误,混乱和灾难。每个阶段都耗时无算,但没有一个工作正常的。程序员要么坐等需求,要么干脆在拿到需求之前开始做设计。”在20世纪90年代,软件方法学家提吃了快速应用开发(Rapid Application Development),RAD承诺通过快速原型设计和更紧迫的迭代周期,依靠新工具让计算机处理一些繁重的编程工作,加速完成软件的交付。《敏捷宣言》因其简明扼要而引人注目。但“敏捷开发”更像是共有价值观的保护伞,而不是具体过程的路线图。一般认为敏捷开发和XP(极限编程)最适用于有经验的编码者组成的小团队,如果你想遵循所有的XP信条,你会感到过于苛刻。
乐高王国一章中提到了“可复用代码”概念。“乐高假设”是:“未来,程序将由可复用的部件组合而成。软件部件将在全球范围内提供。软件工程将从编程的窠臼中解放出来”。但是程序员大多发现此路不通。因为如果把这些构建块比作积木,这些积木应该细小,不可分,可被替代,但是实际上程序中的组件在尺寸上、功能上以及与其他组件的可拼接数量上差异甚大。