大道至易:实践者的思想图书
人气:7

大道至易:实践者的思想

大道至易——实践者的思想》可以看成是《大道至简》的姊妹篇,是以软件工程为体系、以组织结构为视角,融合系统架构师、项目管理者和软件开发人员三种角色实践的思想总成。本书讨论这些思想,并陈述它们所基于的原...
  • 所属分类:图书 >计算机/网络>项目管理 IT人文  
  • 作者:[周爱民] 著
  • 产品参数:
  • 丛书名:图灵原创
  • 国际刊号:9787115282170
  • 出版社:人民邮电出版社
  • 出版时间:2012-06
  • 印刷时间:2012-06-01
  • 版次:1
  • 开本:16开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装
  • 套装:

内容简介

大道至易——实践者的思想》可以看成是《大道至简》的姊妹篇,是以软件工程为体系、以组织结构为视角,融合系统架构师、项目管理者和软件开发人员三种角色实践的思想总成。本书讨论这些思想,并陈述它们所基于的原则、背景与获得过程。 《大道至易——实践者的思想》适合各类工程管理人员、软件开发人员和架构师阅读。

编辑推荐

作者畅销著作《大道至简》姊妹篇

以软件工程为体系、以组织结构为视角

内容视角独特、语言轻松易懂

面向多类读者、探讨实践者的思想

作者简介

周爱民(Aimingoo),国内软件开发界博学软件工程师,架构师。有十余年的软件开发、项目管理、团队建设的经验,曾任盛大网络平台架构师、支付宝业务架构师等职。著有《Delphi源代码分析》、《大道至简》和《JavaScript语言精髓与编程实践》等专著。

目录

目 录

总论 领域角色的关注 1

及时节 什么是领域角色的关注 2

第二节 基于组织视角的观察 11

第三节 工程的本质问题是组织 25

及时篇 具体工程下的组织与行为

引言 管理中的逻辑 33

及时章 任人治事:组织行为的基本认知 35

及时节 刺秦与灭秦 36

第二节 看到别人能做什么 43

第三节 要做事,不要管理 51

第四节 伯夷与叔齐是怎么死的 59

第二章 谋定后动:项目的存在权 67

及时节 试错通常是无能的托辞 68

第二节 合法的山大王为什么没能成功 78

第三节 自己想办法 86

第三章 具体而微:工程是系统而不是事 93

及时节 做事的选择 94

第二节 你要什么 102

附录一 行在道上,从局部到全局 109

附录二 本来面目——大教堂、集市,与作坊 111

附录三 杀不死的人狼——我读《人月神话》 113

第二篇 程序源流:从计算到系统(上

引言 简单的本源 117

第四章 计算系统 119

及时节 数,以及对数据的性质的思考 120

第二节 逻辑 126

第三节 抽象 129

第五章 语言及其面临的系统 133

及时节 语言 134

第二节 从功能到系统 141

第六章 程序设计的核心思想 151

及时节 数据结构:顺序存储 153

第二节 数据结构:散列存储 160

第三节 执行体及其执行过程中的环境 167

第四节 语法树及其执行过程 174

第五节 对象系统:表达、使用与模式 181

第三篇 程序源流:从计算到系统(下

第七章 应用开发基础 199

及时节 应用开发的背景与成因 200

第二节 应用开发技术 207

第三节 开发视角下的工程问题 216

第四节 应用程序设计语言的复杂性 223

第八章 系统的基础部件 231

及时节 分布 232

第二节 依赖 241

第三节 消息 245

第四节 系统 250

第九章 系统的基本组织方法与原理 253

及时节 行为的组织及其抽象 254

第二节 领域间的组织 257

附录一 "主要编程范式"及其语言特性关系 273

附录二 继承与混合,略谈系统的构建方式 275

附录三 像大师们一样思考——从"UML何时死掉"谈起 277

附录四 VCL已死,RAD已死 279

第四篇 架构的思想与指导原则

引言 架构师的思维 285

第十章 你所关注的系统 287

及时节 了解系统的过程 288

第二节 知识的构建 295

第三节 最初的事实 307

第十一章 架构是过程,而非结果 315

及时节 架构师的能力结构 316

第二节 系统架构与决策 324

第三节 架构的表达与逻辑 338

第十二章 架构原则,技艺、艺术与美 355

及时节 架构原则 356

第二节 技艺、艺术与美 368

附录一 做人、做事,做架构师——架构师能力模型解析 373

附录二 专访:谈企业软件架构设计(节选) 375

参考资料 377

图表索引 382

在线预览

与架构师同行(序)

我认识周爱民多年,本书是他的第五部作品,也是"周爱民风格"最浓烈的一部。作者把"冥想"式的写作发挥到了新的高度,任何一个小小的、普通人熟视无睹的问题、现象、矛盾,都能引起作者滔滔江水连绵不绝的思考,追根溯源的论辩和富有禅机的跳跃的联想。这是周爱民思维的特点所在,他能够长时间连续不断地思考一个问题,越挖越深,既不知疲倦,也不向现实妥协。这是一种独特的思维品质,是如我一样普通人所难以企及的,也是这个时代所稀缺的。这种独特的思维品质,既是这本书价值的源泉,也成为对读者,以及我这个受托作序的非技术人来说较大的挑战。所以在这篇序言里,我不敢说能把握这本书的思想实质,但会坦率地谈谈我对书中所涉及的一些问题的个人看法。

首先是关于这本书的主题和内容。这本书当然是在谈软件开发的问题,但涉及的方面又不仅仅是开发,甚至可以说,作者主要不是在谈开发,而是在谈组织。而且他不是在谈某一种具体的组织,不是代码的组织、构件的组织、架构的组织,甚至也不是工程的组织和人的组织,他是在整体上来思考"组织"这件事情的一般原则,然后用其所思所得来"格"代码、"格"架构、"格"工程、"格"人的组织。从书中,读者可以跟着他的思路去体会他是如何"格物致知",然后又反过来"致知格物"。

为什么要把组织问题放在中心位置去探讨?因为良好的组织是解决软件规模问题的希望。而随着软件行业的逐渐成熟,组织和架构已经取代编码而成为软件开发的核心问题。

十几年来软件开发行业发生了一个重大的变化,那就是软件开发已经渐渐演变成了一个以配置为主、编程为辅的过程。这个观点最早是20世纪90年代中期由著名的C++网络编程框架ACE的创造者Doug Schmidt教授提出来的。当时一系列重要的基础性的标准,如C语言、TCP/IP协议、POSIX标准已经奠定,Schmidt教授意识到,一旦一小部分人开发出足够多的、高质量的、可配置的核心软件,其他人就没有必要重复发明轮子,而是可以站在他们的肩膀上,通过配置和扩展来完成任务。尽管配置的过程本身还是通过编码的方式来完成的,但本质上这些代码只是在定制核心软件的运作方式,它们的技术难度比编写高质量核心软件至少要低一个数量级。

这个观点被历史证明是非常具有远见的,特别是随着Java等跨平台语言的风行、开源运动的兴起和Web的成功,绝大多数不同种类的应用都在共享相同的基本特征,这样也就出现了一大批门类齐全、质量过硬的核心知识资产,它们以基础软件、中间件、框架、程序库和开源代码的方式存在,可以被以各种方式复用。在这些资产之上,程序员社群形成了有效的、开放的知识分享机制,从而使得一般性的软件开发变得相对容易,而将软件开发这件事情的挑战上移到架构层面,或者更具体地说,如何有效地分配职责、组织资源、建立资源节点之间的关系和契约,已经成为大规模软件开发的根本问题。

这就是本书的发力点。作者正是站在架构师的高度上来看待软件开发,甚至更大的意义上,看待以软件开发能力为核心的企业在产品战略、人力配置和文化方面的组织问题。作者在过去几年里,先后在两家超大规模互联网企业中做架构师,他在其中的矛盾、迷惘、挣扎和成就是这本书的思想源泉,而他对于架构师角色的实践和领悟,也是这本书的价值所在。作者认为,软件开发发展到今天这个阶段,架构问题是真正的方向性问题,架构之争是真正的路线斗争,架构错误是致命的、不可挽回的错误。只要架构适用,其他的错误都是局部性的、可以控制的。一旦架构发生方向性错误,无论是人的架构,还是软件的架构,其代价可能就是一个项目甚至一个企业组织的生命。因此,这本书通篇都在讲架构问题,讲组织问题,讲规模问题。读这本书的时候,如果能够始终记住这一点,那么理解起来会容易一些。

看上去这本书的四个篇章,彼此相对独立,谁也不挨着谁。但实际上,贯穿全书的主轴,就是从宏观的组织关系上和微观的角色职责上,在不同的领域里反复谈组织架构问题。在这个过程中,作者也提出了一些鲜明而有趣的想法,比如让架构师成为开发团队中的核心角色,甚至把人员和项目管理这样传统强势的角色也仅仅视为架构师的支撑角色。作者的核心观点,说到底很朴素,无论是在人员组织还是技术架构上,作者提倡各就各位、各司其责、不增不减、不垢不净的风格,尽量简化由于异动而导致的非本质复杂度。这些观点,至少成一家之言,值得思考。

当然,用这种"中心思想"、"段落大意"式的语文课方式来归纳这本书,是非常不合适的,因为这本书的写作风格确实是非常独特。以周爱民的水平和资历,他大可以像很多流行书作者一样,居高临下,弄出几条十几条原则,以一种非常具有"架构感"的组织方式来组织这本书的内容本身。但是如果架构问题能够以这种方式讲清楚的话,那它早就不是问题了。如作者所说,架构本身是"以序容易",是为了约束系统自由度,从而使架构之外的决策空间更小、更容易,那么架构本身的设计,则成为重点和难点。如何成为好的架构师,如何教授和交流架构设计的经验和思想,迄今仍然不能说找到了办法。作者采取的方式,就是老老实实把自己的思维过程和喃喃自语都很原生态地记录下来,从而形成一本"心语"之作。因此,如果读者也能够"心心相印",潜下心来仔细品读这本书,那么就相当于跟作者一起进行了一段旅行对话,或者,一起在思维的教武场里杀个几进几出。或许这种如切如磋、如琢如磨、反复捶打、反复锻造的风格,倒确实能够帮助有心的读者获得一些架构设计的经验。

因此,无论从内容上,还是从行文风格上,这本书都是非常独特的,也有其独特的价值。作者的作品,一向是长销之作,其价值也往往需要一段时间才能被真正认识,我不敢说自己能够在短暂的阅读当中充分理解这本书,但是我相信其中所蕴藏的价值和诚意。

当然,无论对于书的观点、内容还是展现形式,我也有自己的看法,其中也有不同意见。

比如在行文上,我认为作者对于读者设置了比较高的理解门槛,要求读者必须跟着他的文字和思绪流动。如果读者以当下流行的速读式阅读、跳跃式阅读甚至微博式阅读的方式来读这本书,我敢说不但不可能把握其中的精华,甚至连一些基本概念可能都会搞错。

再比如在内容的铺述方面,上至人员组织架构,下至程序设计语言中一些架构性的设计,在一本300多页的书里跨越如此巨大的领域,我相信是前无古人。尽管作者确实始终以一主线贯穿,但是能够洞解其中滋味的读者,恐怕也是少之又少。好在读一本书,也并不是要求全部理解,懂一点,学一点,常读常新,也是一种不错的体验。

至于作者的思想,我能够置喙之处不多。勉强要说一点,可能就是一个搭配问题。从组织、人员、文化到技术、编码,既然每个层面上都有自己的架构问题,都有若干不同的架构选择,那么可能不同层次之间架构选择的搭配问题,或许也应该是这本书应该触及的。一个团队的人员组织架构,必须与其行业领域和产品项目类型彼此搭配,也必须与其选择的技术框架和架构彼此搭配,也必须与其软件过程的管理方法彼此搭配。抽象地在每一个层面上去谈什么是好、什么是坏,是没有意义的。CMMI的模型是个好的过程架构,但是谷歌和Facebook决不会采纳,因为这个架构与其他领域的既定架构不兼容。什么样的组织架构与什么样的技术架构搭配是合适的,这本身是一个非常有趣和有意义的问题,可惜这本书落墨不多,不得不说是一个可以改进的地方。

总的来说,这是一本需要认真读的书,也是一本值得认真读的书。它的价值需要读者与作者在思维互动中逐渐体现。如果你是这样的读者,我会愿意向你推荐这本书。而如果你并不喜欢深彻的冥想式的阅读和思考,那么你很难从这本书中获得太多。

孟岩

……

网友评论(不代表本站观点)

来自fengshu**的评论:

顶,周老师

2012-07-05 13:32:10
来自张佗**的评论:

全而不精

2012-07-31 09:35:06
来自yixihtt**的评论:

还没看,不过周大侠的书肯定错不了

2012-08-25 12:18:38
来自比较三3**的评论:

挺好。

2012-11-01 09:50:29
来自cityyan**的评论:

书很棒很好,纸的质量也很好。印刷也不错。值得收藏

2013-05-18 14:59:46
来自listens**的评论:

周老师的书好好看一下

2013-07-01 14:56:09
来自无昵称**的评论:

感觉像旧书,书的封面脏脏的

2013-08-13 13:55:56
来自hhnick**的评论:

这个商品不错~

2013-11-09 13:22:08
来自无昵称**的评论:

这个商品不错~

2013-11-21 12:28:04
来自小水车**的评论:

这个商品不错~

2013-11-26 14:03:16
来自煨斯鲤**的评论:

这个商品还可以

2014-10-15 11:48:30
来自无昵称**的评论:

这个商品不错~

2014-10-25 15:56:13
来自alannaj**的评论:

很好

2014-11-14 11:32:35
来自无昵称**的评论:

正在看,感觉还不错,正准备买大道系列的另一本书

2013-08-19 10:46:48
来自狂妄无**的评论:

这本书由周爱民老师所写,把握住了实践者最想知道以及最应该注意的一些方面。非常具有启发!

2012-11-11 13:34:18
来自yanfeli**的评论:

整本书虽然页码不是很多,但内容的广度却极大,每个部分的深入程度也让人感叹。当然完全或更多的领会作者的思想是需要多次阅读、并深入思考的,总之这本书让人赞叹!

2012-07-10 05:37:25
登录后即可发表评论

免责声明

更多相关图书
在线咨询