整理了一下读过的不错的书

时间:2021-08-01 10:38:35

基础:
《程序设计实践》 The Practice of Programming
  作者:Brian W.Kernighan,Rob Pike
  译者:裘宗燕
  出版社:机械工业出版社
  这本书的作者W.Kernighan是C语言的设计者之一,著有《C程序设计语言》。书非常的短小,只有200多页,和一期小说月报相当。读这本书,感觉好像是一个老程序员在向你闲聊自己的经验,粗看起来松散,没有拉出什么方法过程之类的架势,细细品味却会发现每一句都是多年实践的结晶,学来收益匪浅。书虽然薄,却涉及了程序设计、编码风格、算法和数据结构、编译原理、测试除错、界面以及记法等方面内容,而且讲的相当透彻,绝非泛泛而谈。厚积薄发,自成一体,可以看出作者深厚的功底。是一本非常好的扎实基本功的书籍。
  每一章后面都象教科书一样列有习题,作一作相当的不错。当初我那一本不知被谁借走了,现在正在想重买一本。
  本书有影印本,也由机械工业出版社出版
 
《程序设计语言:设计与实现》 Programming Languages:Design and Implementation
  作者: Terrence W.Pratt
  译者:傅育熙 张冬茉 黄林鹏
  出版社:电子工业出版社
  列上这本书有点感情因素在里面,因为是大学时无聊啃掉的一本书。这本书虽然不涉及什么实际的编程知识,仅从编译方面讲应该也没有恐龙书《编译原理》深入,但是相当全面的的介绍了程序设计语言从文法到实现的各个方面。阅读之后会对自己所使用的工具有更深入的认识。很多问题也就不会觉得“莫名其妙”而抓狂了。书后附录中的十几种语言的概述,是对新语言追逐症不错的治疗。
  缺点就是较厚且内容很多,需要花费大量时间,不是很适合上班族。
 
设计实现:
《设计模式--可复用面向对象软件的基础》Design Patterns:Elements of Reusable Object-Oriented software
  作者:Erich Gamma Richard Helm
  译者:李英军 马晓星 蔡敏 刘建中
  出版社:机械工业出版社
  经典书籍,开创了对于模式的研究,由它衍生的书籍有数十本。基本上,如果你采用面向对象技术就应该阅读此书。
  书不厚,但是因为内容相当抽象,读起来较为费劲,需要有一定的设计方面的积累和耐心。而且仅仅看懂书中所列出的23个模式并不是最终目的。正如书中前言中所说,希望读者看到一个模式时说“哦”而不是“啊哈”。模式真正的价值是提供各类设计问题的参考解决方案,并为设计思想交流提供统一的词汇,使设计者在更高的抽象层面进行思考。(正如我们现在只会说这里需要一个整数,而不会说需要多少字节的空间,并以何种编码方式填入值)
  建议常备一本,在设计中遇到类似问题或平时想到的时候随时翻阅,逐步加深了解。
  据说本书的翻译不够理想(不过我觉得好像因为本来就不好理解)。影印本由机械工业出版社出版。
 
《敏捷软件开发:原则、模式与实践》Agile Software Development, Principles, Patterns, and Practices
  作者:Robert C.Martin
  译者:邓辉
  出版社:清华大学出版社
  糅合了敏捷编程,面向对象技术,模式等方面的内容。包含大量的示例。不可多得的好书。正在阅读中。
  影印本由中国电力出版社出版。
 
《重构--改善既有代码的设计》Refactoring:Improving the Design of Existing Code
  作者:Martin Fowler
  译者:侯捷 熊节
  出版社:中国电力出版社
  重构方面的经典书籍。Kent Beck(极限编程创始人)的评价:“得到它,学习它,使用它”。
  影印本由中国电力出版社出版。
  本书的作者Martin Fowler是极限编程、模式、UML和RUP三方面的大牛人,写作风格非常易懂平实,他的其他书籍还有:
  UML distilled,中译:UML 精粹。 清华大学出版
  Analysis Patterns:Reusable Object Models, 分析模式——可复用对象模型。电力出版社出版了影印本
  Planning Extreme Programming 规划极限编程。人民邮电出版社出版
  Patterns of Enterprise Application Architecture 企业应用构架模式。国内未出版。
 
《极限编程实践》 Extreme Programming in practice
  作者:James Newkirk,Robert C. Martin
  译者:王钧
  出版社:人民邮电出版社
  给出了一个实际的极限编程开发网站的例子。你如果想要了解XP,看这本书可以较快的找到感觉。本身的作者之一Robert C. Martin就是《敏捷软件开发:原则、模式与实践》的作者。

《测试驱动开发》Test Driven Development:By Example
  Kent Beck关于测试驱动开发的专著,中文版即将出版
  读了以后才真正了解了TDD中“Driven”的意思,不仅仅是单元测试,也不仅仅是自动测试,甚至不仅仅是测试先行。而是将测试作为驱动软件开发的根本动力和衡量标准。感觉的确如评价中所说,TDD是少有的几种可以真正提高软件开发效率的方法。

观念:
《人月神话》The Mythical Man-Month: Essays on Software Engineering
  作者:Frederick P. *s,Jr
  译者:Adams Wang
  出版社:清华大学出版社
  怎么评价这本书呢?从它以后才有了软件工程这个学科。经典中的经典。尽管已经出版20多年,仍有许多值得借鉴的东西。书中很多内容已经成为了软件工程中近似定律的东西。
  据说这本书不只内容优秀,文笔也堪称一流。可惜译本无法完全传达原书的风采。
  影印本由中国电力出版社出版。
 
《人件》Peopleware : Productive Projects and Teams
  作者:Tom DeMarco,Timothy Lister
  译者:UMLChina翻译组
  出版社:清华大学出版社
  仅凭这个书名就值得购买它。因为他在我们关注于技术、流程、规范等等时把目光对准了了开发软件的人。本书讨论了如何使软件开发人员更有效的工作。内容相当尖锐和幽默,尽管是十几年前出版的,但看起来仍然觉得切中时弊,可见我们的行业是多么的顽固和不求改进。这本书可以说是最近几年兴起的敏捷编程的精神基础。
  本书的作者之一Tom Demarco还有一本书《最后期限》(The Deadline:a novel about project management,熊节翻译,清华大学出版社)。是一本讲述IT项目开发原理的小说。没错,是一本小说。读起来很有趣味性,而且也很能增加乐观主义精神。因为小说的结局不错。
 
《软件创新之路——冲破高技术营造的牢笼》The inmates are running the asylum 
  作者:Alan Cooper
  译者:刘瑞挺 刘强 程岩
  出版社:电子工业出版社
  一本好书被翻译了一个很烂的名称,外加一个很烂的封面。还好出版社不算太笨,在两年后再版了这本书,名字也改成了《软件开发的创新思维》,不过好像也没好多少。
  这本书的作者是VB的设计者(其实也可以认为是可视化开发的开创者了),这本书讲关于软件设计的内容。不是程序或者构架设计,也不是界面设计,而是一个软件如何设计。毫不夸张的说,这是一本可以改变一个开发者世界观的书。
  你有没有想过其实“程序员”和“普通人”根本就不是一种人呢,你有没有想到过在你开发的很多软件中你认为理所应当的东西,在一般人看来都是毫无价值或者十分古怪的么。
  书中的一个比喻:“一位朋友,领着一头用铁链锁着的大熊在市镇广场上,赚点小钱。居民聚在一起,观看这个令人惊奇的景观:一个庞大的、笨手笨脚的移动的野兽,在混乱的抓着。熊的确是糟糕的舞蹈家。令人惊奇的并不在于熊跳的好坏,而在于熊在跳舞。”想一想,我们手中制作的软件,是不是又是一只会跳舞的熊呢?
  本书翻译的相当糟糕,译者基本上不懂任何计算机技术。还好不是一本技术方面的书,只是有些地方看起来比较别扭。

《解析极限编程—拥抱变化》Extreme Programming Explained:Embrace Change
  作者:Kent Beck
  译者:唐东铭
  出版社:人民邮电出版社
  极限编程(XP)的开山之作,作者Kent Beck是一个颇有革命家气质的开发者,极限编程的发起者。这本书清楚的阐明极限编程的核心思想、价值观和关键实践。想要了解和应用XP都应该阅读这本书。不过这本书是如此的提纲挈领和如此的薄,所以你可以从其中了解到XP是什么,XP要作什么,但却不会知道如何去做,如果需要应用,还需要阅读相关的其他书籍。
  书后附录的参考书目很值得一看,可以说是包罗万象。
  影印本由中国电力出版社出版。
 
其他:
《快速软件开发---有效控制与完成进度计划》Rapid Development
  作者:Steve McConnell
  译者:席相霖
  出版社:电子工业出版社
  有一句谚语:“如果你手中只有锤子,那么一切在你眼中都是钉子”。这本书提供了软件开发各个方面问题的可选解决方案、最佳实践和典型错误,可以在实际的项目开发中参考使用。本书的名称相当有趣,因为当你读完这本书后会发现,作者的意思是,如果你可以合理的安排开发实践,不要受那些典型错误的诱惑去走“捷径”,在计划内完成软件就已经是很快的速度了。因此其实没有什么快速软件开发。
  McConnel是微软的牛人,曾经出版:
  Software Project Survival Guide,软件项目生存指南,微软的三本小书里的一本。影印本由清华大学出版社出版
  Code Complete: A Practical Handbook of Software Construction,代码大全,软件创建的经典书籍,93年由学苑出版社出版,竟然没有再版。后由网友DogBear发起整理成为电子书籍可以下载。
 
《软件需求》software requirements 
  作者:Karl E·Wiegers
  译者:陆丽娜 王忠民 王志敏
  出版社:机械工业出版社
  软件需求收集和分析方面的基础书籍。
  有电子版样章可以下载。
 
还有一些在计划中但还没有读的书,只能列出来作为参考了:
《编写有效用例》Writing Effective Use Cases
  Alistair Cockburn凭借这本书成为用例使用的一大流派的掌门人。面向对象需求分析的好书。
《Inside VCL》
  李维即将出版的新书。虽然说现在出版已嫌稍晚,Win32程序设计的黄金时期已经过去,VCL框架也即将让位给新的框架结构。这本书恐怕不会成为象Program Windows那样时常用来查看的宝典。但是应该仍不失为学习面向对象和框架设计,更进一步了解Delphi的好书。
  此外就是Martin Flower的两本Analysis Patterns和Patterns of Enterprise Application Architecture,都只有英文版本(其中PEAA还只有电子版),看起来过于痛苦,不理解为什么没人作作好事呢。
  不过话说回来,据说Analysis Patterns比设计模式更难以理解,如果随便找个人翻译,只怕翻译出来还没有原版容易懂吧。(现在已经找到了中文版而且看了一半,不过翻译的还是不尽如人意。打算有空了中英文对照着看。不过现在看到的已经觉得获益良多)