background image

棋谱但从没有实战过的人声称自己是布局高手,你会信吗?

在非技术方面,沟通能力特别重要,你要将你的设计思想传达给开发团队,这件事情已经
很不容易了,更困难的是,你还要传达给技术支持人员,甚至一些非技术人员。有的时候,
你还必须妥协,采用一些其他成员支持的、也许不是最好的解决方案,以保持团队的士气。
       总之,

管理、沟通、经验、分析问题和解决问题的能力是一个软件架构师必备的素质

。对

于一些所有工程师都应该具有的素质,比如,工作热情、责任心、迎接挑战的勇气等,就不
用多说了。

许式伟

(金山软件 WPS 产品架构师):

从性格角度来讲,软件构架师需要心思细腻而严谨;

从职业特征来看,软件构架师要充分

理解和尊重软件产品的需求

由需求引导设计而不是相反

。因此,需要特别强调产品需求的

重要性。记得

GOF 有这样一句话:

“设计应该支持变化--获得最大限度复用的关键在于对

新需求和已有需求发生变化时的预见性,要求你的系统设计要能够相应地改进

”。每个程序

员都希望能够写出最好的程序,并使自己的程序更能适应变化。但事实表明,程序能力尤其
是框架设计能力并不是天生的,而是取决于程序构架师对需求的理解程度。如果在不了解系
统需求的前提下,就开始进行设计,那么即使是天才,也不能设计出完美的框架。
从另外一方面讲,软件构架师的设计只能应付可预测的变化,而构架师本身的技术积累和
对需求的理解程度,往往会决定所设计的框架对需求变化的应变能力。大多数的设计人员都
趋向于追求完美,大多对

“开闭法则” 

OCP:Open Close Principle,注:Software Entities 

should be open for extension,yet close for modificaiton.:程序应该可扩展但又不可修改)非常
认同。而这是一个理想状态,但又不可太过,一味地让系统应付位置的变化,会让自己套上
一个无形的枷锁,更为正确的做法是:让自己知道的尽可能多,当设计新版本

WPS Office 

V6 的整体框架时,通常会参考 Microsoft Office 和旧版本的 WPS Offfice,有时甚至会看
PDF 对同一功能的支持情况,对同类产品的研究和比较,有助于很好地设计新产品的程序
框架。
       此外,作为软件构架师,一定要善于听取和接纳不同的意见,能够包容新的思想,愿
意了解最新的技术和想法。优秀的软件工程师,他应该具有创新的理念和兼容并包的胸怀,
比如:

C#、AOP 等。尽管我最喜欢 C++的自由,但并不排斥去了解 Java、C#等语言对其的改

进,很多新的事物,会让我获得共鸣与灵感。
正如上面所讲,软件工程师需要更强的技术积累和更缜密的思维,以及对需求的深刻理解、
兼容并包的创新意识和胸怀,软件构架师的职责顾名思义,从事的主要工作职责就是设计
软件产品的程序构架,也就是要,对他最终设计的结果--软件产品的程序框架负责。可操
作性和系统的应变能力是软件构架师的主要职责和工作重点。
       我虽不是计算机专业,却是一位计算机狂热爱好者,对 C 语言有着深刻的领悟,被同
学们戏称

“C 狂”,曾独立开发、与同学合作开发软件。我对于感兴趣的东西,总是去探索它

内在的实质性内容。从小就酷爱数学的我,在推理的严谨上对自己要求非常高。我相信一个
观念:严谨绝对不是创造的对立面,而是创造性思维的必备条件。

王栋

(盛世龙吟数字科技):

软件架构师是团队中的一员,和其他项目成员没有什么区别,只不过承担的职责要大些,