面朝大海,春暖华开

focus on scientific computue, 3dgis, spatial database
专注于科学计算、GIS空间分析

 

下阶段读书计划-基础技术篇

【OOA/D(设计与思想)】
 [1]《设计模式:可复用面向对象软件的基础》,GoF,李英军等译,机械工业出版社:设计模式中的圣经,面向对象书籍中的经典。虽然GoF在前言就一再声明他们写的这本书不是介绍面向对象技术或设计的书,但是我一直认为(Utill Now),就像GoF在其第一章引言中说的:学习设计模式可以帮助学习面向对象,而我的观点更加深入:只有真正理解了设计模式,才知道什么叫面向对象分析与设计【1】。【1】是我在经历了理解设计模式前后做的系统的比较得出的,并非个人的一时冲动的论断,在看了GoF的这本圣经n遍,并实际编写一遍23中设计模式的实现,思考并在实际系统设计和开发中适当运用设计模式后,我只能说慢慢地对面向对象的分析和设计有一些感觉和体会了。GoF在这本书中给常见的设计模式分为创建型、结构型和行为模式共23种,这些也就构成了当前软件界通用的设计模式的代名词。这本书是设计模式中的圣经,但是个人觉得唯一的瑕疵就是(可能看过的都有感觉):行文比较生硬。可能是因为GoF都是Ph.D,并且主要基于Eric的博士论文,读起来对于初学者有些难度(我是鼓起n次勇气读了n次后,才慢慢体会到博士水平还是不同!)。作者也在前言中“坦白”:请记住,这不是一本读完就可以束之高阁的书。这里强烈推荐。BTW:我将个人学习和使用设计模式的经验和理解在本Blog中有一个连载(见设计模式部分),主要想就GoF的23种模式以一种更加易于理解和接受的方式展现出来,并给出了我在学习设计模式时编写的C++代码实现。

 [2]《敏捷软件开发:原则、模式与实践》,Robert C.Martin,邓辉译,清华大学出版社:该书曾获得第13届Jolt大奖,Robert C.Martin自己也是软件开发界的大牛。读过这本书的人都有体会:内容和书的名字有些出入。书中虽然花了一些篇幅在讲述敏捷软件开发(Agile Software Development)的原则和实践,但是书中绝大部分的内容在讲述面向对象分析和设计OOA/D),例如面向对象设计中的原则(单一职责SRP、开放-封闭OCP、Liskov替换LSP、依赖倒置DIP、接口隔离ISP)、设计模式(共23种,但是不是和GoF的23种设计模式全部相同)以及UML等内容。个人觉得该书可以和《设计模式》一书结合起来读,并且是面向对象设计和分析的必读书之一。这里推荐阅读。Robert在书中的一句话或许会记一辈子:Next to My Life,Software is My Passion

[3]《Design Patterns Explained-A New Perspective on Object-Oriented Design》(影印版),Alan Shalooway & James R.Trott,中国电力出版社:这本书我在买的时候还只有影印版,现在中文版本已有熊节翻译出版了。买这本书的时候我还对设计模式一知半解,只是看着这本书的名字比较OK就买了,实际上买回来后一开始也没有怎么看,但是在看完了GoF的《设计模式》后,我再把这本书认真看了一遍,感觉也是经典。这本书最大的特色就是实例教学,他首先对OO设计进行了简单扼要的讲述(个人认为是最好的OO教授之一,个人受益匪浅),然后选取了GoF23种设计模式中的10种进行了详细的分析:先引入问题,然后Derive相应的设计模式,这种方式最为容易理解。其中我觉得讲的最好的就是Bridge模式,分析到位、实例清晰,实在是给我理解Bridge模式给予了很大的帮助。强烈推荐大家阅读

【UML与建模】
 [1]《UML精粹——标准对象建模语言简明指南》(第2版),Martin Fowler&Kendall Scott, 徐家福,清华大学出版社:Martin Fowler在软件界的威名大家是有目共睹的,Martin Fowler是架构、企业构架、设计模式等方面的大师,他的《分析模式》是商业层面的《设计模式》经典,他的另外一本书《Refactoring》则树立了Martin在XP(极限编程》中宗师级的地位。《UML精粹》也正是吧UML的精粹部分展现了我们面前,我们知道UML是咱们做软件必须要熟练掌握的建模语言(不然怎么和别人交流?!),但是我个人觉得学习UML的是枯燥的,且不说别的,就是UML中的那9类图都够咱们郁闷的(尽管不是每种都很常见和常用)。我也正是通过这本书慢慢地去熟悉、适应、使用UML,本书也是面向对象思想(OO)学习的经典,你可以从这本书中学习到很多的OO的思想和原则。唯一美中不足的就是:个人对翻译的徐家福老先生翻译的笔风不是很称,很多的名次和现在的表达有一些出入,也让人有时候觉得很是费解。anyway强烈推荐大家阅读。

 [2]《使用UML—关于对象和组件软件工程》,Perdita Stevens & Rob Pooley,包晓露译,人民邮电出版社:这本书虽非出自大师级的高手,但是个人觉得这本书是非常好的面向对象思想和UML学习的教材。就像本书最开始就讲到:面向对象的3块基石(封装、继承、多态)中封装的本质就是高内聚(Cohesion),多态的本质就是低耦合(Coupling),这是我看过讲面向对象理论最为简洁、本质的论断,也带给了我莫大的思考。这本书还有一个特点就是适合个人学习,因为该书的组织是按照教学的进度安排,还设计由讨论和问答,非常适合OO思想入门和UML使用入门。推荐阅读

【软件过程管理】
 [1]《人月神话》,Frederick P. Brooks,JrUMLChina翻译组 汪颖译,清华大学出版社:排在这个位置的一定是这本《人月神话》,我个人觉得这本书本身就是一个神话,它的经典、它所诠释的软件开发的精神、软件过程的艺术,使得该书畅销了20年经久不衰,让人不得不认同这样的一种神话。Brooks获得1999年的图灵奖,他在1986年发表的论文《没有银弹:软件工程的根本和次要问题》,让“没有银弹”的软件领域的“定理”成立20年,可能还不知道要成立多久。《人月神话》是关于人和团队的书强烈推荐阅读

 [2]《敏捷迭代开发:管理者指南》,Craig Larman,张晓坤译,中国电力出版社:Craig Larman是面向对象、模式、迭代开发等领域广为人知的世界级专家,他的那本《UML和模式应用》被Martin Fowler推崇为:“人们常常问我,哪本书是引领他们迈入 OO 设计殿堂的最佳著作。自从幸获 Craig 的《UML和模式应用》,它就成为了我的倾力之荐。Craig Larman在这本书中讲述了四种著名的迭代方法(Scrum、XP、UP、Evo)的关键实践,并就敏捷和迭代开发中的实际问题给出了建议和实践经验。Craig Larman维护了一个中文网站:http://www.craiglarman.cn/。我个人比较推崇敏捷软件开发,虽然很难说得其要领,但是还是觉得在当前得这样一个软件开发环境里敏捷迭代的思想还是值得咱们好好推究和实践的。

posted on 2005-12-17 18:35  风过 无痕  阅读(397)  评论(0编辑  收藏  举报

导航

向日葵支付宝收钱码