《梦断代码》阅读笔记02
最近团队第二期冲刺的浪潮还有各科考试压得我们有些喘不过气,说实话晚上还会做恶梦……但是我还是抽空完成了《梦断代码》第二到第七章的阅读。我不得不承认作者写的特别棒,但是由于没有计划好阅读的时间导致我现在不得不简略的去读,有些地方见解不透彻还请读者原谅我。
因为我个人对于团队开发的感想比较大,所以我以此为例讲述阅读后的感想。
做软件开始时候肯定要考虑用户需求,而且往往在需求分析上就可以看到组与组之间的差距,我们有的组选择的题目晦涩难懂,他们本人做起来也会觉得能够借鉴的代码很少,而有的组虽然选择的题目可能“烂大街”但是难能可贵的是他们懂得在现有代码的基础上进行创新,加入他们的元素。这就是书中讲到的,“面对客户五花八门的需求时候,程序员的应对方案就有所不同了,当然每个程序员的能力也不一样,好的程序员懂得写什么,而卓越的程序员知道改写(并复用)什么……”。正如安迪·赫兹菲尔所说,“没有所谓典型的软件项目”,“每个项目都有其不同之处”,我们开发软件的时候没有固定的模板,每一个项目的核心都会不同。软件开发就像是造物主创造的生命一样,没有那一条生命是一模一样的,即使是一个模子刻出来的也有不同之处,更别说面对客户的各种各样的需求了。所以我们开发的时候选择产品类型很重要,既要选择主题大众的能够有课借鉴的,又要根据当下开发的背景、适用群体等选择合适的模板并进行创新。
在阅读的过程中我对于书中讲到的“软件开发的规律”也是印象颇深。所谓软件开发的规律,即为质量三角不能兼得,速度、便宜、优质,三者往往只能选其二。“……就像盖高楼一样,人们总是习惯延期完工,这样就不会被别人怀疑质量问题,反过来,如果一个大楼十天就盖好了,人们肯定会觉得太不可能了,这样的楼房人们也不会住进去,软件开发也是这个样子,有速度就可能不会保证质量,有质量可能就得延误完工,当然这也与程序员有着紧密的关系……”我们在开发的过程中总是要寻求这样的一个平衡。既要高质量的完成任务,又不能简化功能。这个是很难做到的。
最后我想说的是,读“乐高王国”的时候,真的引起了我的共鸣。“软件开发和堆砌乐高积木就完全不一样了,乐高积木式的插件不合适……软件它就像洋葱般层层叠叠,每一层都辛辛苦苦的建立于前一层基础之上,危如累卵,指望着底下那层不要移动或者改变太多……”也正如麦卡斯柯说道:“我们打算尽可能多得复用现有代码,少些新代码,要加快工作进程,就得尽量避免踏入新的编码地带”。以前的我写程序的时候总是很鄙视直接使用百度上的代码,即使能够直接插入到我的项目中我也会再自己从新敲进去。以前的我就是作者描述的那种程序猿,专注于制造螺丝和螺母这种小细节,而不屑于利用别人早就写出来不知多少个版本的代码。其实这样虽然能够在初学的时候掌握代码的构造,但是不利于开发,会浪费掉很多时间。现在经过多个项目的开发我渐渐的转变了这种思想,因为一个高明的程序员不应该只是闭门造车,把时间过多花在本就实现的功能上,而是能够灵活运用现实中已经存在的资源来创造一些真正有价值的创新软件!
“……软件开发虽然是一个艰难的过程,但是只要坚持,总会有成绩,如果不坚持,什么东西都不会做出来……”无论是阅读这本书,还是团队开发,加油!