微信号:sagacity-mac

介绍:MacTalk 开通于2012年末,内容起于 Mac 而不止 Mac,内容覆盖了技术、创业、产品和人文思考.文风有趣,又有一点力量.相关图书《MacTalk·人生元编程》《MacTalk·跨越边界》

许式伟:如何避免成为软件搬砖师

2019-04-10 17:11 池建强

题图:金门大桥

说起许式伟,我不知道大家是熟悉还是陌生。在我们那一拨程序员里,他是个神级人物,或者说是神奇人物。

沉默的老许

他在大学的时候绰号 C 狂,就是特别喜欢 C 和 C++,加入金山后两年成为首席架构师,开始主导 WPS Office 2005 长达 3 年的架构设计和开发。2006 年那会儿,盗版软件盛行,WPS 开始从软件向互联网转型,许式伟创建了金山实验室,以技术总监的身份主导分布式存储开发。后来,他加入了盛大创新院,推出「盛大网盘」和「盛大云」。

在技术转型的过程中,他从 C 转向了 Go,成为国内最著名的 Go 语言布道师。

2011 年,许式伟创业建立了七牛云,核心服务都基于 Go 语言开发。他亲自设计了七牛云的架构,并编写了大量的七牛云核心代码。8 年过去了,七牛云在竞争激烈的云计算市场,打出了自己的一片天。

我上次和他聊天还是在 2016 年一起去硅谷拜访科技公司的时候,哥们依然沉默寡言,常常神飞九天,一副禅定的样子。我说都出国了还装什么装,还在惦记公司代码呢?他说可不是嘛。那个阶段他虽然是创业者,CEO,依然在维护公司的核心代码。在老许的身上,我能看到一个典型技术人的理想实现之路 —— 扛过国产软件研发的大旗,忍受过在 Office 和盗版夹击下的艰难求生,经历过公司转型和个人转型交织的洗礼,跟他并肩奋斗过的金山人大多进了游戏行业,他却坚守基础研发。创业者只是他的身份,从某种角度上看,我觉得他仍然把自己看作一个技术人。

再次有了交集

两年过去了,没想到我们在极客时间上发生了交集。我和 Gary 一直想策划一门「架构思维」课,从计算机的冯·诺依曼体系开始,讲操作系统、编程语言,服务端、客户端、中间件,一直到业务架构设计。谁能讲?我觉得老许是最合适的人选之一,但希望不大,毕竟他是 CEO 了,忙着打天下。抱着试试看的心思,Gary 去和老许沟通,老许说这些年一直想写一门架构课,了却心愿。于是一拍即合。

极客时间做成了这件事,于是就有了专栏「许式伟的架构课」。这也是老许近年来罕见的、第一次系统分享自己的架构思考,这是一个架构师 20 年深厚积淀。

不要成为一个搬砖师

我们常常把程序员类比成建筑师时,按照能力水平来分,大体可以分为三个层次:搬砖师、工程师、架构师。

软件搬砖师之名对应到建筑行业的建筑工人,他们的编程能力和业务基本上停留在堆叠代码,按照要求去实现功能需求的层面。

一些有追求的程序员会关注代码的质量。代码质量的评判可以有这样一些基本维度:可阅读性(方便代码流转)、可扩展性/可维护性(方便修改功能,添加新功能)、可测试性(质量管理)、可复用性(简化后续功能开发的难度)。他们成了软件工程师,但是还不够。

大部分商业软件都是一项极其复杂的工程,它们远比很多传统的建筑工程复杂得多,它需要依赖一个能够掌控整个工程全局的团队,来规划和引导整个系统的演变过程。这个团队就是架构师团队。

那怎么才能成长为优秀的软件架构师?软件架构师和软件工程师最根本的差别又在哪里?关键在于四个字:掌控全局。

掌控全局

掌控全局的前提是:在自己心中去重新构建出整个世界。在这个过程中,你不需要一上来沉浸在某个技术的实现细节(除非它影响了你对这个世界构建过程的理解),但是你知道整个世界的脉络,知道整个世界的骨架。

这个时候,你对这个世界的感觉是完全不同的,因为,你已经成为了这个世界的构建者。

许式伟会通过这个专栏帮助大家,避免自己成为软件搬砖师,而成为一个「掌控全局」的人。

有什么不同?

这个专栏的内容组织和你看得到的大部分架构书并不太一样。基本上围绕着两个脉络主线来展开内容:

1、如何从零开始一步步构建出整个信息世界;
2、在整个信息世界的构建过程中,都用了哪些重要的架构思维范式,以及这些范式如何去运用于你平常的工程实践中。

这两大脉络相辅相成。首先,我们通过还原信息世界的构建过程,剥离出了整个信息世界的核心骨架,这也是最真实、最宏大的架构实践案例。其次,我们结合这个宏大的架构实践来谈架构思维,避免因对架构思维的阐述过于理论化而让人难以理解。

比如,服务器端架构的完整体系,应该是这样的,而不仅仅是中间件和业务架构。

而客户端程序的架构应该是这样的:

对于架构师来说,不是只去考虑业务应该如何分解,而是掌控全局,整个应用从底到最顶层的上层建筑,每一层都需要进行各种决策。先做 iOS版本,还是先做小程序?是选择 Java 还是 Go 语言?优势和劣势,优先支持什么样的业务,现有技术能支持几年,是否可以扩展等等,这些都是架构内容的一部分。

每个程序员都有一颗成为架构师的心。所以,从内容设计来说,许式伟和极客时间都希望这是一个门槛最低的架构设计专栏,也希望它可以帮助到所有想成为架构师的初学者,达成自己的目标。

许式伟的架构课,上新优惠,扫码 99 元获取 20 年架构经验。

我记得,老许说过这么一句话:不管你是否是团队里的架构师,对任何一位程序员来说,具备架构思维都会成为让你脱颖而出的关键

点击原读原文也可以订阅。

 
MacTalk 更多文章 秘籍:有意瞄准,无意击发 不增长就会死掉 送你三个忠告 大部分人遇到问题的根源是能力不足 你用什么耳机听歌?
猜您喜欢 一个技术从业人员眼中的2014 在Systrace中添加 mutex lock owner 说说压力上来之后会做什么啊? 一个CPO的心得分享:搭建风控系统道路上踩过的坑04-风险分析 | 岂安低调分享 PHP7今天要正式发布了