人物访谈|扎根社区的工程师,月影的前端人生

2004年刚毕业,月影以管培生的身份加入了一家传统的软件公司——金蝶软件。因为是半年轮岗实习制,他先后接触到售前、售后、开发等不同岗位。半年后回到总部,月影开始了自己的编程生涯。他回忆说:“回到总部的信息管理部门以后,我有机会参与到公司后台的MIS系统开发。虽然现在听起来没什么特别之处,当时却是一个先进的概念。因为这个系统里有很多复杂的交互,没有‘前端开发’去解决,我就抱着尝试的心态,第一次接触并开始学习 JavaScript 。”

那时,国内还没有前端开发这个行业。凭借对产品界面交互的兴趣,月影开始系统地学习JavaScript,成为国内比较早的前端开发者。

我接触编程比较早,但是之前写的比较杂。在学校里、实习的时候用过 C、 C++、C# ,也写过 PHP ,但没有写过 JavaScript 。第一次接触 JS 后,发现自己对前端的 UI 挺感兴趣。所以从05年开始,正式成为了国内比较早的一批接触前端的程序员。当时在一些技术社区,我也会做分享和交流。

2008年月影来了北京,正式开始带前端团队。

后来十几年的工作中,月影大部分的时间里都在做前端开发和技术团队的管理。除了日常团队管理外,也做一些前端相关的技术、研发项目和开源框架。

我觉得我自己其实算是一个 JavaScript 程序员,平时空闲的话还会写写代码。之前做的开源项目,公司里面也有一些其他的团队在用,所以也会偶尔帮忙改个代码。

技术中台前端团队:降低企业成本,为业务团队赋能


月影目前在字节跳动技术中台前端团队,部门定位是中台,所以会有搜索、游戏、用户中心、国际支付、技术社区、用户增长等业务方向。在这样一个中台团队的背景下,支撑业务部门提效、降低企业成本是团队重点关注的方向。

虽然业务特点不同,但共同点是需要给业务赋能;我们更多的会考虑如何去赋能,考虑我们的工具对业务的支撑能力,这是更多会去考量的。

作为中台前端团队,与业务线中的团队分工难免会有些重叠。如何避免重复造轮、高效推进成果产出也是中台团队必须要思考的问题。

如果说一些团队和业务,它还处于孵化期,那我们中台会更多地深入到业务一点儿。但如果说这个业务团队处在一个成熟期的话,我们其实更多地是提供流程工具和一整套解决方案的支持。更多偏业务的东西,还是会闭环在 业务里面去实现,所以这个其实是一个相互配合的状态。

我们中台这边也会提供一些相对通用和完善的产品,这些技术性产品可以帮助业务更好地达成业务目标,以更低的成本去试错。

除此之外,如何让中台团队发挥更大的价值、赋能更多业务团队降低成本,月影也有自己的想法。

我们的基础设施是贴着业务走的,像搜索、用户增长,从底层连接公司内部基础架构的团队,用已有的基建能力,去做贴合业务需求的基础设施。

但因为团队比较大,业务方向和场景比较多,我们需要考虑如何与业务团队的能力横向打通,把适用于业务团队的通用能力抽离出来,并且打磨得更好、支持更多的业务。

字节内部使用的搭建平台,有基于配置化的搭建、低代码的搭建、无代码的搭建。配置化的搭建比较适合于给研发团队使用;低代码搭建可能适合于产能的团队,无代码搭建的话,就会更适合运营同学。

虽然它们已经是一套完整的体系了,但我们期望在丰富的场景中,把它做得更完善一些。因为包含内部场景以及 to B 的外部客户需求,我们提供的底层代码搭建的能力是可以更抽象、更完善的,能够适应不同的业务场景,在各业务线上去提效。

我希望这些工具能够真实地帮助业务效率提升、改善质量。与此同时它本身足够完善,能代表整个行业发展最先进的技术。在未来的话,我们可能会把这些能力通用化,甚至考虑开源或 to B。

对前端开发者的思考:永远保持敏锐度和好奇心


字节文化里面有一条叫 多元兼容 的团队理念。每个组织一定是多元化的,没有统一的标准去衡量每一个候选人。如果每个人都能发挥他的长处,团队才会发展得更快更好。

带着这样的理念,月影会从业务规划能力、技术规划能力、管理成熟度思考团队的管理与建设。

所谓的业务规划,就是要关注业务的发展、讲清楚业务的未来发展方向和整体前景,以及它当前急迫需要解决的问题和面临的挑战。要理解背后的逻辑,从技术侧去思考如何改进业务。这样,在处理问题的时候,才会更有前瞻性。

第二是技术规划。当清楚业务规划后,相应也会知道业务在未来的挑战点,所以需要思考有哪些可以通过技术或者通过技术储备来解决的,同时就会把业务规划转化成团队对应的技术规划和技术挑战。

比如某业务在未来计划会发展到多个平台,那在初期的阶段,就需要把技术投入到研究跨平台、跨终端的这些方面。而不是当团队要做小程序版App时,发现团队没有小程序开发的经验,这肯定是不行的。

所以,我们需要基于业务去做一些技术规划,在技术规划的过程中看到技术挑战点。当前用的这些工具和框架,在这个跨端能力上有什么限制,有没有好的解决方案。因此,不一定说技术能力要多好,要多深,但一定要有这方面的敏锐度和前瞻性,能够提前去看到这个业务发展中,给团队带来的一些技术挑战,然后提前布局。

第三个是管理成熟度,思考团队多元化的发展方向以及未来的成长空间。作为团队管理者,你需要为团队里每一个同学规划他未来一年到两年的成长路径,并且了解团队成员整体的诉求是什么样的,怎样把他们个人的诉求和公司对他们的要求和发展结合起来,能够让他们更长远地陪伴这个团队,陪伴这个公司走得更远。像这样的问题,是需要偏管理层的成员去考虑的。

对于专家型的角色来说,他除了在技术上有一定的深度,也能在技术规划里面承担比较核心的角色,能够敏锐地看到业务发展的趋势,然后去做好技术储备。

我发现一些 IC 角色经常会犯的一个问题,就是埋头研究技术,不懂得合作。个人的力量是有限的,其实一个人是需要能够更多地影响整个团队,带动团队里的其他人的。他要能指导不同职级、不同方向的成员更好地成长,这样的价值就会比单纯埋头做事情的大很多。

你会发现说,这些高阶的成员不管是技术方面还是管理方面,抑或是软素质方面表现得都很好。比如说,会沟通、能指导,能够意识到做这些事情的重要性。

就新人普遍提到的「行业发展速度快、新技术越来越多,学不动」的问题,月影也在采访中给出了他的想法和方法论。

首先我们应该更乐观地看待这个问题,行业发展得快,说明成长空间或者技术发挥的空间更大,所以大家不用太盲目地去焦虑。

同时,我们也应该更加聪明地去看待这些问题,思考一下哪些东西是需要学的?有些知识属于基础知识,相对而言变化的没有那么快,比如很多算法,在很长一段时间内都是比较稳定的。这些对于前端或者其他领域来说都是很有帮助的,所以我们的基础需要打牢并且做得更扎实。

另外一块属于领域知识,当中又分成了通用的领域知识和专用的领域知识。通用的领域知识,最好提前去学习掌握。现在,我们有很多项目都是用 TS 去写的,所以它属于通用的领域知识,需要成员去把TypeScript 给学习好。

还有一块属于专用的领域知识或工具,比如说你要做工程化、工程打包,你去学 Webpack 或者是 Vite ,这就属于专业领域知识,不用提前投入很大的精力,因为他们其实就是工具。所以,当项目里用到 Webpack 打包的时候,再去学习就可以,即便日后把这些知识忘掉了也没关系。大家不用担心,行业今天用 Webpack 明天用 Vite。这些知识本来就不需要提前去学,等到用到的时候再去边学边用就好了。

打开全栈工匠技能包-1小时轻松掌握SSR

两小时精通jq+bs插件开发

生产环境下如歌部署Node.js

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

网易内部VUE自定义插件库NPM集成

谁说前端不用懂安全,XSS跨站脚本的危害

webpack的loader到底是什么样的?两小时带你写一个自己loader

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值