人人都是架构师

最近一直在思考一个问题:怎样做一枚好的架构师?

首先说说,我为什么取了这个标题,因为之前看过一本某产品大牛写的《人人都是产品经理》,我就照搬了这样一个标题,《人人都是架构师》。人人如果都能做到架构师,可能是一件比较难的事,这里也只是一个概念在里面,意思是开发任何工程项目,不只是想着怎样完成,更要想着怎样才能做的更好,这里当然涉及到一些架构的思想在里面,架构就是为了让工程完成的更好。

架构师是一个职业的统称,细分的比如有java架构师、php架构师、系统架构师、IOS架构师、安卓架构师、前端架构师、等等……架构师职业是工程师队伍里比较顶端的,一般的公司的职位划分大概是:实习生、初级工程师、普通工程师、中级工程师、高级工程师、资深工程师、初级架构师、架构师、高级架构师,不过由于很多公司的职级已经满足不了市场的需求了,在技术的职业发展通道上还增加了研究员、专家这两个职称,能达到这个职称的少之又少,只有BAT等大公司才有如此完善的职业发展通道。互联网发展的如此之快,我想过不了多久就有科学家职称出现了,或者院士。

哦,扯的有点长了!反正是散文我就想到啥就扯啥:)

再说说鄙人吧。

鄙人刚入职上海某家互联网金融公司,任职前端架构师。

说实在的,我之前没做过架构师,在架构领域我是新人。最近几个月我更多的在思考怎样做一枚好架构师。

PS:刚有妹子过来,打断我的思路。继续……

在之前,我是一枚前端团队leader,其实就是打杂,管人管事自己再写点代码,其实也做了一点算是关于架构的事,比如,前端流程的优化、前端组件库的建设、新技能的get。只是那时候对架构没有太清晰的认识,我还曾和老板提及招前端架构师的事儿,因为那老板不懂技术,所以没把这事儿放心上,之后就不了了之了。

在新岗位上工作了几个月了,在CTO看来我的工作是挺卖力挺OK的,还特批我提前三个月转正了(架构师的试用期6个月,窃喜)。但自我认识,也有很多做的不到位的地方。

这让我重新审视前端架构师在公司里该负责一些什么。

今年招前端架构师职位的公司越来越多啦,说明前端职业在互联网技术行业里越来越受到重视,我随便搜了下上海的一些招前端架构师的企业,他们对职位的定位和要求。

###沪江网
岗位职责:

  1. 负责沪江网站前端架构的建立和实施,主导前端框架开发,并据此制定合理有效的开发规范;
  2. 负责梳理和优化前端开发流程,搭建高效集成的前端开发环境,提高前端开发质量和效率;
  3. 负责推动前端架构和框架在各业务线落地实施;
  4. 把握前端技术发展潮流,牵头前端新技术的研究,并用新技术推动业务发展。

###飞牛网
职位描述:

  1. 负责网站前端架构的建立和实施,主导前端框架开发,并据此制定合理有效的开发规范;
  2. 负责梳理和优化前端开发流程,搭建高效集成的前端开发环境(快速开发,框架集成,自动化测试、部3、署和发布),提高前端开发质量和效率;
  3. 负责复杂业务的前端方案设计和技术选型;
  4. 负责推动前端架构和框架在各业务线落地实施;
  5. 负责网站前端性能、质量等前端监测平台的建立,并根据监测结果进行分析和优化,不断提升网站性能及开发质量等;
  6. 把握前端技术发展潮流,牵头前端新技术的研究,并用新技术推动业务发展;
  7. 牵头前端知识体系的建设。

###洋码头
职位描述:

  1. 负责网站前端架构的建立和实施,主导前端框架开发,并据此制定合理有效的开发规范;
  2. 负责梳理和优化前端开发流程,搭建高效集成的前端开发环境,提高前端开发质量和效率;
  3. 负责复杂业务的前端方案设计和技术选型;
  4. 负责推动前端架构和框架在各业务线落地实施;
  5. 招聘团队成员,培养和指导工程师工作,帮助工程师获得成长。

沪江网架构师的关键词是:框架、规范、流程、效率和质量、推动、新技术研究

飞牛网架构师招聘关键词:框架、规范、流程、质量和效率、方案设计、技术选型、推动、性能优化、新技术研究、知识体系

洋码头架构师招聘关键词:框架、规范、流程、质量和效率、方案设计、技术选型、推动、招聘、培养和指导

仔细的看下这三家上海互联网公司的招聘,发现,竟然80%雷同,纯属巧合?

据我以往的招聘经验,估计是HR也不知道怎么写,技术总监也不了解前端知识体系,就网上看人家的招聘JD来山寨一份,再做点修改。洋码头的架构师因为要兼团队leader的角色,所以对招聘和人员培养有点要求。沪江网和肥牛网基本差不多吧,可能是飞牛参照沪江的,然后自己再补充一点。

不过不难看出,作为一个架构师要对开发流程负责、要对开发效率和质量负责、要建立前端开发体系和框架、然后就是技术选型,比如你要用requireJS还是用seaJS,是用jQuery还是用YUI或是自己折腾一套框架,这些都是在项目开发前期需要充分规划好的。另外我觉得飞牛网的JD比较全面一点,作为架构师更要注重团队的知识体系的建设,重大项目架构的规划和评审、项目性能优化、新技术研究和推广、团队技能提升、打造良好的团队技术氛围、培养人员、解决技术问题、推动重大项目。其实这些与很多公司的前端经理职位的职责是重复了,但是我觉得架构师的职责更加单纯吧,从一个打杂的职位变成了一个纯技术的职位,人的精力真的是有限的,我做leader一会要忙着和PD去PK,一会要参加那个什么会议,一会要帮人批个什么流程,每天杂事忙都忙不完,哪还有精力去关注技术发展。

互联网正在往小而美的方向发展,互联网职业更是一样,术业有专攻,互联网企业分工越来越细。只有专注,才能做好一件事情。

如果你现在做着前端开发工作,想提升更多的能力,不妨考虑一下前端架构师,掌握整个系统前端架构的能力,扩大专业的广度。目前这种职位依然不被很多公司重视,很多公司都不设此职位。但我相信,随着互联网技术的快速发展,WEB端和移动端将需要越来越多的前端架构师。前端工程化正在起步,你应该已经了解过grunt、glup或FIS,试想再过N年后,前端工程化能实现PSD自动生成规范的HTML,只需要做少量的手工工作,JS也完全有依赖的库,只需要写少量的代码,工作效率大幅提升,前端工程化是否会让很多前端工程师另谋职业呢?这是个值得思考的问题。

最近看到知乎上有一条关于前端架构师的答案,感觉写的挺靠谱,在此也分享下,说的是前端架构的一些范围:

传统软件架构描述的对象是直接构成系统的抽象组件,侧重于系统的抽象、拆分、组织方式等。所以如果从传统软件架构定义出发,前端架构可能就是指前端项目的系统设计了。在进行系统设计之前,由于前端开发语言缺乏一定的工程能力,所以web前端架构师相比传统软件架构师还应该能提供以下开发基础的支持:

  • 开发规范:开发规范设计非常重要,设计良好的开发规范应该以实用性为前提,可以提升开发效率,降低维护成本。常见的规范主要是针对模块化开发定义的,想象一下,下面的规范示意图是不是能对开发和维护有极大的帮助:

  • 开发模型:主要是模块化开发。前端由于编程语言的问题,没有原生的模块化支持,所以架构师在做架构设计之前,要先提供模块开发体系。模块化开发体系设计挺复杂的,完整的模块化体系要统一js、css和模板的模块化处理,此外,js、css模板中的资源(图片等)引用也是要考虑的问题。此外,模块化框架肩负着资源的加载控制,要面对性能优化,所以,好的架构师给出的模块化方案应该是能把性能优化做到框架中,性能是一个工程问题!

  • 构建工具:还是由于前端开发语言的问题,前端还需要构建工具配合,才能完成开发规范、开发模型的落地实现。这部分也许有人认为是非必须的,但是我可以给出完整论证证明标准前端项目必须经过构建,这里就不展开了。总之,前端架构师在给出规范、模型之后,还要给出配套的工具来保证它们的实现。

web前端架构师至少要提供以上3项之后才能开展正式的架构设计,我觉得这部分是衡量一个架构师设计能力的重要指标之一。基础搞定了,架构设计的开展才能顺利。没有标准的模块化支持,架构设计很难做。

此外,由于web前端的产品模式与传统软件有很大差异,所以我觉得真正的前端架构师还应该能考虑以下问题:

  • 项目部署:前端项目部署应该由前端架构师来决定,这里涉及到网络性能优化和开发规范对接的问题,所以前端架构师要理解工程部署的过程,并把开发和部署打通,否则开发受限于部署,架构设计会遇到阻碍。

  • 组件化与组件生态:由于前端面向的是界面设计,所以在模块化之上还有组件化开发模型需要架构师提供。此外,项目中一些可复用的模块或组件应该有一定的复用渠道,这部分我称之为生态。架构师应该提供这样的渠道来解决多个团队或项目之间的代码复用问题。

  • 前端统计:前端统计包括性能统计、访问统计、用户行为统计、错误统计、安全监控等,虽然有些统计属于产品指标,但在大数据时代,前端研发的方向应该有一定的数据做指导,前端架构师必须关心统计数据,并能提供统计方案、统计平台是一种衡量指标。

  • 前端安全:这部分也应该有架构师负责的部分。主要是在开发、统计的过程中对前端安全做保障,比如xss修复、页面脚本注入监控等

  • 系统测试:很多人总是尝试用API测试方法论中的单元测试来测试前端项目,其实是片面的。前端测试属于GUI测试范畴,前端项目中使用的框架、类库一般由外部提供,已经由API测试做了质量保证,而项目中的测试应该主要集中在GUI测试上,这部分目前没有好的解决方案做支撑,所以也没有什么好的衡量办法。

以上就是我觉得衡量前端架构师的基本要求,现在已经不在是“写一个jquery就是架构师”的时代了,前端本应该是一个系统化、工程化的理论体系,涉及到很多方面,前端工程师的工程化意识应该加强。

未来的前端工程师招聘要求中会多一条:有WEB前端架构的能力。真不逗你,我已经看到一些公司的JD有这么要求了。

”人人都是架构师“的时代正在来临了。