作为业界热议的话题,全端工程师、全端Web开发相信你一定有深入了解。那么前端架构,你又知道多少呢?作为Google资深工程师,李聪认为全端架构并不是新事物,已存在于工业界很久。相比重视模块设计的传统架构来说,全端更强调从前到后的架构设计,更突出从全局出发。
很荣幸,近日CSDN对李聪进行了专访,请他分享他在架构设计领域的诸多心得,同时他也将出席由麦思博主办的 MPD软件工作坊深圳站 活动,并带来精彩演讲。
CSDN:首先请您做一下自我介绍。
李聪: 我是Google总部高级工程师,在Google 6年多来,负责过前端、后端甚至客户端的开发。
CSDN:从您的个人经历来看,您有6年多的全端开发经验,在前端、后端及客户端开发方面都有着丰富的经验。有人认为,前端开发未来发展趋势是全端开发,您怎么看?
李聪: 这个应该说是因人而异。
首先看兴趣爱好,有一部分人还是很喜欢前端、客户端开发的,我认识有人做过十多年JavaScript的人,现在还在做。
其次看职业发展。作为一个工程师来说,现实情况是,纯做前端的对公司的贡献往往比纯做后端的小些。所以往往给人的印象是纯做全端的是需要扩充的。但是这种印象太绝对,只做前端作为的可能性也很大。
如若想向经理人方向发展,未必需要向后端扩充。模块型的架构师(前端)也未必需要深入后端。
CSDN:如何成为全端工程师呢?请分享一下您的成功经验。
李聪: 我的经历比较自然。经历过的项目基本上范围都比较大,很自然地可以了解相关的前后端模块。当项目有需求时,便可以选择做自己喜欢的模块。另外,我对技术有比较大的好奇心,遇到相关不甚了解的内容,时常会想接触一下。
跟着项目来成长比较好,我个人不建议仅仅通过学习来成为全端工程师。
CSDN:能否解释一下什么是全端架构。它与传统所说的架构设计有什么不同?优势有哪些?
李聪: 个人认为这两个概念不直接冲突,是有重叠的。全端架构不是新事物,已经存在于工业界很久。全端更强调从前到后的架构设计,而传统的架构设计可能意味着某个模块,例如一个软件产品的iPhone客户端的架构设计。
全端设计能够从全局出发,不会因为太局限而导致模块间不匹配。
CSDN:基于全端架构,您负责开发了哪些产品?能否从中选择一两个典型案例,具体说明一下。
李聪: 之前历时近两年做过一个Google+的Promosystem,涉及客户端展示、前端处理、后端内容生成与服务,甚至也包括线下数据处理和机器学习等。该系统根据用户的行为、用户信息、社交图谱等海量数据向用户推荐内容。
最近在做一个产品,即将发布,也涉及到客户端、后端和线下处理等。
CSDN:在您看来,评判一个架构设计优劣的标准是什么?架构师该如何提升自我,以设计出优秀的架构?
李聪: 这个问题有点大,在不同的场合评测标准也不一样。一般说来,架构师要在各个方面找到平衡,比如系统优化程度、产品实现时间、各方需求等。单单系统优化一个角度都要包含很多方面,比如鲁棒性、容灾性、安全性、智能性、反应速度等等。举个例子,你设计了一个系统本身非常好的架构,可是实现起来需要一年,而产品要求3个月发布,那么在这种场合下,该架构设计是不合适的。
架构师的提升没有捷径可走,唯有学习+实践。