BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

WPS技术总监杨钢谈WPS和技术团队

| 作者 晁晓娟 关注 1 他的粉丝 发布于 2010年12月1日. 估计阅读时间: 16 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

杨钢是金山WPS的技术总监,一直带领技术团队从事大型软件的架构设计。InfoQ编辑在QCon全球企业开发大会(北京站)期间,就大型复杂软件的架构开发以及大型技术团队搭建和管理以及WPS的发展等方面采访了杨钢。

InfoQ:大家好,我是InfoQ中文站的编辑,今天来到我们采访室的是金山WPS的技术总监杨钢先生,杨钢先生刚才跟大家分享了非常精彩的演讲,现在首先让他做一个自我介绍吧。 

杨钢:我是WPS的技术总监杨钢,我2001年加入WPS,一直在WPS从事技术框架方面工作,我的主要工作方向是大型软件的架构设计相关的问题和大型软件的复杂度问题,我希望把大型软件开发的过程变成一个有理论支撑的可以重复的一个实践活动。

InfoQ: 如您所说WPS是一个非常复杂的大型软件,同时它用到了很多种语言,可不可以跟我们分享一下WPS在这种混合架构中遇到过的一些典型的问题,以及咱们是怎么解决的? 

杨钢:这一点的话要分两部分来谈,首先是客户端的WPS OFFICE,我们当时为了加快界面的开发速度,除了底层是全部 C++,因为可以获得更大的控制能力和更大的优化的可能性,在界面我们使用了Delphi,因为Delphi是当时比较流行的构建界面的IDE。在前期,我们很快就构建出来一个OFFICE的界面框架,但是随着这么多年WPS的不断开发和维护,我们也开始对当初的这个决定进行一些反思,因为在这种紧耦合项目中间,界面和内核之间的耦合度非常高,交互很频繁,数据结构也非常的复杂,在这种紧耦合的交互过程中,使用两种语言,遇到了很多的问题。首先是错误调试的问题,因为很多关于界面的地方,都需要在C++和Delphi两边来回调试,目前没有一个很好的调试工具来做这种混合调试,我们也做过一些辅助开发工具,但是毕竟我们不是做开发工具的厂商,在这方面事实上能做的比较有限;第二个关于程序员能力的培养,因为C++是一个非常复杂的语言,要熟练、精通C++的话,可能需要很多年的时间不断的积累。Delphi它也是不吃素的一门语言,这两个合起来,无疑给我们整个开发团队的学习负担增加了不少,这是对于客户端的WPS来说。对于WPS on WEB,这个WEB OFFICE项目,情况又发生了变化,我们在这个阶段把整个体系,铁板一块的客户端进行了重新的分解,我们从里面找出来紧耦合和松耦合的边界,对于紧耦合的边界,我们仍然还是比较主张使用一门语言。但是对于松耦合的边界,比如说WPS的内核模块和WPS的外围模块,甚至包括WPS的界面模块和WPS的内核模块之间,因为要做服务商和客户端这种分解之后,它不得不变成松耦合。那么这种情况下用混合语言,其实也是可行的,而且对于松耦合的边界来说,对于不同的部件使用最适合的语言是一个更好的方案。

InfoQ:您刚才提到了程序员能力培养和开发的要求,请问WPS团队使用的开发方式是敏捷还是传统的? 

杨钢:这个东西可能不太适合一概而论,说实话我们从开发效率上来说的话,应该是属于传统中的敏捷,首先我们会有一个设计过程,我们有架构师,会把软件的细节定义的相对来说较为清楚之后,就进行软件的开发,这种相对于敏捷来说,它是偏向于传统的。但是对于传统的开发模式,特别是像日本软件企业,每一个函数的输入、输出都定义的,文档化很好的这种开发模式来说,WPS又是一个相对非常敏捷的一个项目。在我这边管理的几个项目里面,我对他们的要求是只要有类图基本上就可以开始开发,那么对于我和一些项目的架构师来说,只要给我一张类图,基本上你的思路我都已经清楚了,除非你设计的是一团糨糊。

InfoQ: 您刚才说道WPS团队的人数目前已经有200多人,那WPS团队怎么样逐步成长到两百多人,在这之间有没有遇到过团队成长性的一些问题? 

杨钢:其实在这一点上,我们做的有一点迫不得已,因为WPS经过了几起几落,落的时候人就很少,起的时候人很多。在起的阶段,会遇到一个很大的问题,就是大量新人的涌入。为了处理这个问题,我们采取了各种方式,首先是在金山集团下面会有一个集团训练营,这个训练营是独立于WPS之外的,它是为全公司服务的。他们会对新员工做最基本的培训,这个训练营的两位掌门人,事实上都是以前WPS的元老级程序员,董博、沈家政,都是第二代WPS程序员,所以他们为WPS培养人的时候更得心应手,他们在这个地方起到了非常大的功劳。然后WPS团队里,主要就是采取这种师傅带徒弟的方式,新人在经过了训练营之后,可能就直接参与项目,在项目中演练。我们其实给新人很多犯错的机会,我们在更大的尺度上去控制他就是不会造成乱子,但是在更细的尺度上,他可以不断的去试错。在这种可以让他充分去主动体会的基础上,新人的成长一般都比较快,实际上这也是很迫不得已的,我们挺希望人员很稳定的。

InfoQ:想问一下WPS除了技术团队,还有其他的比如需求、产品设计的,或者是测试等相关的团队,咱们的技术团队跟这些其他团队,是怎么样一种合作模式呢? 

杨钢:其实刚才给你提到的200多人是指的整个金山WPS研发部的人,包括了开发、测试和产品,目前WPS还是开发的人最多,但是测试和产品也是一个不断壮大的群体。因为在WPS里面,大家是为着一个大项目在活动,彼此间的界限很模糊。这种交互都比较顺畅,没有太多的流程,基本上都是在项目组里面互相讨论。 

InfoQ:咱们推出WPS on Web是基于什么样的考虑呢?

首先WPS on Web还在开发中,因为我们的目标是除了会提供文档的那种存储、管理协作这样的功能之外,希望我们的WEB OFFICE能够给用户一个和客户端OFFICE一样的体验,可能在大家的心目中觉得WEB OFFICE就是一个补充品,有时候临时性的用WEB OFFICE应应急,但是我们觉得其实那主要是因为WEB OFFICE还不够成熟,但是随着WEB OFFICE不断的成熟,它实质上有可能会变成另外一个选择,而不是说只是一个躲在后面的一个阴影。

那么WPS做WEB OFFICE,说到坦诚一点,大趋势,别人都做,咱不能落后。但因为随着互联网技术的不断发展,特别是RIA技术这段时间的不断成熟,使的互联网WEB应用技术,已经足以支撑像OFFICE这样复杂的应用,在这段时间有一个很大的趋势,就是各种各样的应用都逐渐的从客户端向WEB形态开始迁移,也包括企业里面使用的一些系统,像财务,像ERP之类的,现在也越来越多的向Web方向迁移。Web应用有一些比较好的特点,第一个是它的易传播性;第二个是对于企业来说,那个零部署成本。这些优点使的Web应该会成为下一代应用程序承载的主流平台。

InfoQ:这个是不是跟咱们的WPS客户端形成一定的竞争呢? 

杨钢:我们内部也有很多这样的争论,我们对用户提供的价值,不仅仅是在用户文档的创作和编辑这个过程,当然这个是以前的WPS带来的。但是随着我们将更多的互联网服务元素加入整个WPS大家庭里面去,我们可能会涉及到文档创作之外的关于文档其他的流程,比如现在已经做到了的文档的存储、备份、管理、归档、分享。在整个活动中,编辑虽然是其中不可缺少的一环,但是它只是整个活动的一个部分,其实WPS、WEB OFFICE都是整个WPS办公服务的一个部分,是参与到整个办公服务中,都是不可缺少一环,并不是说谁要去替代谁。 

InfoQ:开发WEB程序都会考虑到浏览器兼容性的问题,现在WPS的 WEB OFFICE对浏览器的兼性支持的如何? 

杨钢:其实浏览器兼容对于WEB OFFICE开发是一个必须要考虑的因素,这个也直接会影响到我们对RIA技术的选型,在刚才讲的时候,其实就有朋友关注,为什么WPS不用Ajax,而是用FLASH,其中我提到了两个原因,第一个原因是因为Ajax线上开发工具还不太成熟,对于一个超大型项目来说,可能是支撑不住,比如像WPS WEB,我们目前粗劣统计大概有八十万行代码。然后我们根据我们的生产力估计到年底可能会有两三百万行代码出现,那么这么大的代码量,目前Ajax的应用是支撑不住的;还有另外一个原因就是跨浏览器的一个问题,根据我们的调查验证,目前FLASH在跨浏览器上面的问题要比Ajax要少一些。然后我们也和ADOBE在不断沟通这方面的问题,ADOBE也在解决它。所以从目前来看,FLASH跨浏览器目前不是一个很大的障碍,相反的Ajax多浏览器调试的成本会更高。 

InfoQ:现在WPS同时有客户端版本和Web版本,在代码重用上有没有什么可以跟大家分享的? 

杨钢:首先比如说像我们在线的代码采取的是一个客户端服务器的模式,就是我们会有很多的计算是在服务端进行,这些在服务端进行的代码,基本上都是在原有的客户端代码分离出来,然后进行适当的改造,这是很大的一部分代码重用。然后除此之外,我们会有一些计算是由客户端做,甚至包括UI部分、显示部分,必须是客户端做得。这一块对我们来说,大型软件最关键的是在于它的架构是否清晰,各个元素的分解和配合是否合理,耦合度是否低,这种架构设计方面是否可以重用是跟语言是无关的,在这个方面实际上是重用了WPS很多这种架构资产。

InfoQ: 对于WPS这样的大型软件,他对架构的要求是非常高的,大家对WPS一直都非常关注,如果想成为WPS架构成员之一的话,有什么要求? 

杨钢:这个问题到是比较难,实际上,我们就以WPS典型的一个架构师的成长过程为例,首先就是WPS在招人的时候,我们完全不管学历或者是其他的认证,我们的招人标准之一就是要非常喜欢程序,然后非常喜欢去琢磨技术问题,包括我自己虽然现在担任WPS的总架构师,但我平时的程序代码工作量比一些项目经理还要多。我觉得,成为架构师的一个充分条件,就是他一定要对程序有大量的程序做接触,对程序有很强的这种感觉。然后在这个基础之上,在WPS里面,我们会进行适当的培养,让他开始从小模块的设计开始做起,在成为一个WPS所需要的架构师的这个过程中,他需要的进行一些培训,比如说怎么样用架构语言来表达一个设计,然后包括一些就是业界上很多这种,已经广泛成熟的一些技术的掌握,比如像类图的绘制,比如像设计模式的理解和熟练应用。那么其实和程序员的成长过程一样,我们的架构师也是在实践中慢慢的锻炼出来,会有一批人成长为一个系统架构师,但是有没有一个办法能够让你一定成为一个系统架构师,我觉得这点,我可能目前还经验不足,还没有办法给出一个答案。 

InfoQ:未来咱们WPS有什么长期的发展计划呢?

杨钢:其实WPS之前给别人的印象就是OFFICE的克隆品,反正这个我们自己也承认,你不克隆就没人用,以前的WPS2000很有个性的,很多老用户很喜欢,觉得我们丧失了自己的风格,但确实太小众了。我们的总经理张泉原来说过一句话,先继承后超越,我们觉得经过了前面几年的发展,我们已经过了继承这个阶段。从去年开始实际上WPS已经酝酿、布局、超越这么一个过程,首先我们对项目组进行了调整,把整个WPS原来一个客户端项目,分解成了包括客户端、办公服务、WEB OFFICE等好几个项目群。然后我们在客户端、在网络服务上面就探索了很多跟文档相关的服务,除了刚才提到的文档的存储、分享之外,我们还有一些跟文档创作相关的,举个例子,在WPS,打开的时候有一个首页,一个模板展示区,这个模板展示区里面有很多精美的模板,这些模板其实不是我们做的,是很多专业的设计公司,他们做了之后免费提供给WPS用户,我们走一个相当于是流量渠道这么一个模式,跟他们交换资源。

然后我们在WPS里面,提供了一种叫做扩展插件平台的机制,这样第三方的开发者可以给WPS开发大量的扩充功能的扩展组件,现在的组件不是太多,在WPS官网上应该也有,这个数目我确实不记得,但是有大量的开发者已经在做这个事情了,这些组件给WPS带来了很多微软OFFICE没有的功能, WPS在办公创作这一块,也开始寻求在已有的成熟经验上,能够更好的让用户以更高的效率创作文档,比如表格是中国人用的很多的一种文档元素,但是微软WORD里面它的表格操作其实是很复杂,特别是加上了合并单元格以后, WPS在这方面一直探索一些新的操作模式,去简化这些表格操作,有一些这种操作方式,后来微软也给学进去了,这是关于客户端。另外一条产品线是关于办公服务的,我们觉得在整个文档的过程中,文档的编辑只是其中的一小部分,因为从我们的统计来看,虽然我们WPS是有免费的个人版,有大量的个人用户,但是从用户的反馈,或者是一些渠道我们了解到,其实很少有用户用WPS去做像日记一样的纯个人需求,他们做的都还是和公司相关的事情,那么他这个文档做出来肯定是要给别人看的,肯定是有一些几个人合作写一个出来,有一些可能要有审批之类的过程,这些过程以前只有很大的公司花非常高的费用去实施一个OA,然后才能将这些流程给电子化。

我们觉得,WPS本身可以帮助企业在文档编辑的程度上,在这个层面上实现电子化,在文档除了编辑之外,其他的流转、共享过程中,我们也能够做让特别是没有这种很大的预算去实施OA的公司,也能够很方便的享受到这个服务,这个是第二个产品线,第三个产品线就是WEB OFFICE,WEB OFFICE的长远发展现在并不是很好精确的描述,但是我们都相信未来它是一个大趋势。

InfoQ:非常感谢杨钢先生的精彩分享。


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

真的希望WPS on WEB能够走在Microsoft、Google的前面 by cao wensheng

其实现在的WPS 2010已经有一些方面比Office 2010好了。

WBS?WPS! by Wang Chunshan

做项目管理多了,如果不注意,就会写成WBS,哈哈~

Re: WBS?WPS! by 晁 晓娟

感谢指正,已经修改了~~

请各位兄台更新一下自己的中文名字 by 霍 泰稳

楼上的各位兄台,如果方便,请在“首选项”里将自己的姓名更新一下,像我一样更新为中文姓名“霍泰稳”。我们的目的是希望为InfoQ的读者营造一个简单、纯净的交流环境;另外中文姓名的读者可以优先参加InfoQ定期举办的如QCon、QClub这样的活动。

——InfoQ中文站总编辑 霍泰稳

期待WEB wps by riguang li

杨刚兄弟,前段时间时间接触,现在进展应该很快吧。期待中!

真心支持WPS by Jeffrey Zhao

可惜国内的盗版,唉……

期待WPS2010 by hongyuan cai

期待WPS2010

wps 越做做好了 by chen kevin

wps 做的很NICE,我一个大学同学豪叔还在里面呢。豪叔,加油啊。。。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

8 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT