架构师书单(转)
为了2007年的目标,列了下面待读或重读的书单。不在书单里的,小部分是我漏掉的,大部分是我觉得对于架构师不太重要,或者不够好的。
奇怪国外真正的好书来来去去也就那么几本,emule加上国内出版社的努力,我们看的东西和老外已差不多,为什么老外看完就那么生猛,我们看完就还是半桶水呢。
一、Software Architecture篇
这个领域没有什么"畅销书",可能读者中本来就是开发设计人员与项目经理占了多数,真正定位为架构师而且做的也是架构师工作的不多吧。
1.《Software Architect Bootcamp--软件架构师教程》
架构师新手训练营,可惜常以Corba做例子。第2版国内还没有翻译,只好看完中文的第一版再去看电子版了。
2. 《Large-Scale Software Architecture-A Practical Guide using UML--大型软件体系结构:使用UML实践指南》
如果看不惯上一本,可以改以这本作为入行指南。
3. 《The Art of Software Architecture: Design Methods and Techniques--软件体系结构的艺术》
薄薄的一本,架构理论的抽象与提升。
4.《Documenting Software Architectures: Views and Beyond--软件构架编档》
第13届JOLT大奖作品,市面上介绍UML描述架构的书很多,但捕获架构的过程,为什么这样捕获的书籍就少了,所以它拿JOLT。
二、架构模式篇
GOF23属于开发人员的Pattern,架构师同样也有架构师的Pattern。
1. 《Head First Design Patterns》
最好的GOF23经典设计模式讲解。
。
2. 《Patterns of Enterprise Application Architecture--企业应用架构模式》
Martin Fowler经典。
3. 《Analysis Patterns: Reusable Object Models --分析模式》
Martin Fowler作品,但需要刚好有那个经验的人才看得进去。
4. 《Domain-Specific Application Frameworks: Frameworks Experience by Industry--特定领域应用框架:行业的框架体验》
介绍了特定领域特定框架的设计,我自己最喜欢看人家的设计与思考。
三、特定领域模式篇
1. Java EE领域
《Effective Enterprise Java--中文版》
Neward, Ted作品。
《Expert One-on-One J2EE Design and Development--J2EE设计开发编程指南》
Rod Johnson作品,依然使用J2EE的倒霉架构师需读。
2. SOA/ESB领域
《Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions--企业集成模式:设计、构建及部署消息传递解决方案》
3. 网络与后台服务编程领域
《Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, Volume 2--面向模式的软件体系结构 卷2:用于并发和网络化对象的模式》
《Pattern-Oriented Software Architecture: Patterns for Resource Management, Volume 3--面向模式的软件体系结构卷3:资源管理模式》
四、RUP/UML 篇
除了RUP、UML、4+1视图,架构师们还可以遵循很多的设计方式,但UML仍然是架构师们的通用语言,RUP还是架构师职责最清晰的任务执行流程。
1. RUP最好的书其实是那份《RUP-软件开发团队的最佳实践》加上 RUP2003.6.15 中文版自带的架构师视角的文档,还有空可以看看《The Rational Unified Process:An.Introduction.第3版》
2. UML随便看一份电子书也能入门了,语法方面不需要专门买书。但教人如何画好UML的《The Elements of UML Style--UML风格》就很必要,可惜国内没有翻译第2版。
五、闲书篇
1.《Code Complete 2--代码大全2》
一本你教育小弟时的代言人。
2.《The Pragmatic Programmer--程序员修炼之道:从小工到专家》
一本你启发小弟的代言人。
3.《The Art of Unix Programming --UNIX编程艺术》
六、高效读书心得
刚好Head First系列开头都有一段教人如何读书的话,结合自己的经验整理如下:
1.尽量阅读中文版
虽然有人英文很强,有的翻译很差,但AnyWay 中文阅读与理解的时间,略读与快速定位感兴趣内容的速度还是要快一些。
2.即时批注、总结笔记与交流
虽然爱书,但发现最有效的读书方式还是不断的制造脂批本,读书时在重要的文字下划线,把自己的心得写在页旁。
读完后,把上面的划线与批注,用自己的语言重新整理表述。有人喜欢用MindManager,我还是习惯纯文本123。
最好在明天复习一次,或者拿来与人讨论。
3.大量思考或重复记忆
看书最郁闷的事情就是看完之后脑袋空空了。偏重技术的书还好点,虽然看的时候可能很辛苦,但就像学会了骑单车之后,再骑的时候总是会的;而偏重设计与管理的书,最容易的事情就是看的时候很快,看完没什么留下到项目实践中。
所以,我们不能以看小说的速度来看设计书,要寻找思考的机会,思考是最好的记忆。
如果实在没有思考的topic,就只有大量的重复记忆,重复多遍直到无意识的记忆。
4.人体工学
那些见缝插针的时间与地点不是看这个书单的好地方。
环境不要有电视,音乐等强输入源,而微风阳光鸟语等弱输入源则有助活跃大脑。
看书时大量的喝水。
如果发现自己的大脑已经疲累,已经在浮光掠影的翻看,就要休息。
留给大脑消化的时间,看完书不要接着看其他有难度的书或事情。