不 久前,我参加了一次企业开发年会。在年会的五个分会场中,架构师与团队管理分会场人头攒动,场面格外壮观。这给我一种错觉,大有“架构师多如狗,项目经理 满街走”的态势。然而,当我在演讲到架构与通用设计原则时,分明看到下面听众茫然的眼光。我心底一惊,有种不妙的感觉浮上心头。为了印证这是否错觉,我随 意询问了听众几个问题。听众的回答让我的心拔凉拔凉的。原来,距离架构师的百花齐放,我们还有很长的路要走。
对于这个行业,我们最大的问题并非不知其不足而盲目地自大,而是我们的软件从业人员内心已经浮躁了,这其中自然也包括我。每个纯粹走技术道路的开发 人员都向往着架构师的头衔,却忽略了若要成为一名合格的架构师,需要经历的沉淀与历练。拿破仑的一句名言“不想当元帅的士兵不是好士兵”,激励着我们向着 远大目标迈进。可是不要忘了,我们中国还有一句古话:“一屋不扫,何以扫天下?”
在前段时间,我应西南大学之邀,为计算机学院的学生们开展了一次讲座。讲座的题目为“软件从业人员的五项能力修炼”。我偷窃了Peter M. Senge所谓“第五项修炼”的概念,不过内容上却是大相径庭。据我过往的经验,我认为软件从业人员必须具备如下五项能力:
• 实现域的逻辑思维能力
• 问题域的分析与抽象能力
• 业务域的建模与设计能力
• 未知域的学习研究能力
• 组织域的交流协作能力
这或许是我的一孔之见,却也是我沉思所得。这里所指的“软件从业人员”其实是片面的,我心底里的思想还是在向架构师靠拢,而且是面向技术设计的架构师。这 五项能力正是架构师所必备。如果没有好的逻辑思维能力,就无法提供好的算法与实现,不能写出优美的代码;不具备分析与抽象能力,就很难解决纷繁复杂的需求 问题,无法建立一个可以经得起考验的架构蓝图;架构师需要建模,无论是数据模型还是领域模型,无论是计划式设计还是演进式设计,模型都可以帮助架构师理解 需求,进而帮助开发人员理解设计。
人类社会的发展总是充满未知,科学如璀璨的星空指引我们探秘与求索。软件开发同样是一门科学,它的善变是永恒的。站在高端的架构师,如果不具备良好 的学习研究能力,因循守旧,故步自封,最后就会湮没在变化的浪涛中。软件开发需要团队,脱离交流与协作的架构师,就如匹马单枪的堂吉诃德挑战风车,结果是 头破血流,败得一塌糊涂。交流的重要性不言而喻,一个再好的设计,如果没有合适的方式表现出来,并能够被人理解,它就是无用的。
架构师的成长漫长而充满艰辛。是否能够成功,除了需要远大的目标,还需要脚踏实地。最近,我阅读了两本好书。一本是Kent Beck所著的《实现模式》,另一本是Robert C. Martin的《代码整洁之道》。他们是举世公认的设计大师,但在这两本书里,他们谈的不是架构,而是代码,是实现。荀子曰:“不积跬步,无以至千里;不 积小流,无以成江海!”架构师站得高,所以望得远,但如果根基不稳,就极容易跌下来,摔得屁滚尿流。
窃以为, 不浮躁而保持虚心,不畏难而坚定执著,不偏狭而开放进取,此乃架构师成功之道。
附:本文为InfoQ《架构师》五月刊篇首语。
- 添加新评论
- 阅读次数:
罗素说:“参差多态是幸福的本源”。我们的生活若能丰富多彩,每天都是新鲜的,就会觉得生活有滋有味,生命是有价值的,而我们的存在则是幸福而有意义的。如果每天的生活都是在重复,人就容易过得浑浑噩噩,茫然不知生活的乐趣,最后得过且过,浪费了自己的生命。我常常觉得,作为一名软件开发人员,或许是幸福的,因为在这个行业中,每天都有新鲜的技术与技能产生,每天都有许多未知的东西等待我们去探索,去学习,去分析。但这种幸福也许从本质上讲,是“痛并快乐着”。新鲜的技术让我们兴趣盎然,但这种快如流星的技术更新速度,又有些让我们应接不暇。
- 添加新评论
- 阅读次数:






张逸(Bruce Zhang)
