美文网首页让前端飞Web前端之路
前端程序员该如何突破技术瓶颈

前端程序员该如何突破技术瓶颈

作者: 教你学编程 | 来源:发表于2020-08-04 15:43 被阅读0次

最近看到有人提问:

本人三年前端开发经验,学历985本科,坐标长沙某证券交易公司。感觉技术已经到了瓶颈期,期间换了工作,依旧感觉难以突破技术瓶颈期。目前掌握的技术栈包括vue和react,但只停留在会用,掌握基础原理的层次,webpack基本可以玩转,nodejs掌握基础。最近在看vue源码,但是实在难以看下去。我该往哪个方向努力突破自我?还是要去大城市大公司吗?

看完提问,我相信很多前端写了三年左右的开发兄弟们都有类似的困惑...

说实话,这个问题让我想起了当年的自己,也是经常感到迷茫,觉得自己会的东西很多,但其实掌握的知识很多都停留在表面上,别人要是往深一问,就懵逼了。

有一说一,当年我是怎么跨越技术瓶颈期的?

如果你也有类似困惑,接下来的内容对你很重要,希望你看时有耐心,看完有信心!

说实话,很多人的问题出在对知识的学习仅停留在浅尝即止的状态,就是学习新知识,能写个 demo,就觉得自己学得差不多了。

这种学习方法是很有害的,首先知识存留度不高,其次是浪费时间,因为你很快就会忘掉。

那怎么改正这种状态呢?时常问自己三个问题:

1.这是什么?

2.为什么要这样?可以不这样吗?

3.有没有更好的方式?

当然,不是所有问题都能适用灵魂三问,但它适用大多数情况。

举个例子:

看过性能优化相关文章的同学应该知道有这么一条规则,要减少页面上的 HTTP 请求。

这是什么?

先了解一下 HTTP 请求是啥,查资料发现原来是向服务器请求资源用的。

为什么要减少 HTTP 请求?

查资料发现:HTTP 请求需要经历 DNS 查找,TCP 握手,SSL 握手(如果有的话)等一系列过程,才能真正发出这个请求。并且现代浏览器对于 TCP 并发数也是有限制的,超过 TCP 并发数的 HTTP 请求只能等前面的请求完成了才能继续发送。

我们可以打开 chrome 开发者工具看一下一个 HTTP 请求所花费的具体时间。

这是一个 HTTP 请求,请求的文件大小为 28.4KB。

名词解释:

Queueing: 在请求队列中的时间。

Stalled: 从TCP 连接建立完成,到真正可以传输数据之间的时间差,此时间包括代理协商时间。

Proxy negotiation: 与代理服务器连接进行协商所花费的时间。

DNS Lookup: 执行DNS查找所花费的时间,页面上的每个不同的域都需要进行DNS查找。

Initial Connection / Connecting: 建立连接所花费的时间,包括TCP握手/重试和协商SSL。

SSL: 完成SSL握手所花费的时间。

Request sent: 发出网络请求所花费的时间,通常为一毫秒的时间。

Waiting(TFFB): TFFB 是发出页面请求到接收到应答数据第一个字节的时间总和,它包含了 DNS 解析时间、 TCP 连接时间、发送 HTTP 请求时间和获得响应消息第一个字节的时间。

Content Download: 接收响应数据所花费的时间。

从这个例子可以看出,真正下载数据的时间占比为 13.05 / 204.16 = 6.39%,文件越小,这个比例越小,文件越大,比例就越高。这就是为什么要建议将多个小文件合并为一个大文件,从而减少 HTTP 请求次数的原因。

有没有更好的方式?

使用 HTTP2,所有的请求都可以放在一个 TCP 连接上发送。HTTP2 还有好多东西要学,这里不深入讲解了。

经过灵魂三问后,是不是这条优化规则的来龙去脉全都理清了,并且在你查资料动手的过程中,知识会理解得更加深刻。

掌握了这种学习方法,并且时刻运用在学习中、工作中,突破瓶颈只是时间的问题。

关于源码学习。

看不懂 Vue 源码很正常,就像一个没学过加减法的人,上来就学习乘除法,这难度不是一般的大,对吧?而且 Vue 的源码由于工程性的考虑,作了很多边界判断和冗余处理。

学习 Vue 源码最好从一个比较简单的版本开始学习。例如我当时学习 Vue,是从 1.0 版本开始学习的,这个版本没有虚拟 DOM,没有 Diff 算法,每个指令怎么操作 DOM 都能直观的看到,学习起来比较简单。

既然要从简单的版本学习,那怎么找到简单的版本呢?用 Vue3 举例子,打开 Vue3 的 github,看一下右边:

点击 Releases,在里面能找到 Vue3 发布的每一个版本。我们可以从第一个版本开始学习:

点击 Source code 下载源码。

等第一个版本看懂了,再看后面的完整版,会容易很多。

最后,如果源码还是看不懂,没有关系。我们可以先看一下相关源码的学习文章,找一些质量高的,看一下里面的难点讲解,最后再重新学习源码。

关于提到的「去不去大公司」的问题。

趁年轻,去大公司见识一下世面。大公司的技术水准基本上都是处于行业领先水平的,有很多东西你在小公司一辈子都接触不到。

在大公司呆几年,要是觉得不合适再去小公司也不迟。

最后再提两个建议:

1.学好计算机基础知识,包括但不限于:操作系统、数据结构、计算机网络...

2.时常把自己放在团队负责人的角度来思考问题,降维打击。

计算机基础很重要,决定了你的天花板,一定要努力学习(对于前端来说,计算机网络和操作系统是重中之重)。

对于第二点,你可以经常问自己以下几个问题:

1.如何提高团队的开发效率?

例如减少沟通成本,这可以通过规范标准来达到,包括编码规范、git 规范等等。还要和产品、UI定好沟通流程、文档规范,也能减少沟通成本。

减少要写的代码,怎么做?开发一些工具,例如代码生成器、可视化开发工具等等。

要写单元测试,对于长期维护的项目来说,写单元测试是提高效率的一大利器。

多问这种问题,让你从全局上而不是在局部上去思考问题,这对于提升你的技术素养和工程管理能力都有很大的帮助。

2. 如何分配任务?

除了考虑成员能力还要考虑潜力、性格等等。

3. 如何提升团队成员能力?

培训、分享等等。

为什么要这么做呢?当你领导做一些事情让你不解的时候,让你困扰的时候,从他的角度想一想,或者就能解决你的疑惑。同时,理解领导对于你们的沟通也是很有好处的,相信没人喜欢天天和领导对着干吧。

以上,就是今天要分享的所有内容。

小编是个多年开发经验的程序员。如果你想要学好WEB前端,在学习过程中,身边没有一个能够指导你学习的人,可以到这个WEB前端裙,里面最新学习路线和教程,不管是计算机专业想要往WEB前端方向发展,还是零基础想转行,都可以跟着教程学,有什么不懂的可以在里面问,这就是WEB前端裙。前面三个输入296,中间三个输入212,后面三个输入562。

相关文章

  • 前端程序员该如何突破技术瓶颈

    最近看到有人提问: 本人三年前端开发经验,学历985本科,坐标长沙某证券交易公司。感觉技术已经到了瓶颈期,期间换了...

  • 程序员技术发展瓶颈该如何突破!

    在知乎看到一个问题,相当有代表意义,即技术人员本身的技术发展瓶颈的突破问题。 具体问题如下,通常情况下,技术人员在...

  • 该如何突破瓶颈?

    我们应该然后突破瓶颈? 之前已经讲过了一半,不知道的可以看一下我的《待吾突破瓶颈》。 之前讲过了分析,讲过了心态现...

  • java程序员如何突破技术瓶颈

    1.应用框架专题 更多java教程,学习交流请加群:399305398 2.搜索引擎专题 更多java教程,学习交...

  • 侯策:如何突破前端开发技术瓶颈

    本文作者 侯策,曾先后就职于法国ENGIE集团、百度等国内外知名互联网企业,具有丰富的开发经验和团队管理经验。曾担...

  • Java程序员该如何突破瓶颈!

    一、源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。 ...

  • Java程序员该如何突破瓶颈

    一 源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。 ...

  • 初级前端如何突破瓶颈

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

  • 初级前端如何突破瓶颈

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

  • VUE实现的九宫格抽奖功能

    效果图如下: 前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力...

网友评论

    本文标题:前端程序员该如何突破技术瓶颈

    本文链接:https://www.haomeiwen.com/subject/phisrktx.html