2010年2月7日星期日

本周编程乱弹及《编程匠艺》书评

snow_upb_2010 附图是家附近的雪景,大概一个月雪都没化,德国今年真是非常非常冷,雪也下得相当疯狂,地球变暖?还是真的似乎进入了“小冰河时期”。这个星期当然还是继续坚持“每周五天,信息斋戒”。

这星期接触了ICE,相当不错并很有趣(简介:“Internet Communications Engine”,是一个中间件平台。作为一个高性能的互联网通信平台,ICE包含了很多分层的服务和插件,并且简单、高效和强大。与硬件架构无关,编程语言无关,完全线程化,采用TCP、IP 和UDP作为传输协议,客户端和服务器代码都不需要了解底层的传输机制。),并实现了一个应用。还在做一个重构,进行中,采用了一个方法,就是对这个重构任务进行分解,把他们分成非常小的工作单元。并使用了原型设计过程,创建一些可丢弃的原型。个人认为原型设计过程在一定程度上可以说是非常高效和稳定。最近还改了一些编码风格,以便更为适应我们内部的编码风格。

这个星期也和一些bug战斗很久,因为一些指针的输入错误或糟糕的指针算法在以前的代码中,产生了很多的段错误(简介:也称为“保护缺陷”。源自程序访问那些并没有分配给它们的存储单元,涉及,都非常容易造成这种错误。说白了就是“访问了不可访问的内存”)。个人经验教训就是: 千万不能盲目,一定要清楚这些代码如何运行,编写代码一定要谨慎,并做到更谨慎做更多“防御性编程”,这样才能更好地防止bug出现。

但是这个星期最大的经验教训,就是明白了一个道理:“程序的记录分类很重要,一定要要好好总结整理”。以前编过一个测试服务器网络的程序,居然忘记曾经编过,这个星期四又编了一遍,而且还不会编了:-( 极度痛苦,最后,突然发现以前的代码,当时真是泪流满面。这个星期,师兄对我上传的代码进行了代码审查据说这是提高自己的最佳方式。这也的确提高了我对代码的责任感,强迫自己提高代码质量,修正自己的代码更加易于理解,消除所有重复代码。

最近进行了很多思考,项目压力下,反而进行了更多的思考,总结。常常在想如何能够“创作出组织良好而且易于理解的代码”,并阅读了《编程匠艺》,挺值得推荐的。这里将我在豆瓣的书评附上。

 

据说,传说中理想的程序员应该具有以下品质:
政治家。必须很老练,去应付那些怪异代码猴子的小过失,能够协调人员。
亲切。可以愉快的和别人合作。
艺术感。可以设计出优雅的解决方案。
技术天才。编写的代码可靠耐用。
也许我们还远未达到这种地步。但是从这本书中可以体会并学习:理想的程序员的“一些实践经验,一些思考方式,一些正确的心态”。
我很喜欢阅读这种类型的书,读起来非常轻松,不是什么纯技术类的图书,但是从中又可以获得很多系统化的知识。这本书共有24章,很厚,但是每个章节间是“松耦合”,每章的结构相似,先分要点讨论一些问题如编程的各个要素或一些编程问题,最后总结,思考,再提出一些深入思考等等,我们大可以每天随意的找一些有兴趣的东西读一读。
书中有很多生动,睿智之语,有一句话印象比较深刻:“构建软件就像犯罪一样:当有组织时,就会做得更好。”
个人认为,程序员不要一味学习高深的编程技术,要更加关注编程的思想,方法,态度,这本书绝对适合放在案头,偶尔翻一翻,提醒自己是否像优秀的程序员一样思考和行动。当然了知易行难,将这些思想,方法,态度应用在实际工作中是一个很困难或“痛苦”的过程,但如果可以坚持实践,并结合自己进行深入思考,这样定可以向传说中理想的程序员前进。
附注,网上有很好的读书笔记,做的很仔细很完整,推荐,如果没有时间阅读本书,可以直接阅读这份笔记,网址如下:
http://www.cnblogs.com/wing011203/tag/编程匠艺/

没有评论: