梦断代码阅读笔记02
不知不觉已经到了第八周了,时间过得飞快,半个学期过去了,我们的软件工程也到了第一冲刺阶段,近期我们全身心的投入到了我们的团队项目中,当然,在工作之余也没有忘记继续进行我的梦断代码阅读活动,这一周,我阅读了第四五六七章的内容,同样有很多的知识要总结,有很多的感悟要记录。
一、阅读内容
第四章内容的标题是乐高王国,讲述了在大量程序员失业或半待业的技术工业冰河时代,OSAF获益匪浅,很多人投入到Chandler项目中,了解到了软件开发者常常谈及的前台和后台的概念,前台是程序中和用户打交道的部分——显示窗体对话框和鼠标指示,告诉你正在发生什么,让你有办法输入信息并得到输出信息。后台是前台发生的事件和用户输入流向的地方,计算机对事件和输入进行处理,保存,取回。前台应该精致,直观,功能强大,后台应该隐形,高效,如磐石般坚固。然而Chandler后台工作陷入了困境。对资料库的最主要需求是方便前端开发者,而前端开发者需要一种“对象持久化”的机制。实现“对象持久化”最简单的手段就是采用对象数据库,对象数据库把一段代码和与之相关的数据打包储存。接下来就是完善Chandler项目,引出了ZODB,从而提出了乐高这个词:新西兰学者詹姆斯.诺博尔和罗伯特.毕多有时用“后现代程序员”的笔名共同写作,他们把这个梦想叫做“乐高假设”。经过所有程序员的努力Chandler完成了第一版。
第五章内容的标题是管束奇客和狗,开头写到了名叫Chandler的狗,接着映出了管束狗和程序项目的相似性,看到OSAF在狗身上抹上跳蚤粉,然后贴上标签说:正在要杀跳蚤——别碰我。有人喜欢给自己贴上标签,比如说:我不会编程,我不行,我是一个混日子的人。这种标签自认为贴在自己身上后,然后自己就有理由推脱责任,不去做自己该做的事情。其实这是自我欺骗的一种表现。而且,我们不应该给自己这快的下结论,因为你不知道自己有多大的潜力,也许我们只是缺乏一种信心,缺乏一种胆量,就像老师课上给看的一个照片,一只公鸡走在一群狗的前面,给狗狗检阅,这是一种勇气,我们确守的就是这用勇气。所以我们应该像runningmen中似的,要敢于撕掉标签。其中了解到了一个词:geek out,奇客,指的是沉浸到细节中直至变态境界——而且乐此不疲。据他说奇客者不都是编程人员,编程人员但都是奇客。这说的有没有理我暂且不评论,但是我军我们程序员应该做一个奇客。因为我们在编写程序的时候必须去钻牛角尖,如果不能一丝不苟的去完成作品,到后期去修复bug的时候往往是以前的几倍甚至几十倍。而且我们做出来的东西必须可以使用,让额客户满意才算可以,时代在发展,如果你没有完美的设计,你就会被淘汰,这就是现实。所以我们应该是奇客。
第六章内容的标题是搞掂设计方案,卡普尔认为,软件设计不仅仅似乎在程序员代理吗上覆盖一层诱人的图形。它是一种一种设想用户需求并在软件结构中满足这些需求的创造性基础工作。对啊,我们必须趁人用户真心不会按照你写的说明书进行工作,他们的操作有时候确实让人难以捉摸,就像尚一章人们不按照规则编写文本,最后还是程序员自己在最后编写了一个按钮:自动编辑文本。就像,作者突然不小心把文件拖得消失了,这真让人精心动魄啊,然而撤销键拯救了他。不论是编辑按钮还是撤销键都是为了让用户能够良好的使用软件或者操作系统。我们做软件也应该这样,能够满足用户的需求,就像现在老师们只要让我们做一个软件,其中都会有一条就是:便利用户。文中说:别指望在短的时间内达到打的成就;从小的项目开始,而永远不要期望他变大,如果这么小,就会做过度的设计,把他想想的过于重要,更坏的情况是会被自己的想象的艰难工作所吓倒。所以要从小处起步,着力考虑细节。别去向大图景和好的设计。如果项目没有解决某些眼前的需求,多半就是过度设计。这些确实好好地教育了我。我们又要做一个生日提醒软件,我们有很多让自己喜欢的想法,现在想想我们的想法有点多,又想生日提醒又想在其中穿插很多设计,这么多东西到真做的时候就会发现很难,然后最后的结果我们可能是放弃。所以先从小的开始。
第七章内容的标题是细节视图,这一章主要讲述了关于做好细节视图程序员们做出的努力,然而弄错了需求的后果,就像吉他手吉尔.塔夫内尔的设计草图:一个多余的撇号就让十八英尺的巨石变成了十八英寸的石柱子。了解了最著名也是最声名狼藉的变量命名方案是匈牙利语标记法。其名字来自于发明者查尔斯.西蒙尼的母语名,同时也来自该种语言神秘而不易发音的单词标记,可能在用C++写Windows程序的时代是需要,因为各种类型、结构、枚举、控件等等让人眼花缭乱,让人容易出错,而在Java和C#等这种强类型的语言中,这类命名法完全是对程序员审美观的践踏。
二、个人感悟
以前,我并不了解软件工程发展有如此多的曲折和困难,对于我们现在每一个程序开发软件的来历并不是很清楚,通过读这几章的内容,才知道了现在我们所使用的软件的来之不易,以及它设计时作者的良苦用心。让我对那些先辈们不由的产生了敬佩之情。
现在,我真的觉得软件开发过程是抽象而又艰巨的,不是每个人都能做的一份工作,机器语言不比人类语言难学,开发软件好比建筑工程,一层基于一层,需要的耐心和一份执着,一群人们怀抱着改变世界的理想上路了,却在追寻时发现,那些近在眼前的理想之峰,变得那么的遥不可及;每当翻过一座横亘在面前的山峰时,总以为已经来到理想之峰的脚下,却发现这又是另一座需要攀越克服的阻隔之峰,我觉得其实虽然我们现在已经站在前人的基础上开发项目相对容易一些,但是我们仍然缺乏那种勇于探索的精神,这种精神是哪个时代都不可以缺乏的。
通过阅读这几章的内容,我觉得要想解决我们当下的难题,我们应该学习书中程序员们勇于探索的精神,虽然乐高王国只是一个梦想,我们应该勇于追求梦想,要付诸行动,这样在遇到困难时才不至于毫无对策,因此我认为今后,我们要像书中程序员那样不怕困难,勇于探索!