花钱的年华

江南白衣,公众号:春天的旁边

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

| Filed under 技术

给CSDN的Java 20周年专题写的采访稿,http://www.csdn.net/article/2015-05-19/2824712-Java

照例复制备份如下:

日前,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匠艺的架构师,喜欢平实、干净的设计。目前就职于唯品会平台与架构部。

Mac Talk《技术人物系列:白衣飘飘的江南》

| Filed under 技术

很荣幸做了@池建强 的新技术人物系列的开篇 (他是按见面次数最少来排序的.......)。 池大作家替人写故事的手艺一级好,大家快找他踊跃报名。

微信公众号版原文知乎专栏版原文

复制粘贴版:

科技媒体们总是喜欢捕捉热点人物,马云的一举一动,化腾的一词一句,雷军的一颦一笑,等。我不是媒体,我喜欢编程和写作,所以准备启动一个系列,写一写身边的技术人、产品经理和创业者们,这些人薄雾浓云愁永昼大都是70后和80后,在 IT 行业有超过十年的从业经验,他们大都在互联网发展的过程中参与了和建设了一些什么,他们可能星光闪烁,也可能低调无闻,但是每个人都有属于自己的一片天空,他们的故事,需要有人知道!

写他们当然是凭记忆和我对他们的了解去写,我可没时间去做访谈,所以设定几个简单的规则:

1、这些人肯定是我的朋友。
2、没见过面也可以是朋友,但没见过活物的,我就不胡说八道了吧。
3、见面越多,可能会写的越长。
4、愿意让我写写的,可以告诉我,不愿意的,也要告诉我。
5、无情的赞美多于温柔的杀戮,大致如此。

另外,说到记忆,这是一种最不可靠的物质,它就像一扇破败的窗户,落满灰尘,玻璃模糊不清,与窗框之间充满裂缝,腻子也掉了,如果你想看清楚窗户里是什么,只能用抹布沾拭清水去擦洗,擦之前还得用崭新的腻子填充裂缝。所以,我无法保证记忆里的东西都真实的发生过,我只能说,这些修补和擦洗的感情和态度是真实的。就当小说看吧。

今天的写作时间不多,我准备写写江南白衣——肖桦,谁让我和他只见过一次呢……

肖桦,网络 ID 「江南白衣」,70后资深程序员,「花钱的年华」博主,第一波互联网浪潮(泡沫)创业者,嗯,失败的那种,著名 Java 开源项目 SpringSide 的缔造者。目前在广州爱立信继续磨练编程技艺的 Coding Architect。

可以说,白衣同学就是老罗常常挂在嘴边的工匠,只不过白衣是在编程领域,并且,一生对文艺、Java 和 Spring 充满了暧昧之情。半生吧,谁知道以后他会有什么变化呢。

我知道白衣同学当然是通过 SpringSide 项目,因为我在很长一段时间里都是 Java 和 Spring 的重度使用者,那时候很多大公司还没有大规模开源自己的项目,比如淘宝们,还有很多公司在做自己的框架和平台,比如我们,可以说,SpringSide 在那个白衣飘飘的年代独树一帜,木秀于林,还没有风摧之!随着 Spring 的大规模普及,每个使用 Java 和 Spring 的开发者都或多或少的受益于 SpringSide,要么直接在 SpringSide 上构建项目和平台,要么阅读 SpringSide 的源代码和设计思想,我属于后者。

当时我在负责一个企业级的商业平台,阅读 SpringSide 的源代码之后发现这个项目的作者很多思路和我类似,其中精巧的设计给了我更多的启发。而且这个项目的作者显然是有代码洁癖的人,设计优雅,代码简洁,干净,不炫技,不乱用设计模式,用最少的代码实现最佳的功能,让人赞叹不已。怎么才能认识作者呢?

社交时代很快像奔腾的潮水一样汹涌而至,我在微博上找到了「江南白衣」这个名字,没想到他对我的名字也略有耳闻,于是我关注了他,他关注了我,我们开始了一段……未曾谋面的交流。偶尔转发,偶尔评论,偶尔私信聊聊技术和生活。与 SpringSide 初创时期相比,白衣变得沉默而低调。他常常在微博写下这样的句子:

最近这个月好沉默,因为在看物联网与大数据的东西,刚入门没什么可说的……想起唐诺的一段话:我们缺的不再是知识,过多过廉价的知识像大仓库般丧失了美感、珍罕感,再不复有魅惑力量。

我就知道,他的中年危机到了,因为我也会想起年轻时的理想,纵横四海,改造国家……这些梦想经常被线上的 bug 和无休止的 issue 打碎,什么是梦?什么是现实?到最后自己也无法分清楚。我没那么沉默,我开始写作了,后来出了一本书。读了和写了那么多代码的江南白衣,居然很喜欢我这本没什么技术含量碎碎念的作品,于是我觉得,也该见一见面了。

终于等到了一个假公济私的机会,我飞赴广州爱立信,去见江南。由于「江南白衣」这四个字对我的印象太深刻了,我想象中的白衣是这样的:

或者这样的:

结果从爱立信研发办公区走出了一个高高瘦瘦的男生,头发不算长,杂乱的散落在前额,着了一件白色的紧身T恤,就是那种八级台风也休想让这件白衣飘起来的款。他冲我咧嘴笑了一下,用柔软的南方普通话说:建强你好,我就是白衣。

我连忙把掉在地上的下巴捡起来按上,与之握手相庆,你就是白衣啊,衣服还真挺白的。然后我们假惺惺的互道仰慕之情,开始聊技术,聊生活,聊写作,诸如「这段代码是不是你写的」「孩子还好吧」「老婆都是原配的吧」「你喜欢诗、小说,还是杂文」「为什么要做 SpringSide」之类的话题。

为什么要做 SringSide 呢?那是十年前的一个晚上,白衣热的睡不着觉,他一直在思考「我是谁,从哪来,到哪去」这样的终极问题,最终也没有想清楚。好吧,那就让我们为这个世界留下一些什么吧。写一本书还是做一个开源项目?书印出来了就没法改了,对我这种货色还可以接受,但白衣是一个完美主义者……而开源项目,可以永远年轻,永远生长,永远重构……于是就有了 SringSide,这个项目还有一个好听的中文名称「春天的旁边」。

很多人说卖桃君是站在了科技与人文的十字路口,其实我差得很远,白衣同学基本上已经达到了「站在哪里,哪里就是十字路口」的境界,从他起的项目名字就可以看出这货有多么闷骚了。他的博客「花钱的年华」里有大量的非技术文章,他做了一件非常重要的工作「作现代诗重要的整理与最大的搬运」,在这篇博客里,他写到:

这世界绝不止眼前的苟且,还有诗与远方。远方有了,朋友圈里一天到晚都是旅游的照片。
但诗呢?除了黑色的眼镜,还有什么?……
忽然想,做一次重要的整理,最大的搬运,从图书馆里陆续搬回来几十本诗集,校对网上版本的错漏字,或自己手打那些无法谷歌的诗。按着自己的味道挑,最后超过了三百首——诗经以后所有诗集自觉的数字。

这篇博客的地址是:作现代诗重要的整理与最大的搬运

2014年年底,他写了当年最后一篇技术文章「我的2014技术流水帐」,文字如水,品之若酒,如果你是一个后端开发者,一定要读。

这篇博客的地址是:我的2014技术流水帐

思考之余,白衣还喜欢分享一些文艺女青年的照片,比如这样的


这样的

还有这样的

口味直追冯老师,只是文艺范更强悍一些。(当然,冯老师的故事我们以后有的说呢)

2014年逝去,2015不管不顾的来临,曾经白衣飘飘的江南少年已经不再年轻,但路上的风景依旧美妙,我们怀了年轻的心,奔走在苍老的路上。记住唐诺的话,一路向北!

我们缺的不再是知识,过多过廉价的知识像大仓库般丧失了美感、珍罕感,再不复有魅惑力量。