从程序员到架构师:前瞻意识与分层设计重要性.pdfVIP

  • 0
  • 0
  • 约3.71千字
  • 约 9页
  • 2026-02-17 发布于北京
  • 举报

从程序员到架构师:前瞻意识与分层设计重要性.pdf

架构师需要具备一定的前瞻性,因为架构的调整周期比较长。这也是程序员和架构师之间一

个很大的区别所在。

程序员负责一个项目,在当前的互联网协议下,项目的迭代周期非常快,基本以天或单

位,最多一个月。如果发现不合适的代码,需要重构,程序员基本也能在几天或几周内就能

完成重构。

而架构的调整是相对漫长的过程,可能需要数月,甚至要上年。因此,在设计架构时就需要

架构师具备前瞻意识,对很多不确定的事情做出预判,比如未来量会增长到什么程度,

会不会产生新的业务,这些会对系统产生什么样新的要求等等。

除了懂得取舍和拥有前瞻意识,架构师在设计架构时还要掌握抽象的方法,不能胡子眉毛一

把抓,要做好分层和区隔。

因为架构师面对的是一个很庞大的系统,为了避免过早陷入细节,不要去看各个组件的细

节,而是把它们的角色定义下来,再分块来思考。而在看每个分块时,其他分块都可以

视为一个抽象的概念,另外,也需要考虑复用的问题。

举个例子,我们现在正在做的机器人,就运用了分层思想,并且高复用,一个机器

人可以完成各种各样的业务需求。这其实是一个非常复杂的系统,里面有各种各样的机

器人的模块,有的特别适合去做检索式的查询,还有的适合做任务导向的、产品推荐导向的

等等。

我们把机器人抽象成一个通用的接口,再将它分为一个个小机器人。这样一来,每个小

机器人只需要关注自己的业务模块就行了。然后,我们会端再引入一个路由机器人,由

路由机器人根据当前管理的状态,来判断当前的应该交给哪个小机器人去完成。这

就是典型的分层的思想。

相比程序员,架构师面对的环境要恶劣的多,因为系统复杂了,出错的几率也增加了,每个

节点、每个功能都有可能出错,所以这就需要架构师为错误而设计,事先做好解决方案。

除了出错,还有可能产生数据丢失的情况,这个可以通过备份来预防。有句话说“备份不

做,日子甭过”,做好备份也是非常关键的。

另外,如果出现故障,该怎样去恢复呢?我们现在普遍的做法是不修只换,因为如果要修复

一个异常状态,可能修复后还会出现连带问题,而如果能通过技术,删除已出现的故

障,换一个全新的系统,就能够保证它迅速恢复到正常状态。

再来聊聊从架构师到CTO,我做CTO这个角色只有两年,相比资深CTO,我对CTO这个角色的

感悟也没那么深刻。我觉得从架构师成为CTO,我工作中最大的变化是,从一个需求实现

方变为了需求提出方。之前是我的提出需求后,我需要思考用什么样的技术和架构来实现

它,而现在考虑的是,用什么技术才能发展业务。

怎样从架构师的角度转变为CTO的角度去思考问题呢,我认为关键点还是在于提高眼界,不仅

要着眼于实现需求,还应该思考能发掘出什么新的需求。

举个例子,在我准备创业时,有一件事对我的触动非常大,就是AlphaGo战胜李世乭,我原本

以为在围棋方面战胜人类还需要5到10年,没想到会这么快。

我以十年为一个节点,回顾了近三十年技术圈里发生的重要,发现大概每10年就会发生

一件里程碑式的。

大约1986年年底,互联网正式,标志着我们进入了互联互通的时代。到了1995年,Web

出现。然后在2007年左右,发生了三件大事,一是分布式系统,使得分布式

计算变得更加廉价、更加可行;二是亚马逊发布AWS,意味着云计算正式进入可以的状

态;三是苹果发布iPhone,标志着我们进入移动互联网时代。又过了十年,就是2016年,

AlphaGo战胜李世乭,标志着我们已经进入了与大数据时代。

纵观这些趋势,站在CTO的角度,当前最应该关注的就是和大数据。而因为当时我们

已经在做创业的准备,就需要考虑和大数据这个趋势会给我们的创业带来什么样的影

响。

随后我和豆瓣前首席科学家王守崑就决定从这个方向入手,一起梳理了我们已经具备的技术

能力,主要有这六点:自然语言处理的能

文档评论(0)

1亿VIP精品文档

相关文档