写点什么

当当架构部总监史海峰:架构与管理是相通的

2015 年 8 月 18 日

编者按:EGO 是高端技术人聚集和交流的组织,每周我们都会对一位会员进行人物专访,在展示会员风采的同时,也分享会员们对技术、对工作、对人生的感悟,本周,我们邀请到了当当架构部总监史海峰。

打造内部应用框架

当当技术部现在是按照产品线划分的,一个产品线的产品、开发、测试都在一个部门,但像项目管理、运维、架构这些技术体系中公用的部分是独立的部门。架构部里主要分成三部分,一个是架构与规范,一个是性能测试,一个是基础应用系统研发。

我们花了比较多的精力在技术架构上,去年我们在 Dubbo 上做了二次开发,做了 DubboX 并且对外开源,业界反馈还不错,包括很多来面试的人都知道。

我们的技术体系、核心业务系统明确的方向是 Java,去年年底,我们开始做一个基于 Java 的应用开发框架,DDFrame,用它去对接一些核心组件,包括 SOA、作业调度、缓存、消息队列、数据库、配置中心等,现在已经发布了 2.0 版本。虽然受限于资源,进度比较缓慢,但我们一直在做这件事,未来也会慢慢完善这个框架,使其成为技术体系的核心。

架构师并非必需品?

我在上大学的时候学的就是计算机,但没学过系统架构方面的课,也没听说过架构师,之前做项目的时候也很少有专门的架构师角色。一般来讲,系统比较简单的话,并不一定要有架构师,当系统更为复杂,才需要有人在更高的视角上去关注整体性的东西,这也是系统规模不断发展的结果。 所以,我们可以认为,架构师并不是一个必需品,甚至不同公司架构师的职责都不太一样,并没有一个非常明确的定义,但整体来讲,架构师需要关注整个体系中方方面面的东西,还需要去解决一些关键性的技术难点,并需要有更为长远的考虑,这个是共识。

架构师与工程师之别

架构师与工程师之间的差别并不在于年纪 ,而是在于视角的不同以及各方面积累的差别。

首先是意识。作为架构师,不能仅仅关注怎么去实现一个功能,还得去琢磨为什么这么做、怎样才能做得更好、应该在什么场景采用什么样的技术方案等问题。另外还得去关注测试、部署、项目管理的方式等方面,甚至要去了解用户的需求、公司业务的需求。如果一直考虑这些事情,时间长了、经验多了,就会有比较好的整体概念或视图在脑中,综合素质会得到提升,明白功能只是最基本的,系统的可用性、稳定性、可扩展性更为重要。

其次是积累。IT 技术一直在演进,全世界无数人的不断研究与实践成就了技术的提升与进化。作为技术人,需要关注当前最新的技术、架构、解决方案、技术理念等,理念可以用不同的技术来实现,也一个不断进化的过程。而作为架构师,承担的是更重要的角色,他的决定会影响到更大的团队或体系,所以就需要有足够多的相关知识和技能,以及足够广的视角,而这些都需要架构师平时不断的积累。我每年大概会看 20 多本书,技术相关的大概一半,另一半主要是社科类、经济、历史、管理之类的,对提高架构思维很有帮助。

再次是责任感。之前提到,架构师承担的是更重要的角色,他的决定会影响到技术选型、系统架构、具体实现的方案甚至系统发展的方向,所以架构师需要有很强的责任感,要对技术团队负责,需要发挥自己的影响力,做很多沟通、协调、支持的工作。

最后是兴趣。在我看来,人是受限于他的性格、兴趣、天分这些因素的,会不自觉地去靠近他更喜欢、更擅长的方向。所以,到底是当工程师还是架构师,或者其他角色,也是要看兴趣的,有的人就是喜欢解决技术难题,就是喜欢具体的模块实现,不想牵扯太多精力去考虑其他的方面,那么也不见得非要当架构师,只是分工不同,业界也有技术专家、研究员这样的角色。

架构与管理相通

之前架构师大会上经常有人说,没有最好的架构,只有最合适的架构。确实如此,作为架构师,很多时候,技术上的东西可能跟程序员差不多,但差别就在于能不能以更大更广的视角去看待问题,而非仅从自身角度出发。

视角变大之后,所要关注的东西就会变多,变量、变数也会更多,很难理想主义,很多时候都需要做出妥协或者说平衡,到最后就会发现,架构和管理在很多时候是相通的。

管理是在一个有限资源、确定时间点、明确目标的情况下,尽可能达成目标,过程中需要考虑轻重缓急,需要随时调整以适应现实变化,以完成目标为首要考量。

架构也是如此,需要考虑的是宏观上的方向性的问题,是各个部分之间的平衡关系,是如何配合才能达成最佳效果,而非仅仅是短期目标而达成,也不必纠结于细节的完美。

这些年,管理、架构都发展出了很多的理论,虽然行业、环境一直在变,但却也不能直接断定它们是不是合适,需要学习的是其中的思维方式,具体的问题具体分析。

IT 是条不归路

有这样的感慨是因为 IT 行业发展实在是太快了,覆盖的领域也越来越广。前两天刚好面试了一个候选人,40 多岁,传统 IT 领域的,能力很不错,在原来公司也做到了挺高的职位,但他不熟悉现在互联网主流的东西,面对的也是不同维度的需求,思路对不上,就很难符合我们的要求。每次见到这样的老大哥,心里都有很悲凉的感觉。

IT 人的能力和价值是基于技术的,一旦跟不上技术进化的脚步,或者当初所选的领域成为夕阳领域,职业道路就会面临转折。这也是我之前换工作的原因之一,一直在原来的公司干下去的话,真的会失去竞争力,很有危机感。

尤其对我们这一代做 IT 的人来说,前面没有多少人走过这条路,没有借鉴之处,真的不知道十几、二十年后,我们的未来会是什么样?我们这些年的摸索,也是给后来者趟路,现在刚毕业的二十多岁的年轻人,就能看到未来的方向,知道自己十年之后大概会是什么样的,但我们真的一直都不知道。

不过,既然选择了这一行,就只能持续关注行业发展,不断提升自己,多学习、勤思考,努力走出一条路来。

嘉宾简介

史海峰,当当网架构师,技术委员会成员。

2001 年毕业于北京化工大学计算机科学与技术专业,曾在神州数码、亚信联创长期从事电信行业业务支撑系统集成工作,参与中国移动、中国联通多个项目,具有丰富的大型业务系统研发实施经验。

2012 年加入当当网,负责总体架构规划、技术规范制定和技术预研推广,善于把握复杂业务需求,提出创新性解决方案,参与了近年当当网多个重点项目的方案设计,在项目中对系统架构进行持续改造优化。负责技术委员会组织管理工作,发掘最佳实践、推动技术革新,组织内外部技术交流。

关于 EGO

很多东西都是慢慢积累下来的,也是需要自己去领悟的,光知道不明白是没用的,那最好的方式就是跟人交流,互相交换彼此的看法,就有可能带来启发,毕竟对于同一件事,每个人的理解可能都不一样。EGO 提供了一个平台,让大家有了互相交流的机会,分享彼此之间的经历、经验,这些都是无形的知识,是很难以书面方式总结的。另外,会员彼此之间圈子比较接近,更容易有共同语言。当然,最后能收获多少,还要看你是否真的参与进去了。

2015 年 8 月 18 日 17:334360

评论

发布
暂无评论
发现更多内容

迭代开发中的微服务拆分

码猿外

架构 微服务 微服务拆分 架构演进

手把手教你分析Mysql死锁问题

捡田螺的小男孩

MySQL 死锁

架构师训练营第四周学习总结

听夜雨

极客大学架构师训练营

视读——沟通的艺术,看入人里,看出人外(第四章)

双儿么么哒

WEEK4 一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述

陈勇

甲方日常 32

句子

随笔杂谈

Week 3命题作业

balsamspear

极客大学架构师训练营

架构师训练营 1 期 -- 第四周总结

曾彪彪

极客大学架构师训练营

典型的大型互联网应用方案

garlic

极客大学架构师训练营

week04作业

追风

架构师一期

聊聊「测试分工和测试时间」

清菡

测试

架构师训练营 1 期 -- 第四周作业

曾彪彪

极客大学架构师训练营

LeetCode题解:22. 括号生成,递归生成同时过滤,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

架构师训练营第 1 期 - 第四周总结

Todd-Lee

极客大学架构师训练营

第四周总结

Geek_ac4080

架构师训练营第四周作业

听夜雨

极客大学架构师训练营

十五、深入Python输入和输出

刘润森

Python

B站真题:如何判断括号是否有效?

王磊

Java 数据结构 算法

week04总结

追风

架构师一期

给新入职工程师的10条建议

supernova

管理 职场 工作方式

自学编程,看书还是视频?

沉默王二

程序员 读书 自学编程 视频

极客时间架构师培训 1 期 - 第 4 周作业

Kaven

会用Docker的人都别装了,这多简单呐

MySQL从删库到跑路

MySQL Docker Linux yum redhat

WEEK4 学习总结

陈勇

极客大学架构师训练营

一次用户故事地图之旅

Bruce Talk

敏捷开发 用户故事 Product Owner 用户故事地图

Spring 事务,你真的用对了吗(上篇)?

双儿么么哒

Spring MVC

第四课系统架构课后作业

Geek_michael

极客大学架构师训练营

用Python绘制地理图

计算机与AI

Python 绘图

每天都要写吗?

Nydia

Week 3学习总结

balsamspear

极客大学架构师训练营

十六、深入Python字符串

刘润森

Python

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

当当架构部总监史海峰:架构与管理是相通的-InfoQ