转载

专访唯品会架构师肖桦:做编码的架构师

日前,CSDN特别采访了SpringSide发起人肖桦(网名江南白衣),请他分享了他眼中的Java以及从码农到架构师的经验之道。

专访唯品会架构师肖桦:做编码的架构师

肖桦

CSDN:你是从什么时候开始接触Java的?是什么地方吸引了你?

肖桦:大概从2001年开始接触Java,之前使用C++,什么都要自己造轮子。进入Java世界,突然发现很多优秀的类库可以拿来就用。J2EE的一套东西,虽然后来大家都批评它做得不好,但EJB、JMS、JMX、JCA,这些东西对于还想着用C++来实现类似功能的衰人来说,有这么一套标准与实现实在太好了。即使在今天看来,J2EE的愿景还是很好的,只是一开始实现的重了,让后来的Spring们抢了风头。而在语言层面,突然就没有了指针,也不用管对象回收了。和PHP、ASP比,又仍然是个高大上的静态语言,对于我这种既喜欢优雅又喜欢简单的工程师来说是最好的。

CSDN:你怎么看待Java目前的现状?

肖桦: Oracle现在对Java还是不错的,Oracle是个务实的公司,Java的一切往务实的方向靠,比如它的发行计划,模块化争议太多,就把它搁置,从JDK7一直延到JDK9,把能上的菜先上了。又比如最近对JDK7也停止免费支持了,不再拖着长长的产品线,将精力集中起来。另外,OpenJDK也是另一个选择。但如果当初是Google得到了Java会怎样呢,谁知道呢?

CSDN:Java发展至今已有二十年了,你经历了哪些技术变迁呢?

肖桦: 二十年的时间好像很长,但划分起来也就三四波的变迁。

语言层面,第一波是JDK5,泛型和新的并发包出来,要不要升到JDK5以支持泛型对很多项目是个困难的选择,最后是Spring之类几个核心的三方框架类库强行升级了,才带着整个Java社区跟随升级,那时候,每个升了级的项目都像走向了新生。很多项目也一直用JDK5到现在。

第二波是JDK6、7时,一波基于JVM的新语言出现,比如Scala、Cloujre,但对于不那么爱玩的项目来说,感觉不大。

第三波就是现在的JDK8,变动之大与JDK5相比并不小,所以现在也等着各个核心的框架如Spring先升级,可见Java社区并不是极客那么爱玩的地儿。

而在框架层面,J2EE无疑是第一波,Spring、Hibernate、Struts(SpringMVC)是第二波,老掉牙的故事也没什么好讲了。 而第三波,我觉得是越来越多互联网应用使用Java,如果说J2EE和SSH更偏重于传统企业应用,第三波的技术变迁,更针对大规模、分布式、高可扩展性、高可靠性的互联网应用,比如新一波的服务化浪潮。

CSDN:近日,Oracle宣布停止发布JDK7安全补丁和升级包,此举,你怎么看?

肖桦: Oracle现在就宣布停止JDK7的安全补丁和升级包感觉有点早,因为据我所知,有些项目升级到JDK8之后,会因为JDK8内部一些实现的改进而造成不兼容,被迫又重新回退的。

但此举也是可以理解的,一来可以集中精力维护现有的JDK8,因为JDK8的改动太大,依然同等着力地维护两个版本可能有点吃力。二来,也是为了让更多用户主动地升级到JDK8来,如前所述,Java用户的JDK升级意愿一向不是很高,都靠着一些重要的开源框架类库升级了才会去升级,Oracle这也有推一把的意思。

CSDN:为何会想到创建SpringSide,有什么故事可以给我们分享吗?

肖桦: 创建SpringSide是为了留下自己的痕迹,这是在写一本书和做一个开源项目之间的选择。现在我有点庆幸当初选择了后者,因为一个开源项目你可以坚持七八年不断地升级,你的用户也不会嫌你烦。而在做一个高大上的轮子,还是做个简单务实的封装与BestPractice的展示之间,我又有点后悔当初选择了后者,因为个人精力、白天工作、公司变更等原因,以个人为主的项目很难坚持七八年,不断地维护它,可能还要大规模重构它的功能适应时代的变迁。当然,也有些项目做到了,向它们致敬。

CSDN:SpringSide目前有新版本更新吗?主要有哪些新特性?

肖桦: SpringSide项目有一阵没有大更新了,不过最近白天的工作从电信领域进入到互联网领域,会有更多的针对互联网、大数据的新特性。

CSDN:从一名码农到软件架构师,进阶之路是什么?有哪些方法呢?

肖桦: 作为一个一直坚持写代码的架构师,从码农到软件架构师之间好像没有一条很清晰的界限,是一个知识面与项目经验的自然积累,以及在团队中不断体现出比个体程序员更强的责任后的渐进过程,所以有些敏捷团队说自己不需要一个架构师,但其实开发者已经做了一部分架构的工作,不论他们的职位名称是什么。没有谁能够恶补完一些书后,然后获得一个上级任命后就成为一个架构师了。再回过头来,如果要恶补,有些东西还是值得重点加强,比如分布式架构的基础与理论、抽象化问题、简化复杂架构的能力,比如架构文档化并说给别人听的能力,比如关于操作系统、网络的基本功保证你解决问题的能力等等。

CSDN:在日常生活中你是通过哪些方式来提升个人技能的?现在还会经常编码吗?

肖桦: 除了拉书单看书,阅读文章这些日常的知识摄入手段外,最好白天找个牛人扎堆的地方工作,晚上在微信群里继续和整个互联网的牛人们讨论问题。另外,谈哲学可能太玄乎了,我自己也喜欢简单的东西,所以可以花点时间培养对美的直觉与诉求,代码之美,架构之美。我对自己职业的定位就是编码的架构师,也在百年老店爱立信那里,看到不少退休前仍在编码的程序员,所以这将一直是我的目标。

作者简介: 肖桦(网名:江南白衣),开源项目SpringSide(http://springside.io)发起人,70后Java程序员,一个依然每天磨练自己Coding匠艺的架构师,喜欢平实、干净的设计。目前就职于唯品会,负责平台与架构。

本文选自程序员电子版2015年5月B刊,该期更多文章请查看这里。2000年创刊至今所有文章目录请查看程序员封面秀。欢迎 订阅程序员电子版 (含iPad版、Android版、PDF版)。
正文到此结束
Loading...