初级前端突破瓶颈期的一些理解与思考

前言

自 15 年 9 月第一次接触前端开发到现在已经过去了五年多,最开始是从一个很小的外包团队团队出身,没有带,没人管,几乎一个人干了 2 年多的活。

做了接近 3 年的组长,碰巧近期团队在调整,今年也经历了很多事情,回想一下自己这一路倒也挺有感触。

虽然我不是一个很好的组长,但也见过不少五年工作三年经验情况的同学,他们在遇到瓶颈期时候的迷茫与无措。

毕竟自己算过来人,写一下对初级前端怎么样突破瓶颈期的一些理解与思考,希望能对部分同学有些启发跟帮助,也欢迎留言讨论。

什么是瓶颈期

初级前端的定义一般工作经验是 1 - 3 年,注意是 1 - 3 的工作经验而不是工作年限。

很多同学经常有这样的情况,业务实在太多,能写完这么多业务已经花掉日常的时间跟激情,再也没有时间、精力去折腾了剩下的事情。

每个人的熟练度是有限的,最开始工作的时候,一个小项目或者需求开发时间需要一个月,而在工作一年或者更短的时间内,接受一定的业务毒打,使得框架熟练度、业务理解提升,可以将开发时间缩短到半个月。然而这个就是普通开发的极限,没有办法再借助熟练度来提高开发效率之后,就会很进入一段迷茫期。

在现有的技术与熟练度已经完全能满足现在的业务需求,公司给研发安排的内容都是占据预估好的时间。那么这个时候就是初级前端遇到的瓶颈期了。或者说这是任何一个阶段的研发都会遇到的一个瓶颈期。

减少无效的工作

什么样的工作是无效(没有效率)的?

  1. 重复的业务重新写
  2. 重复的功能反复写

例子1:登录业务

大部分活动 h5 都是需要开发新项目、新的代码,而很多业务都需要判断登录态,如果你也碰到这个问题可以尝试下面的解决方案

将所有的登录逻辑全部封装在 sdk 中,在开发新的活动的时候,可以将 sdk 直接通过 cnd 引入,判断当前环境未登录的情况下,拉起登录界面,进行登录。

这里推荐同学用 Rollup 去开发一个 Library,比较方便。

例子2:权限业务

在中台系统中,基本上每个业务中台(比如订单、客服等等)都会有对应的权限控制。每个系统都要写权限控制的话,会很耽误时间,即使每次都是从上个项目 copy 过来,也很难保证未来权限系统统一升级的问题。

对微前端的熟悉的同学,可以将整个权限业务剥离成一个独立的子工程,然后每个业务中台直接引用权限服务即可,这样可以保持权限业务的整体升级,并且不会影响到本身业务同学的开发。

如果对微前端并不是很熟悉的同学,可以参考 git submodule 或者 npm 包依赖等等,也可以将业务抽离,统一开发、升级,只不过更新好的权限服务需要重新构建发布而已。

例子3:搭建基础脚手架

每次新开发项目的时候,会有一些基本的配置都不需要改变,比如:

  1. 请求的测试、预发、生产地址
  2. 构建命令,各种环境的配置
  3. 每块业务的特殊使用方法(如活动业务经常会使用到的分享功能等)

可以使用 node 开发一个自己的 cli 工具,再根据不同的业务预先配置好多份项目基础工程,这样可以根据不同的业务拉取不同的基础模板,减少新业务开发的搭建、配置时间。

例子4:自己的组件库搭建

虽然业内有很成熟的组件库比如 Ant Design、Vant 等等,但是要贴合每个公司自己的特色与业务,通用的组件库肯定是远远不够的。

可以配合 UI 设计,将公司的主体风格、基础组件全部规划一下,有意识的去沉淀自己的组件库出来。

在后续的迭代或者新的项目研发的时候,可以通过自建的组件库,快速完成界面的基础搭建。

这件事要主动去推动,不然一般很难落地。


上面的一些小例子,在第一次写项目的时候就有部分的基础代码,在第二个项目开发的时候就应该有意识的去设计、规划将这些内容进行封装、提取,从而在第三个项目的可以利用之前的设计跟基础的代码提高你的开发速度。

通过 1-3 年的项目训练,其实你应该具备,从多个项目抽取公共功能、业务,找到相似、相通点进行合并封装的能力(拆解项目、组合封装)。

这个理论上是良性循环的,可以将缩短后期迭代项目的开始时间,在这个过程中,自己也扮演不同的角色,得到不同的成长与学习的机会。

上述的工作肯定是会额外占用业余时间,但这也是一个学习、提高的过程。实际上,提高了效率之后,日常工作中反而会有一定自由的时间,去良性循环这个过程。

借助工具提高效率

vscode 一大把提效的插件,就不多提了,什么代码格式化、自动提示、资源代理这种,大家都是前端肯定都经常用上。

但是不要把自己局限到前端的这个圈子里面,可以用点额外的工具来提高自己的效率。

这里的效率不仅仅是前端开发这点内容,把眼界拓宽一点,放在整个研发工具链路上。

在需求-设计-研发-测试-上线-业务反馈这整个链路中,看看有什么样的工具可以提高前端的效率

将可预见、将发生、已发生与前端有关的问题都考虑进去。

这里面很多事情可以用 node 来做,可以自己研发,但是要考虑性价比成本的问题,不一定自研或者 node 是最优选择。

Jenkins Or Gitlab CI/CD

每一次的构建是否很痛苦,很耗时,而在多人协作的时候,还可能因为每个开发者的系统环境不同而导致线上异常问题出现。

当你遇到上述问题的时候,首先不要逃避,也不是再打一个新包去解决,而应该引入一个构建工具去帮你完成这些问题。

这些问题在大公司、大团队可能有运维或者有成熟的 devops 体系去完成,但是这并不影响你去学习、使用来提高自己。

如果团队中缺乏这些的情况下,使用它将大大节约你在构建部署这块的精力。

Fiddler Or Chales

移动端调试一直比较麻烦,除了测试环境可以使用 vconsole 工具之外,线上可以借助此类抓包工具,快速定位前后端分离项目的一些问题所在。

一般 mac 系统,Chales 用的比较多,windwos 用 Fiddler 多,选择你喜欢的就行。

Sentry

从来没有百分百完美的系统,上线之后的环境复杂度远超测试涵盖的用例,如果想更好地完善你的项目,团队如果没有足够的资源或者成熟的线上预警体系,引入 Sentry 将是一件性价比十足的事情。

这样可以节约你在找一些莫名其妙 bug 的时间,也是一件提高效率的利器。

Sentry 是一个日志平台,分为客户端和服务端,客户端(目前客户端有 Python, PHP, C#, Ruby 等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个 Web 界面方便查看。Sentry 由 Python 编写,源码开放,性能卓越,易于扩展。

Sketch And Pixcook

UI 给设计图的时候,仅仅肉眼是没办法还原的,拿到 psd 又需要会 ps 工具什么的,这里你可以推荐 UI 使用 Sketch 来给你设计图,既方便体积也小。实在不行,Pixcook 也能通过 psd 自动生成标注的前端代码,两者都是设计研发利器。

不要局限于框架

雷神的灵魂拷问:你到底是雷神还是锤神?放在前端也是一样,你是一个前端工程师还是 Vue or React or Api 开发呢?

所有的框架都是开发业务的工具,在成熟的体系下,没有一件工具的价钱是超过人工的。你要考虑的不是怎么做好一个框架开发,而是怎么成为一个合格的工程师。

现在各种 web 框架层出不穷,各家小程序百花齐放下,多端框架也应运而生。学会一个框架的使用,其实并不难,最多两个项目,就能够熟练去使用了,因为框架的诞生就是为了让你快速去完成项目的。

底层技术与上层设计掌握的足够牢固,即使换了一个新的框架,你也可以快速上手。但这并不代表,你不需要去了解对应框架的设计与 Api, 而是避免成为 Api 工程师。好好想想自己作为工程师的核心竞争力到底是什么?

当然要是一个框架能玩出花,能解决所有的业务问题,那也是相当牛逼,但实际情况这种框架或者人很少。

总之能解决业务的研发才是能赚钱的研发,能赚钱的研发才是好研发。可能这段话说出来会被打,但现实赚钱的确实都是老板,而不是一个开发。

另外无论是底层知识、算法、设计的多厉害,但是一定不要脱离业务基础。为了面试,很多同学会去刷题、刷算法,确实很有效果,但是最重要的要学会怎么将这些所有的知识体系运用到实际项目中去,让他能够发挥最大的价值。

技术深度相当于内功,肯定修炼的越深厚越好,但是一定要配合业务运用这层外家功夫,方能成为绝世高手。就好比郭靖一身高强的内力但还是需要降龙十八掌才能御敌。

生死看淡,不服就干

单干

如果你在一个小公司,小团队的时候,就没事多折腾折腾自己,有什么新技术就上,前提是:

  1. 有一定的心里预期,不成熟的技术坑会非常多,内外部都会有不少的压力
  2. 预留足够多的时间去试错,业务一定是保障第一位
  3. 要有一定的备案,如果在新的技术解决不掉问题的时候,能够快速拿出备案解决
  4. 一定不要在主要业务中使用,如果出现问题,会导致团队的信任危机,影响后期发展,不利于后期合作
  5. 要有开放的心态,新的技术运用起来不是优越感爆棚,解决问题的同时,可以分享给团队的每位想要了解同学

团队

如果你是在一个大公司,一个成熟的团队,那么能做的事情只会更多。

记住一个点,越大的团队,业务链路就越多,细节就越多,能下手的地方就更多,能拿到的资源也会更多。

所以要敢于承担责任与任务,在关键时刻顶住。

比如在新项目启动的时候要有足够的勇气主动去申请承担。前提条件是,你本身就要扛得住,值得信任,是一个可托付靠谱的人。

或者可以主动参与产品链路,与产品、研发、测试、运维、客服等等一系列与之相关的人员沟通,一起找到目前存在的痛点、难点,然后想办法去解决。

最好的办法是将你想做的事情,描述成他们想要的东西,然后他们可以借助你的资源来完成这件事,最后双赢局面出现,皆大欢喜。


写在最后

无论在哪都一样,做技术的切记心浮气躁,要赖得住寂寞,做得了冷板凳。

交流讨论

(0)

相关推荐

  • 大前端知识体系整理(一)——各级别工程师的技能树

    前言 本文为笔者回顾前端开发历程的一份总结和梳理,是对自己走过的路进行的复盘.想要总结出一些普适的规律,一是用来自己反思和规划未来,二是为后来人做一些力所能及的帮助.本文虽是作者原创,但肯定也看过其他 ...

  • 聊聊互联网那些主流技术栈

    技术栈定义 一般来说是指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的或功能.也可以指掌握这些技术以及配合使用的经验. 举个例子: 开发一个普通OA(办公自动化)系统,我们 ...

  • 2020年的前端该怎么学?

    首先简单介绍下自己,目前七年前端实际项目经验,有一线大厂经验,也去过国外.算的上是前端老鸟了,这篇文章是个人的经验和心得,不吹不黑,中肯的态度来说,希望能够帮到大家. 都2020年了,我现在学前端还来 ...

  • 字节跳动最爱考的前端面试题:Node.js 基础

    前端技术优选 今天 前几天,跟我一朋友聊天,他现在是阿里的架构师,说:「他们根本不知道,现在的电商大促有多么依赖 Node.js.」 说真的,我倒并不意外.作为一个定位明确的高性能 Web 服务器,N ...

  • 学习这几个方法,帮你突破瓶颈期,提高减肥成功率!

    减肥是一件需要方法跟技巧的事情,很多人减肥失败是因为方法错了,或者坚持的时间不够,导致身材无法真正瘦下来. 减肥刚开始的时候,身体属于燃脂黄金期,瘦身速度是比较理想的,但是,过了头2个月的黄金期以后, ...

  • 突破瓶颈期,改变关注圈。

    比起糟糕的坚持,我选择了停在脚步休息,原因有二,一是只有停下来休息我才更可以有更多的力气,继续前行.二是因为我只有停下来,才可以有时间和机会更好的思考,接下来的转机在哪里. 少焦虑 不知道从什么时候开 ...

  • 字练久了不进步,怎么回事?怎么办?怎样突破瓶颈期呢?

    字练久了不进步,怎么回事?怎么办?怎样突破瓶颈期呢?

  • 四大黄金增肌法则,让你突破瓶颈期,肌肉围度再提升2cm!

    健身是为了修炼出一副好身材,新手刚开始训练的时候,处于黄金健身时间段,身体从不运动的状态向运动的状态改变,你会身材跟体质都会出现明显的变化.  但是,当你健身计划坚持2个月后,你的心肺功能有所提升,肌 ...

  • 体脂降不下来怎么办?6个方法突破瓶颈期,让身体加速减肥

    减肥不是一件容易的事情,你会遇到各种各样的问题和障碍,这个时候就需要及时处理和调整,这样才能更快的减肥 如果你在减肥期间,控制了嘴张开了腿,但达到一定程度后体重并没有下降,你可以尝试以下方法来帮助突破 ...

  • 几个方法突破瓶颈期,让你体重持续下降,恢复一副好身材!

    减肥期间,你是否发现刚开始减肥的时候,体重稳步下降,身材也在逐步变瘦.但是,坚持2-3个月左右,减肥效率越来越差,体重下降开始停止了,身材也不再发生变化了? 这可能是减肥瓶颈期的出现,这个时候无论你是 ...

  • 减肥效率差?3个方法突破瓶颈期,让身材继续瘦下来!

    刚开始减肥的人,减肥进度是比较理想的,而燃脂效率也比较高.一般来说,新手减肥前2个月处于红利期,当你迈开腿.管住嘴,身材就会产生热量缺口,身材会明显瘦一圈. 但是,身体也是很聪明的系统,一旦习惯了你的 ...

  • ​肾病越治越重?如何突破瓶颈期,稳住肾功能?

    肾病的发展过程大致有两种情况,一种是发现的及时,尽早确诊,积极配合治疗,病情逐渐趋于稳定,没有肾衰竭风险.另一种是虽然也尽早诊治,但治疗过程中却不是很顺利,反而恶化速度越来越快,不知不觉甚至尿毒症. ...

  • 练腿的4大好处,促睾效果好,有效强壮下肢,突破瓶颈期!

    健身,你练腿了吗?腿部肌群是身体的大肌群,是力量的源泉.无论男生还是女生,不管是年轻人还是老年人,健身的时候都要坚持练腿.虽然练腿比较痛苦,但是练腿的收获是你受益无穷的. 坚持练腿的好处是很多的,比如 ...