编者按:EGO 是高端技术人聚集和交流的组织,每周我们都会对一位会员进行人物专访,在展示会员风采的同时,也分享会员们对技术、对工作、对人生的感悟,本周,我们邀请到了当当架构部总监史海峰。
打造内部应用框架
当当技术部现在是按照产品线划分的,一个产品线的产品、开发、测试都在一个部门,但像项目管理、运维、架构这些技术体系中公用的部分是独立的部门。架构部里主要分成三部分,一个是架构与规范,一个是性能测试,一个是基础应用系统研发。
我们花了比较多的精力在技术架构上,去年我们在 Dubbo 上做了二次开发,做了 DubboX 并且对外开源,业界反馈还不错,包括很多来面试的人都知道。
我们的技术体系、核心业务系统明确的方向是 Java,去年年底,我们开始做一个基于 Java 的应用开发框架,DDFrame,用它去对接一些核心组件,包括 SOA、作业调度、缓存、消息队列、数据库、配置中心等,现在已经发布了 2.0 版本。虽然受限于资源,进度比较缓慢,但我们一直在做这件事,未来也会慢慢完善这个框架,使其成为技术体系的核心。
架构师并非必需品?
我在上大学的时候学的就是计算机,但没学过系统架构方面的课,也没听说过架构师,之前做项目的时候也很少有专门的架构师角色。一般来讲,系统比较简单的话,并不一定要有架构师,当系统更为复杂,才需要有人在更高的视角上去关注整体性的东西,这也是系统规模不断发展的结果。 所以,我们可以认为,架构师并不是一个必需品,甚至不同公司架构师的职责都不太一样,并没有一个非常明确的定义,但整体来讲,架构师需要关注整个体系中方方面面的东西,还需要去解决一些关键性的技术难点,并需要有更为长远的考虑,这个是共识。
架构师与工程师之别
架构师与工程师之间的差别并不在于年纪 ,而是在于视角的不同以及各方面积累的差别。
首先是意识。作为架构师,不能仅仅关注怎么去实现一个功能,还得去琢磨为什么这么做、怎样才能做得更好、应该在什么场景采用什么样的技术方案等问题。另外还得去关注测试、部署、项目管理的方式等方面,甚至要去了解用户的需求、公司业务的需求。如果一直考虑这些事情,时间长了、经验多了,就会有比较好的整体概念或视图在脑中,综合素质会得到提升,明白功能只是最基本的,系统的可用性、稳定性、可扩展性更为重要。
其次是积累。IT 技术一直在演进,全世界无数人的不断研究与实践成就了技术的提升与进化。作为技术人,需要关注当前最新的技术、架构、解决方案、技术理念等,理念可以用不同的技术来实现,也一个不断进化的过程。而作为架构师,承担的是更重要的角色,他的决定会影响到更大的团队或体系,所以就需要有足够多的相关知识和技能,以及足够广的视角,而这些都需要架构师平时不断的积累。我每年大概会看 20 多本书,技术相关的大概一半,另一半主要是社科类、经济、历史、管理之类的,对提高架构思维很有帮助。
再次是责任感。之前提到,架构师承担的是更重要的角色,他的决定会影响到技术选型、系统架构、具体实现的方案甚至系统发展的方向,所以架构师需要有很强的责任感,要对技术团队负责,需要发挥自己的影响力,做很多沟通、协调、支持的工作。
最后是兴趣。在我看来,人是受限于他的性格、兴趣、天分这些因素的,会不自觉地去靠近他更喜欢、更擅长的方向。所以,到底是当工程师还是架构师,或者其他角色,也是要看兴趣的,有的人就是喜欢解决技术难题,就是喜欢具体的模块实现,不想牵扯太多精力去考虑其他的方面,那么也不见得非要当架构师,只是分工不同,业界也有技术专家、研究员这样的角色。
架构与管理相通
之前架构师大会上经常有人说,没有最好的架构,只有最合适的架构。确实如此,作为架构师,很多时候,技术上的东西可能跟程序员差不多,但差别就在于能不能以更大更广的视角去看待问题,而非仅从自身角度出发。
视角变大之后,所要关注的东西就会变多,变量、变数也会更多,很难理想主义,很多时候都需要做出妥协或者说平衡,到最后就会发现,架构和管理在很多时候是相通的。
管理是在一个有限资源、确定时间点、明确目标的情况下,尽可能达成目标,过程中需要考虑轻重缓急,需要随时调整以适应现实变化,以完成目标为首要考量。
架构也是如此,需要考虑的是宏观上的方向性的问题,是各个部分之间的平衡关系,是如何配合才能达成最佳效果,而非仅仅是短期目标而达成,也不必纠结于细节的完美。
这些年,管理、架构都发展出了很多的理论,虽然行业、环境一直在变,但却也不能直接断定它们是不是合适,需要学习的是其中的思维方式,具体的问题具体分析。
IT 是条不归路
有这样的感慨是因为 IT 行业发展实在是太快了,覆盖的领域也越来越广。前两天刚好面试了一个候选人,40 多岁,传统 IT 领域的,能力很不错,在原来公司也做到了挺高的职位,但他不熟悉现在互联网主流的东西,面对的也是不同维度的需求,思路对不上,就很难符合我们的要求。每次见到这样的老大哥,心里都有很悲凉的感觉。
IT 人的能力和价值是基于技术的,一旦跟不上技术进化的脚步,或者当初所选的领域成为夕阳领域,职业道路就会面临转折。这也是我之前换工作的原因之一,一直在原来的公司干下去的话,真的会失去竞争力,很有危机感。
尤其对我们这一代做 IT 的人来说,前面没有多少人走过这条路,没有借鉴之处,真的不知道十几、二十年后,我们的未来会是什么样?我们这些年的摸索,也是给后来者趟路,现在刚毕业的二十多岁的年轻人,就能看到未来的方向,知道自己十年之后大概会是什么样的,但我们真的一直都不知道。
不过,既然选择了这一行,就只能持续关注行业发展,不断提升自己,多学习、勤思考,努力走出一条路来。
嘉宾简介
史海峰,当当网架构师,技术委员会成员。
2001 年毕业于北京化工大学计算机科学与技术专业,曾在神州数码、亚信联创长期从事电信行业业务支撑系统集成工作,参与中国移动、中国联通多个项目,具有丰富的大型业务系统研发实施经验。
2012 年加入当当网,负责总体架构规划、技术规范制定和技术预研推广,善于把握复杂业务需求,提出创新性解决方案,参与了近年当当网多个重点项目的方案设计,在项目中对系统架构进行持续改造优化。负责技术委员会组织管理工作,发掘最佳实践、推动技术革新,组织内外部技术交流。
关于 EGO
很多东西都是慢慢积累下来的,也是需要自己去领悟的,光知道不明白是没用的,那最好的方式就是跟人交流,互相交换彼此的看法,就有可能带来启发,毕竟对于同一件事,每个人的理解可能都不一样。EGO 提供了一个平台,让大家有了互相交流的机会,分享彼此之间的经历、经验,这些都是无形的知识,是很难以书面方式总结的。另外,会员彼此之间圈子比较接近,更容易有共同语言。当然,最后能收获多少,还要看你是否真的参与进去了。
评论