前端技术体系与发展计划

同学B:

学不动啦,vue 2.x 还没有搞清楚呢,vue 3.0 就又要来了,react 还没有学过,node 也不会,还有各种新的概念比如:大前端、微前端、serverLess、前端工程化…这些都没有接触过


同学C:

非常羡慕大厂的同学,接触的技术深,管理和流程规范,技术面也广,不像自己整天在小公司里面写 if-else

关于技术能力发展的问题

同学A:

工作了3年了,感觉什么都会了,又觉得自己什么都不会,不知道如何进行提升


同学B:

天天写业务代码,公司的技术栈很老旧,感觉跟不上时代,也没有什么技术含量,也没有什么沉淀,成长的太慢了


同学C:

对框架原理层的东西接触的太少,工作上也接触不到,感觉只是在做代码的搬运工,根本无法突破现在的技术阶层

这些问题我也进行了思考,我觉得他们应该并不是小众,而是一个大众化普遍会遇到的问题。包括我,我当年也遇到过类似的问题。

重点

================================================================

  • 那么这样一个大众化的问题(技术体系不清晰、发展过程不明确)我们应该如何去进行处理?

  • 前端的技术体系究竟都包含了那些内容?

  • 我们当前的技术能力可以满足哪些需求?处在哪一个位置?

如果你也有这样的疑惑的话,那么这篇文章或许会帮助到你

讲解方式

==================================================================

我们会从三个方面来去说明上面的问题:

  1. 前端的技术体系

  2. 前端工程师的发展计划

  3. 以上问题的解决方案或者说是个人建议

大家可以根据自己的情况,直接跳到对应的模块中。

脑图大纲

==================================================================

整个博客的内容,我整理出来了一个脑图。大家如果觉得看下面的内容过于繁琐的话,那么可以直接看这个脑图。

脑图相当于是一个简化版的文章内容,包含了文章中所有的知识点。如果看到某个内容节点时有所疑惑的话,那么再去看具体的文章内容,这样也不失为一种好的方法。

脑图

前端的技术体系

=====================================================================

对于前端技术体系这块,我把它主要分成了 6 个方面:

  1. PC 端技术

  2. 移动端技术

  3. 服务端技术

  4. 优化技术

  5. 监控技术

  6. 工程化技术

而整个前端的体系也是针对这 6 个方面来去解释的。

部分技术点可能同时属于多个方面,这一类的技术点我就根据自己的理解放入到了我认为合理的位置了

PC 端技术


首先我们先来看 PC 端技术,对于现在的 PC 端来说,我们可以主要把内容分成两块:

  1. 以 jQuery 为代表的一系列高兼容性框架(或者说是库)

  2. MVVM 框架,如 Angular、React、Vue(排名不分先后),这一块内容,以 Vue 为例进行解释

以 jQuery 为代表的一系列高兼容性框架(或者说是库)

这一类框架对于维护老系统的同学(以政府项目或国企项目为主 )来说应该非常的熟悉,虽然说现在越来越多的项目已经不再考虑兼容 IE9 这种老的浏览器了,但是对于一些老系统来说,因为历史遗留问题,或业务兼容问题,根本无法忽略掉 IE 浏览器的兼容。

所以说这一类的技术依然是无法被忽略的一块,毕竟 技术永远是为业务来进行服务的,虽然可能大家都非常讨厌这一块的内容。

在这里插入图片描述

以 Vue 为例的一系列 MVVM 框架

这一块是目前使用率最多,也是最被大家所接受的。它们大大的提高了前端的开发效率,并且增加了前端的开发壁垒。可以说没有它们,就没有现在的前端开发环境。

在现在如果你想要找一份前端的工作的话,那么这三大框架你至少要熟悉一个。

如果你是双非院校(非985、211)的话,那么我个人建议你学习 Vue,因为对于国内大部分的中小企业来说,Vue 的占有率是非常高的。

而如果你是 985、211 学校的话,那么 Vue 或者 React 均可。

对于 Angular ,因为在国内的占有率并不高,所以如果你是以找一份工作为主的话,那么我个人不建议你去专攻 Angular 。

它们中任何一个框架,整体的内容如果展开的话,那么都会非常的多。还是以 Vue 为例,周边知识大体可以分为三个大块:

  1. 根据渲染模式的不同,我们需要了解两部分:

  2. 单页应用:SPA

  3. 基于服务端的渲染:SSR

  4. Vue 全家桶知识:

  5. 路由管理:VueRouter

  6. 全局状态管理:Vuex

  7. 脚手架工具:@vue/cli

  8. 组件库部分:

  9. 比如:Element-UI

  10. 比如:Vuetify

  11. 比如:vant-ui

当然除了这些之外,其他的周边库还有很多,比如 网络请求库:axios 等等,这些都是需要大家去进行掌握的。

移动端技术


对于移动端技术来说,目前主要有两个方向:

  1. 以 微信小程序 为代表的小程序技术

  2. 跨平台技术

那么对于移动端技术来说,我们也是以这两个方向来去说。

以 微信小程序 为代表的小程序技术

微信小程序在 2017 年发布,在 2018 年大火,整个的发展速度是非常快的。这也从一方面验证了 每间隔16个月,学习前端的难度会增加一倍 的这句话。整个前端无时无刻不再有新的技术、新的概念被提出,所以我觉得,前端开发工程师应该是站在潮流最前端的一批人。

小程序最初以 原生 的方式进行开发,后来逐渐出现了一批基于小程序的框架,如果你是一个小程序开发为主的前端工程师,那么以下知识点,你是必须要掌握的:

  1. 小程序原生开发

  2. 小程序框架开发(比如:wepy、mpvue)

  3. 小程序 UI 库(比如:WeUI、Vant weapp、iView weapp)

跨平台技术

跨平台技术的提出主要是为了解决 移动端设备碎片化 的问题,什么是 移动端设备碎片化 呢?给大家举个简单的例子:

目前移动端的设备,主要分成两块

1、Android

2、IOS

而对于任何一端来说,又分为 原生应用(APP)网页应用 ,同时还多了一个 小程序(虽然小程序的设计之初也有为了解决 移动端设备碎片化 问题的原因)

如果我们为每一种应用方式都开发一个版本的话,那么我们就需要大约 4 个应用的维护。这样的一个成本是任何一家中小型企业都难以接受的。

所以大家一直期望,有一种方式可以开发一个应用,但同时运行在多个设备之中。

基于这种原因,才出现了所谓的跨平台技术。

跨平台技术的出现,旨在解决 一个项目无法同时作用于多种不同设备之上 的问题。所以在刚出现的时候市场上被接受和尝试的声音非常的多(毕竟这对于公司来说,代表省钱)。

不过,虽然这些技术号称可以达到原生应用同样的体验,但是因为不同设备之间的差异化,导致最终开发出来的成果总是无法满足线上项目的需求。

所以在目前跨平台的技术只是在小范围的进行使用。

整个跨平台技术方案中,目前主要流行的有以下 4 种:

  1. React Native

  2. Flutter

  3. Weex

  4. uni-app (一套代码编到8个平台)

服务端技术


对于服务端技术的话,有很多的前端工程师都不是特别的清楚。因为在很多前端工程师眼中 服务端的内容应该是属于后台的东西 ,如果你也有这种想法的话,那么 趁早丢弃

试想一个场景,身为一个软件开发工程师,假如有一天,你有了一个点子,想要通过技术来实现的时候。突然发现,你只会写前端的内容,对后台服务一无所知。你不得不求助于服务端工程师。这是不是一种悲剧。

所以说 服务端技术 可能在你的初期对你帮助不大,但是当你在技术领域越来越深入的时候,它是必不可少的内容。

目前针对于前端工程师的服务端技术有非常的多,如果你想要学习服务端技术的话,那么可以从以下四个方面来着手:

  1. Node.js,大体可以分成两个框架方向:

  2. Express

  3. KOA

  4. 数据库知识,目前的数据库同样分成了两块大的方向:

  5. SQL 型数据库,推荐:MySql

  6. NO SQL 型数据库,推荐:MongoDB,Redis

  7. 服务器:

  8. Apache

  9. Nginx (重点推荐),针对于 Nginx 来说,你至少需要掌握两点:

  10. 单页应用的部署

  11. 反向代理 / 跨域处理

  12. 云概念(个人认为:云概念是未来的主要方式),云概念至少需要掌握以下 5 点:

  13. 云服务器

  14. 标准 ECS 云服务器

  15. 应用云服务器

  16. 云数据库

  17. SQL 型

  18. NO SQL 型

  19. 云存储服务

  20. OSS:对象存储

  21. NAS:文件存储

  22. ServerLess:无服务结构(小程序云开发是一个很好的切入点)

  23. CDN 服务

优化技术


如果你想要在工作中获取到更好的评级,那么优化技术是必不可少的。

这里所说的优化技术主要 针对网页访问速度的优化用户误操作规避的优化,这两点的内容应该比好理解。

优化技术这一块如果展开说就非常的大了, 因为它所涉及到的知识点会非常的多,并且根据不同的场景也会有很多定向优化的内容,所以这里我就简单的列举出来几个方向,仅供大家参考:

  1. 静态资源优化

  2. 接口访问优化

  3. 页面渲染速度优化

  4. 防抖 / 节流方案

具体的内容,大家可以自行百度,这里就不详细说了。

监控技术


这一块的内容,可能很多两三年左右开发经验的同学很少了解过。先简单的做一个定义。

什么叫做监控技术呢?

当我们的项目上线之后:

到底有多少人来访问?

项目出现过多少次catch?

用户在哪个页面停留的时间比较长?

等等…

获取这些数据的方式我们就称为:数据监控技术,这里简称 监控技术

看到这里,可能有很多同学会说:“我要这些东西有什么用啊?”。

你如果只作为一个码农角色的话,那么确实没有用。但是如果你站在开发者的角度、或者 项目所有人 的角度来看的话,那么这些数据是非常重要的依据。基于这些数据来完成的 数据可视化平台 ,也是现在非常重要的一个方向。

说了这么多,那么如何实现数据监控呢? 实现数据监控的方式主要可以分成两种:

  1. 自定义数据监控

  2. 使用现成的第三方监控平台(前期推荐使用)

如果你对监控技术刚刚接触,或者处于项目前期的话,那么我个人推荐你使用 现成的第三方监控平台,这一类的平台有很多,简单列出三个:

  1. 百度统计

  2. 诸葛IO

  3. GrowingIO

为什么会这么推荐呢?很简单,两个字 简单 。因为简单,你可以快速上手。因为简单,你可以不用花大量的时间去进行测试、逻辑编写。因为对于监控技术,是一套非常复杂的技术体系。仅对于 埋点 这一块来说,就可以分为:

  1. 无埋点

  2. 全埋点

  3. 自定义埋点

三个大的方面。

所以对于前期,我更推荐大家直接使用现有的第三方平台。当这些平台无法满足你的需求的时候,可以考虑自己实现。

工程化技术


如果你不是 leader 的话,那么工程化技术你接触的可能也会比较少。

什么是工程化呢?

比如说:

你的代码提交到 Git ,那么这个 Git 平台是怎么搭建的?

你的代码提交,如果不合规(死链或者代码格式不合规),如何避免被提交?

代码部署这种重复的工作如何自动化?

新版本上线如何最大程度的减轻 BUG 出现导致大面积崩溃的风险?

如果真的出现了大面的崩溃,如何快速的返回上一个稳定版本?

等等…

这些场景,我们都可以称之为是属于 前端工程化 的一部分

工程化代表的应该是一整套前端从开发到上线的全流程。目前的工程化以自动工程化为主。也就是说你的开发、测试、部署等等,全部都自动化。

这一整套的自动化工程,就可以称为是一套 工程化技术

在很多的中小公司中,工程化的流程并不规范,存在非常多的问题。这点对大家来说,应该是一个好事情,如果你熟练地掌握了 工程化技术,那么你就会拥有更多的 技术资本

工程化技术方面,简单的给大家进行一下列举:

  1. 代码托管平台搭建

  2. Gitlab

  3. 自动化工具

  4. 合规检测

  5. ESLint 提交检测

  6. 兼容性检测

  7. 死链检测

  8. 自动化测试

  9. 自动化部署

  10. CI:持续集成

  11. CD:持续部署

  12. 产品迭代方面

  13. 灰度发布

  14. A/B 测试

技术体系总结


以上这些就是整个前端技术体系的内容,整体来看是非常大的一块内容点。那么这么多的技术点,我们应该从哪一块入手?从哪一块开始学习呢?

这就是我们接下来要说的内容,也就是 前端发展计划 的部分

前端发展计划

====================================================================

对于前端发展计划这里,我不打算给大家进行分类。什么叫分类呢?

比如很多人会告诉你:

  • 一年(工作经验)以下你应该学习什么?

  • 一到三年你应该学习什么?

  • 三到五年你应该学习什么?

这种方式就叫做分类,根据你的工作年限,来告诉你你应该学习什么技术了。

我觉得如果按照这种方式来制定发展计划的话,那么是 不准确 的。因为,每个人根据所处环境的不同,那么成长的速度是不一样的,我们不能够简单的通过 工作时长 这样一个 定向 的标准来进行划分。

那么我们应该怎么做呢?

首先:发展计划应该和当 前的技术体系 是息息相关的。比如说: 2016 年的时候,我们只会 jQuery 可能就能找到一份工作,但是现在你至少要会 三大框架中的一种才可以。前端的技术无时无刻不在变化,那么我们的发展计划也会跟随技术体系来对应改变。

其次:发展计划的制定应该以你个人的 当前技术水平下阶段目标 为标准。比如:你当前只会 jQuery , 然后你想要找到一份工作。那么你当前最应该学习的应该是三大框架中的一种,比如 Vue 。

以上的这两点和你的工作年限没有一点关系。

那么发展计划这里,我们怎么去讲呢?

我把整个前端的发展计划分成了 6 个阶段,我们先来看一下:

  1. 基础知识

  2. 工作知识

  3. 进阶知识

  4. 底层知识

  5. 新兴知识

  6. 未来展望

每个阶段后面,又会包含一些具体的知识点(参考顶部脑图)。

每个阶段代表你当前所处的区域,

  1. 假如:你想要入门前端的话,那么你首先需要掌握的就是 基础知识

  2. 假如:你希望找到一份前端工程师的工作的话,那么你就必须要掌握 工作知识 的内容

  3. 假如:你希望在工作中更近一层,比如担任 高级软件开发工程师,那么你就应该开始学习 进阶知识 或者 底层知识 的内容

  4. 假如:你希望担任前端 leader ,那么你就必须要实时关心 新兴知识的内容

这个就是我根据大家的 当前技术水平下阶段目标 为标准,来制作的 发展计划,我觉得按照这种方式,应该是最具有逻辑性的。

那么下面我们就分别的来看一下这六个阶段详细的内容。

基础知识


如果你当前还没有接触过前端,接下来打算学习前端知识点的话,那么你就应该从基础知识入手

基础知识阶段作为我们的第一站,面向的是没有前端开发经验的同学,如果你之前没有接触过前端开发,并且想要通过学习前端来找过一份工作的话,那么你就应该从基础知识来入手。

对于基础知识,你需要掌握的主要有两大部分:

  1. HTML + CSS :这是基础中的基础,是必须要掌握的

  2. JavaScript: JS 作为前端的核心语言,用来处理所有逻辑相关的问题,是入门前端的一个必备内容

从这两块开始学习,一直到可以熟练掌握,然后在进入下一个阶段。

那么达到什么样的标准,才能够称为基础知识过关了呢?

检验是否过关最好的标准应该是 项目 , 每一个阶段都应该有对应的项目,但是我们这里没有办法给大家去指定项目,大家可以根据自己的情况来去自己指定。

我这里简单的列出一些标准的知识点,如果说你想要验证 基础知识 是否过关,那么可以看一下,以下知识点,你是否可以掌握:

  1. HTML + CSS 部分

  2. Flex 布局
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

资料过多,篇幅有限,需要文中全部资料可以点击这里即可获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-HLTyTJ5Z-1711683832654)]

[外链图片转存中…(img-TG5SIiDE-1711683832655)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-Xw0tVQT3-1711683832655)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

[外链图片转存中…(img-f28LCGHb-1711683832656)]

[外链图片转存中…(img-RJvQDX0d-1711683832656)]

资料过多,篇幅有限,需要文中全部资料可以点击这里即可获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主流的前端框架体系包括基于MVC的框架、基于MVVM的框架和基于函数式编程的框架。前端技术发展史可以分为以下几个阶段: 1. 静态HTML时代 Web的早期阶段,网页主要由静态HTML页面构成,网页的交互性和动态性非常有限,用户只能通过点击链接进行页面跳转。 2. 动态HTML时代 为了增强Web的交互性和动态性,JavaScript语言被引入Web开发中,使得网页可以动态地改变内容和样式,展现更加丰富的用户界面。此时出现了jQuery等JavaScript库,简化了开发工作。 3. SPA时代 随着Web应用程序的复杂度不断提高,出现了基于MVC架构的单页应用程序(SPA),使得Web应用程序可以像桌面应用程序一样,拥有更好的用户体验和更高的性能。此时出现了AngularJS、Backbone.js和Ember.js等MVC框架以及Vue.js和React.js等MVVM框架。 4. Web组件化时代 为了提高Web应用程序的可复用性和可维护性,Web组件化成为了新的趋势。Web组件化将Web应用程序拆分为多个独立的组件,每个组件都封装了自己的HTML、CSS和JavaScript代码,可以实现复用和独立开发。此时出现了Web Components规范和Angular、React和Vue等组件化框架。 5. PWA时代 PWA(Progressive Web Apps)是一种新型的Web应用程序开发模式,它结合了Web应用程序和本地应用程序的优点,具有离线访问、推送通知、快速加载和安装等特点。PWA的出现,使得Web应用程序可以与原生应用程序一较高下。 总的来说,前端技术发展历程是一个不断探索、不断创新的过程,从静态HTML到动态HTML,再到单页应用程序、Web组件化和PWA,前端技术在不断发展和进步。前端框架体系则是在不断地演化和扩展,从MVC到MVVM、函数式编程,每个框架都有其独特的特点和适用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值