金山软件事业部的技术总监许式伟常常称自己是一个计算机的狂热爱好者。对于他深厚的软件开发经历,他只简单的分成了桌面开发阶段、服务器开发阶段。但我想这每一个阶段中都蕴涵了很多关于他奋斗故事。
许式伟将他的2个开发阶段分成了4个时期,第一个时期是WPS Office旧版本的开发,包括WPS Office,WPS Office 2002。第二个时期是WPS Office V6也就是WPS Office 2005的开发,这一开发过程也是许式伟到现在都非常难望的一段经历。整个开发历时3年,完全是从零开始重新编写全新的WPS Office。
许式伟在这个项目中负责了整个系统的架构,许式伟是这样描述这一段的“这段时间是辛苦的,但也是个人觉得能力提升最迅速的阶段。没有比做一个Office还要复杂的系统了,这段经历使我从关注“设计/编码的技巧”上,转到了关注“设计的可实施性、可检验(测试)性”上。”
走过了最难忘也是最辛苦的第二个时期,已经从当初蜕变了的许式伟开始了对互联网的探究,这构成他的第三个时期,也就是主攻搜索引擎技术和协同推荐。
今年,在公司的支持下,许式伟在年初时决定成立“金山实验室”,这不仅仅对公司是一件很好的事情,对许式伟来说,有了能够让他将更多的想法变成现实和探索更多事情的平台,基于此,许式伟的技术生涯正式迈进了第四个时期。许式伟说其实他曾经最引以为豪的是做了一个世上速度最快的Word文档生成模块,“我认为它比微软的还要快”许式伟这样说,“它依赖了我写的一个内存管理组件(AutoFreeAlloc),关于最袖珍的垃圾回收器——AutoFreeAlloc在互联网上现在不少转载,大家的关注度也很高,我收到的网友来信有半数是关于它的。”现在他希望“金山实验室”的建立将会超过他之前的成就,成为他最自豪的事情。
许式伟曾被称作是金山最年轻的架构师,针对于现在软件业对架构师这一概念理解的混淆,许式伟认为架构师从定义上来讲,是对系统进行分析,并确定如何划分系统、定义各个子系统规格的人。
某个子系统如果比较关键或者很复杂,那么还需要子系统架构师继续细化这个系统。架构师的设计对后续的开发是决定性的。如果架构师的设计出现了问题,例如架构的可实施性不高,系统耦合很强,那么很容易出现代码需要大量重构的情况,最糟糕的情况是,有时候某个模块稍微的改动将会牵连到整个系统,令你想改都改不了。
那么要成长为一名合格的架构师,许式伟总结了几个原则,希望能对即将承担架构师职责的技术开发者有所启发:
1、必须要对产品的需求有透彻的理解。
GOF有这样一句话: “设计应该支持变化” ——获得最大限度复用的关键在于对新需求和已有需求发生变化时的预见性,要求你的系统设计要能够相应地改进。"程序能力尤其是框架能力并不是天生的,而是取决于程序架构师对需求的理解程度。如果在不了解系统需求的前提下,就开始进行设计,那么即使是天才,也不能设计出完美的框架。
2、丰富的编码经验。
软件开发是实践科学,是不可能有人天生就有很强的设计能力的。只有大量的经验后,才能够深刻体会"设计的可实施性远远重要过灵巧的设计"这句话,并且知道如何做才能够使得设计易被实施。
上面的这两点是你想成长为一名架构师所必须具备的能力,那么如何能成为一名好的架构师呢?是不是你有了丰富的编码经验就能成为一名架构师呢?答案当然是否定的,丰富的编码经验,是成为好的架构师的必要条件,但绝对不是充要条件。
这也是为什么现在架构师仍然属于白金级的技术价值最高的人群,要成长为一名好的架构师,还有以下的三点需要做好:
1、理解需求。
2、编码。
3、反思。
有回顾才有进步。架构师往往是个完美主义者。一个模块做了之后,总会不断去想是否还可以做得更好。总是自我承认,自我欣赏是绝不会成为一名好的架构师的。通过许式伟对架构师的这一番讲解,是不是也会引起你的一番反思呢?
在采访许式伟的过程中,我不仅体会到了一个软件开发人员踏实的进取之路,他对“金山实验室”定位的理解,对WPS有不同于大家的更深刻的认识,所以,在下篇我们会详细讲述到底“金山实验室”是怎样的定位?WPS的前景在哪里?而Winx又是怎样的一个项目?
专访许式伟:技术狂热分子的蜕变经历
最新推荐文章于 2024-08-23 17:48:47 发布