初级前端如何突破瓶颈(瓶颈期怎么办)
什么是瓶颈期
初级前端的定义一般工作经验是 1 - 3 年,注意是 1 - 3 的工作经验而不是工作年限。
很多同学经常有这样的情况,业务实在太多,能写完这么多业务已经花掉日常的时间跟激情,再也没有时间、精力去折腾了剩下的事情。
每个人的熟练度是有限的,最开始工作的时候,一个小项目或者需求开发时间需要一个月,而在工作一年或者更短的时间内,接受一定的业务毒打,使得框架熟练度、业务理解提升,可以将开发时间缩短到半个月。然而这个就是普通开发的极限,没有办法再借助熟练度来提高开发效率之后,就会很进入一段迷茫期。
在现有的技术与熟练度已经完全能满足现在的业务需求,公司给研发安排的内容都是占据预估好的时间。那么这个时候就是初级前端遇到的瓶颈期了。或者说这是任何一个阶段的研发都会遇到的一个瓶颈期。
减少无效的工作
什么样的工作是无效(没有效率)的?
- 重复的业务重新写
- 重复的功能反复写
例子1:登录业务
大部分活动 h5 都是需要开发新项目、新的代码,而很多业务都需要判断登录态,如果你也碰到这个问题可以尝试下面的解决方案
将所有的登录逻辑全部封装在 sdk 中,在开发新的活动的时候,可以将 sdk 直接通过 cnd 引入,判断当前环境未登录的情况下,拉起登录界面,进行登录。
这里推荐同学用 Rollup 去开发一个 Library,比较方便。
例子2:权限业务
在中台系统中,基本上每个业务中台(比如订单、客服等等)都会有对应的权限控制。每个系统都要写权限控制的话,会很耽误时间,即使每次都是从上个项目 copy 过来,也很难保证未来权限系统统一升级的问题。
对微前端的熟悉的同学,可以将整个权限业务剥离成一个独立的子工程,然后每个业务中台直接引用权限服务即可,这样可以保持权限业务的整体升级,并且不会影响到本身业务同学的开发。
如果对微前端并不是很熟悉的同学,可以参考 git submodule 或者 npm 包依赖等等,也可以将业务抽离,统一开发、升级,只不过更新好的权限服务需要重新构建发布而已。
例子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 工程师。好好想想自己作为工程师的核心竞争力到底是什么?
当然要是一个框架能玩出花,能解决所有的业务问题,那也是相当牛逼,但实际情况这种框架或者人很少。
总之能解决业务的研发才是能赚钱的研发,能赚钱的研发才是好研发。可能这段话说出来会被打,但现实赚钱的确实都是老板,而不是一个开发。
另外无论是底层知识、算法、设计的多厉害,但是一定不要脱离业务基础。为了面试,很多同学会去刷题、刷算法,确实很有效果,但是最重要的要学会怎么将这些所有的知识体系运用到实际项目中去,让他能够发挥最大的价值。
技术深度相当于内功,肯定修炼的越深厚越好,但是一定要配合业务运用这层外家功夫,方能成为绝世高手。就好比郭靖一身高强的内力但还是需要降龙十八掌才能御敌。
生死看淡,不服就干
单干
如果你在一个小公司,小团队的时候,就没事多折腾折腾自己,有什么新技术就上,前提是:
- 有一定的心里预期,不成熟的技术坑会非常多,内外部都会有不少的压力
- 预留足够多的时间去试错,业务一定是保障第一位
- 要有一定的备案,如果在新的技术解决不掉问题的时候,能够快速拿出备案解决
- 一定不要在主要业务中使用,如果出现问题,会导致团队的信任危机,影响后期发展,不利于后期合作
- 要有开放的心态,新的技术运用起来不是优越感爆棚,解决问题的同时,可以分享给团队的每位想要了解同学
团队
如果你是在一个大公司,一个成熟的团队,那么能做的事情只会更多。
记住一个点,越大的团队,业务链路就越多,细节就越多,能下手的地方就更多,能拿到的资源也会更多。
所以要敢于承担责任与任务,在关键时刻顶住。
比如在新项目启动的时候要有足够的勇气主动去申请承担。前提条件是,你本身就要扛得住,值得信任,是一个可托付靠谱的人。
或者可以主动参与产品链路,与产品、研发、测试、运维、客服等等一系列与之相关的人员沟通,一起找到目前存在的痛点、难点,然后想办法去解决。
最好的办法是将你想做的事情,描述成他们想要的东西,然后他们可以借助你的资源来完成这件事,最后双赢局面出现,皆大欢喜。
写在最后
无论在哪都一样,做技术的切记心浮气躁,要赖得住寂寞,做得了冷板凳。
作者:Cookieboty
初级前端如何突破瓶颈(瓶颈期怎么办)相关推荐
- 初级前端如何突破瓶颈
前言 自 15 年 9 月第一次接触前端开发到现在已经过去了五年多,最开始是从一个很小的外包团队团队出身,没有带,没人管,几乎一个人干了 2 年多的活. 做了接近 3 年的组长,碰巧近期团队在调整,今 ...
- 李成熙:前端如何突破技术与业务的瓶颈
作者:李成熙,Shopee 金融商家前端团队负责人.2014 年度毕业加入腾讯 AlloyTeam,先后负责过 QQ 群.花样直播.腾讯文档等项目.2018 年加入腾讯云云开发团队.2019 年加入 ...
- 红星美凯龙的“高端局”,能助其突破负债瓶颈期吗?
高端智能电器主题馆,是老年红星美凯龙打破瓶颈期的"密匙"? 十月前夕,建材家居行业老大的红星美凯龙在郑州开业全球最大的"智能电器至尊馆",总面积高达2.6万方: ...
- 张鑫旭:说说CSS学习中的瓶颈(个人觉得对突破技术瓶颈都有思想上的指导作用)...
2019独角兽企业重金招聘Python工程师标准>>> 关于作者 张鑫旭,09年华中科技大学毕业,现上海,就职于阅文集团,专注web前端偏前领域,钓鱼爱好者. 本文转载自说说CSS学 ...
- 各阶段产品经理突破自身瓶颈总结(建议收藏)
一.项目执行者--产品经理的初级阶段 刚踏入产品经理行业,大部分事物对你而言都是新的.这阶段,你扮演最多的角色是执行者,把老板的想法落地,协调技术.设计.运营资源,保证产品顺利上线. 同时,你对产品经 ...
- 突破硬件瓶颈(一):Intel体系架构的发展与瓶颈挖掘
软件定义存储SDS正在从容量型向性能型演进,千万级IOPS和微秒级低延迟,非常具有挑战性.3节点标准x86服务器,能否有可能实现1000万IOPS与200us低延迟?这个可以有.硬件性能并不是瓶颈所在 ...
- 好乐买总裁李树斌:10亿,突破技术瓶颈
问题 第一次创业:3C数码商城搜易得 第二次创业:网上鞋城好乐买 为什么创业?是如何选择和做决定的? 只是觉得这个事情可以做,完全是顺势而为. 喜欢做电子商务,也恰好碰到一个做传统鞋类渠道的同伴. 创 ...
- 突破硬件瓶颈(三):旧时代的遗珠——并行流水线架构
20年前,CPU的主流设计是流水线架构,增长流水线层级就可以提升性能.然而AMD的K8架构证明intel的发展方向是偏激的,它用更低的功耗和频率,战胜了使用31级流水线的Pentium 4 Intel ...
- 360数科张家兴:如何突破三大瓶颈,破解金融科技发展难题?
3月6日,上海香港联会.普陀香港联会联合普陀新区联会,IFTA亚洲金融科技师学会共同举办了"沪港合作共创未来"--沪港两地金融科技线上论坛.本次活动通过沪港两地直播连线,探讨两地金 ...
最新文章
- SingleR包注释单细胞数据
- css中 margin: 0px 254px 0px 254px; 是什么意思。
- bnuoj 20950 沉重的货物 (最小生成树)
- maven + spring mvc 创建Java web项目
- git 代码推送流程_Git 101:一个让您开始推送代码的Git工作流程
- 【转】ABP源码分析三:ABP Module
- excel 科学计数法转换成文本完整显示_表格技巧—Excel里身份证号码显示不全的多种解决办法...
- ASP.NET MVC 之 View 测试
- 济南学习 Day 5 T2 am
- 如何在MySQL中设置外键约束
- Linux静态库、动态库的制作
- Day46:数据库引擎、索引、pymysql
- Linux操作系统分区格式Ext2,Ext3,Ext4的区别
- unity打包出来的exe带有dll文件
- 做数据迁移差点累死的程序员有话要说----数据迁移经验分享
- amaze 绝对位置 html,amaze ui 的使用详细教程
- C++:深入理解C++11新特性:Chapter3:左值和右值
- RabbitMQ(6)-Spring AMQP,Spring集成RabbitMQ
- 小学一年级上学期必背古诗文2021-2022学年
- 职场中最重要的情商,是管理情绪
热门文章
- idea 使用svn将主分支修改的代码更新到子分支
- IDEA SVN 代码合并
- 2020(有感而发)常说三分技术,七分人品 在计算机领域真的是这样的吗
- 电子元器件传统寻源模式难适应,供应商系统招投标功能助力企业高效寻源采购
- linux下端口镜像,Linux如何实现镜像端口
- run()和start()的区别
- 读书笔记 | 之Photoshop里Pantone色类型该如何选择
- 【毕设参考】ESP32 + HaaS Python 打造的噪音检测系统,远离喧嚣,安享静谧
- 使用django-sendfile
- postgresql的配置文件中找不到postgresql.conf和pg_hba.conf