说说前端工程与前端工程师
为什么需要前端工程
因为大规模工业化生产的需要
前端工程的定义
前端工程是一套关于如何保障开发质量与开发效率的系统方法论及其配套的技术方案体系
-
质量:持续的满足一系列指标,能够确保整个生命周期内质量是可控的
-
效率:效率由产出与成本定义,提高效率就是提高单位消耗的产出,或者降低同等产出的成本,更简单的说,效率就是成本,效率意识就是成本意识
前端工程的范畴
前端工程的核心内容是针对特定业务创造最优的技术方案组合,有的方案是用现成的,有的方案是自己造的
前端工程专注于解决前端开发的质量与效率问题,但并非所有实现质量与效率的方法都属于前端工程的范畴,前端工程能解决的问题是有限的
-
不应该考虑人的能力,工程是一套与人无关的、通用的方法,人才培养不属于前端工程的范畴
-
不应该考虑上游决策、需求与节奏是否合理,这个属于业务策略和管理的范畴,无法靠前端工程消化解决
-
影响效率的因素有很多,比如公司网速、沟通问题、工作方法、精神状态...这些也不属于前端工程的范畴
前端工程保障效率和质量的整体思路
-
质量
-
测试
-
人肉测试
-
自动化测试
-
灰度测试
-
专项测试
-
-
监控
-
故障监控
- 供应链监控
-
性能监控
- 关键指标巡检
-
业务监控与数据运营
-
-
标准化
-
技术架构标准化(核心目标是:控制复杂度)
-
流程标准化(核心目标是:风控)
-
供应链标准化(UI/UX 设计、接口、容器、CDN...)
-
-
-
效率
-
复用
-
技术方案的复用,write once,run everywhere
-
知识经验的复用
-
-
并行
- 前后端分离
-
自动化
-
基建/工具链
-
-
为什么需要前端工程师
前端是终端研发精细化分工的产物。是在什么情况下分出了前端这么一个工种呢?或者说分工在什么情况下会发生?当分工能够产生帕累托改进时,分工就必然会发生。前端赖以独立的帕累托改进是什么呢?是并行。前后端并行开发总体上看是可以提高效率的,因此这种分工是合理的,也因此前端是有存在依据的,不会朝不保夕、关停并转。而且随着前端业务复杂度的增加,前端本身的知识容量足够支撑起一个专业工种。所以在可预见的未来,前端不会消失。不仅不会消失,大前端工程师会越来越受欢迎。
标准化
前端是一种中度标准化的事务。在工业开发中,由于受框架约束,一百个人产出的代码大体上套路都是一致的,但仍有上中下之分。
前端有可能演变为高度标准化的事务吗?其实这不是前端的问题,而是所有职业的问题,所有干活型的职业基本的演变方向就是标准化,只有成为可随时替换的标准零件,从公司大局上看,质量才是可控的,组织才是有保障的。所以在前端工业化比较先进的公司,低阶的、面向常规业务的前端标准化程度会越来越高。
职能
前端的核心职能是高效、高质量的实现业务需求。这里面有两件事:实现业务需求 & 质量与效率
如何评价前端的职能/价值
-
面向业务
-
特殊需求都能实现,常规需求做得又快又好
-
线上 bug 与客诉、线上性能、提测质量、提测延期、上线延期
-
-
面向质量与效率
-
用技术手段控制代码质量和线上质量
-
用技术手段提高开发效率、测试效率、上线效率、维护效率
-
-
面向团队组织
-
建设技术影响,为公司吸引人才
-
建设成长体系,为公司培养人才
-
仅就前端而言最重要的是什么?就是掌握/创造前端领域所有问题的解决方案,尤其是关乎核心功能、质量与效率的解决方案,同时有所专长
前端的副业是创造技术影响力,为公司吸引人才,包括写博客、技术分享以及通过开源技术方案解决更多人的问题
前端需要驱动业务增长吗?绝大多数业务是没办法靠前端驱动的。所以前端是一种类职能部门,是资源消耗型的,主要负责提供服务
什么是“好”前端
当我们说一个前端很优秀或很厉害,到底是在夸什么呢?
活儿全,什么都会干,不管多难,不管多变态的问题,都能解决
提供了一种解决普遍痛点需求(通常都是关于效率和质量的)的方案并得到广泛的认可与采纳,有较大的影响力
除了前端,很多别的技术也操得六
代码写得好,活儿好,业界标杆
有独立的、深度的思考,有成体系的思想,对关键问题把握得很清楚,善于发现别人看不到、想不到的问题
技术视野广,对历史和现状都了解,总是能跟进各种新的解决方案,对技术的发展方向有一定判断和洞察力
局限
We are not responsible for profit.
We are not responsible for GMV.
We are not responsible for DAU.
We are not responsible for anything directly related to money.