前端工程化是前端业务以及技术架构复杂度提升导致的必行之路,然而工程化并不是普适的... 展开 >
周俊鹏,搜狗地图Web前端主管,负责Web前端团队管理和工程化体系建设工作。主要研究方向为前端工程化和 Web 应用层架构,著有《前端工程化:体系设计与实践》一书。
前端工程化是前端业务以及技术架构复杂度提升导致的必行之路,然而工程化并不是普适的技术或者理论,业务类型、场景、技术架构甚至团队组织架构均是决定工程化具体形态的必要因素。换句话讲,工程化是与实践密不可分的。本专场我们通过分享业内一些经过实践检验的工程化方案,希望能够为大家在前端工程化的探索道路上提供借鉴和帮助。
无论是初创公司,还是像Facebook、Google这样的已经有一定规模开发人员的大公司,其实都面临着一些类似的问题,比如如何让远端的代码质量更高?如何让版本管理更加灵活可追溯?如何让问题暴露在发版之前?如何让上线的应用赋有更高的品质?在其中的众多环节中,业界已有许多可选技术方案,在流利说快速发展的过程中,我们通过将交付前的每个关键点系统化的平铺出来,对比各大厂商的做法进行逐个攻克,从而最终形成了我们自己的一套从代码提交到最终交付的行而有效的高效的解决方案,这套方案使我们打通了整个客户端应用交付前的节操控制体系。
本次演讲将分享流利说大前端针对应用交付前各个关键痛点针对性的解决方案,对比各大厂商,从代码提交、审查、扫描、解析报告等方面切入,借助Gitlab CI/CD平台,Docker以及自研的OkCheck、OkCoverage、OkReport等组件提供行而有效的持续交付工程实践的系统性方案。
听众受益:
1.如何从众多的可持续开发的架构体系中进行选型
2.如何从代码提交到最终交付的各个关键环节让工程师在潜移默化中提高代码的质量
51信用卡前端团队在两年内人数从10+扩展到60+,业务和人员的快速扩充过程中,形成了一套前端工程化实践,其中既有业内的热门方案踩坑,也有一些特殊的最佳实践,特给大家分享出来,希望能够给对工程化感兴趣的同行们带来思考。
演讲主要包括:
1. 基础研发流程
(1)基础技术栈
(2)构建工作流
(3)配套工具链路
2. 前后端分离
(1)基于Nginx的前后端分离方案
(2)统一跨域解决方案
3. 发布体系
(1)自动化git分支管理的演进历程
(2)结合Jenkins打造前端在线编译体系
(3)前端编译时代带来的新可能
听众受益:
1.了解高速发展的中型互联网前端团队工程化演进历程,为类似阶段的公司提供一定的借鉴。
2. 51特色的深入实践和大量的踩坑经验,可以为听众带来在前端工程化方向的思考。
有一句名言叫“Move fast and break things”, 倡导尽可能提高开发速度,不怕犯错。然而,随着公司体量变大,“break things”的代价也越来越无法忽视。在Twitter Web团队里,我们倡导“Move fast with confidence”。然而,怎样构建开发架构体系使团队对新代码有“confidence”?怎样在保证“confidence”的情况下依然贯彻“move fast”?本次演讲将结合Twitter Web的前端工程化实践,围绕这个主题进行深入的探讨。
演讲提纲:
1. 搭建快速反馈的工作流
开发,唯快不破
提升开发速度的三重境界
2. 将一切自动化
让代码再飞一会
从提交到发布,Twitter Web的自动化实践
3. 不冷酷的代码审查
当我们在谈代码审查时,我们在谈些什么
代码审查的的记与忌
醉翁之意,比酒更多
4. 发布之后的那些事
是终点,更是起点
监控与预警
以史为镜
听众收益:
1. 了解国外大型互联网公司前端开发工程化的核心理念和最佳实践
2. 从深入具体的案例中对提高前端的开发效率和质量产生新的启发
工程化通常都会经历两个阶段,工具化和自动化。第一个阶段中,通过创造足够多的工具能让一些比较繁琐的、重复性强的工作变得容易起来。有了足够多的工具后,自然就会朝着研发中各个环节的自动化上努力。在我的团队工程化实践中,对其中的一些难点做了技术上的突破,甚至将设计也纳入到自动化的环节中。这些突破将在此演讲中分享给大家。
同时,在完成了自动化之后,如何进一步提升研发效能仍然是我们要思考的问题。我们在探索中发现,通过设计结构化的语言,是能够将“需求”这最初的一环也纳入到整个研发工程化体系中的。并且可以预见将需求纳入之后,现行的人工智能技术可以以极小的成本接入其中,很快就能在 web 领域实现让机器写代码。
此次演讲的整体大纲如下:
1. 工具化和自动化时代的关键问题
(1) 研发体系的概览
(2) 自动化中的关键环节——运行时框架
(3) 将设计纳入自动化的实现
(4) 前后端的新定义
2. 后工程化时代的突破
(1) 现阶段关于机器写代码的几个关键问题
(2) 结构化的需求语言
(3) 关键指标的监控
(4) 可展望的机器生成 web 应用场景
听众收益:
1. 从研发体系的角度重新看工程化
2. 了解解决自动化中关键问题的方法
3. 了解突破 web 研发本身瓶颈的探索方向