对于大前端的思考

您所在的位置:网站首页 死对头的小说推荐 对于大前端的思考

对于大前端的思考

2023-11-27 20:18| 来源: 网络整理| 查看: 265

PS:对前端技术感兴趣的朋友们,可以关注下我的《致力于前端的技术博客》哦!如果对你有帮助,欢迎赠个⭐️,会常更新内容,敬请期待!❤️❤️

前端还是一个年轻的行业,新的行业标准, 框架, 库都不断在更新和新增,正如赫门在 2015 深 JS 大会上的《前端服务化之路》主题演讲中说的一句话:“每 18 至 24 个月,前端都会难一倍”,这些变化使前端的能力更加丰富、创造的应用也会更加完美。所以关注各种前端技术,跟上快速变化的节奏,也是身为一个前端程序员必备的技能之一。

个人经历

作为一名前端人,从最开始的"前端三剑客"html、css、js开始看起,一遍遍笨拙地啃着红宝书,再到接触jq,开发一些原生js应用,后来逐渐接触Vue、React等新型前端框架,还要学习node、js,逐渐接触前端工程化(项目自动化构建,如webpack,nginx、持续集成、版本控制)的概念,再到学习小程序开发、云开发模式、多端开发框架,学习设计模式、前端安全、性能优化等等,真可谓"路漫漫其修远兮"。做过许多大大小小的项目,经历过各种各样的坑,也是一路不停地学习、不停地总结。目前对于前端框架的设计原理、源码剖析、代码设计思想等方面非常感兴趣,也研究过vue、react等部分源码,越来越觉得多读、多分析好的框架源码是对自己一个很好的提升。目前仍然认为自己在这个方向不够深入,也是在不断地探索“大前端”之路,如何在未来能够看得更深、走得更远。

"不忘初心,方得始终。"想想自己当初是如何踏上这条路的,那时候只是觉得前端有着无限的创造力,可以自己设计精美的拥有各种特效的网站,可以自己做一些简单方便的应用,而且入门简单,也好找工作……但是现在想想,入了这个行,就很难跳出去,在学习的过程中,会愈发地感觉到前端远比自己想象中的要复杂、要求更高,而且新知识、新技术会层出不穷地出现,不断地挑战着前端人的思考能力、学习能力和吸收能力。

"纵使疾风起,人生不言弃。"现在可谓是互联网寒冬时代,正是入门门槛低,导致了加入互联网行业的人越来越多,给我们的压力会越来越大。也许哪天我们还在公司上班,第二天被突然宣布部门解散也不足为奇。因此我们必须要必备危机意识,如何在这场浪潮之中仍然保证自己的竞争力?保持学习、学会思考,学会对自己的人生作出清晰的规划,特别是软件行业,给人的成长也是飞速的。

面试过阿里、腾讯、字节等公司,现就职阿里,和技术大牛们交流过很多,吸收了很多的经验,故总结成文,供大家参考。有些不对的地方,希望读者指正~😝

什么是大前端

简单来说,大前端就是所有前端的统称,比如Android、iOS、web、Watch等,最接近用户的那一层也就是UI层,然后将其统一起来,就是大前端。大前端最大的特点在于一次开发,同时适用于所有平台,开发者不用为一个APP需要做Android和iOS两种模式而担心。大前端是web统一的时代,利用web不仅能开发出网站,更可以开发手机端web应用和移动端应用程序。大前端不仅会成为移动开发与Web前端的发展趋势,也将会是未来的显示设备终端的开发技术趋势。大前端将做更多的终端开发、工程化等工作,而不仅仅只是开发Web页面。大前端工程师将能搞定所有端上的开发。与充满争议的全栈工程师相比,它更具可操作性。 大前端不仅会成为移动开发与Web前端的发展趋势,也将会是未来的显示设备终端的开发技术趋势。大前端将做更多的终端开发、工程化等工作,而不仅仅只是开发Web页面。大前端工程师将能搞定所有端上的开发。与充满争议的全栈工程师相比,它更具可操作性。但同时对开发者而言,要会更多的技术栈,比如原生开发者要学习html、css、js等前端知识,前端开发人员也要学习Android或iOS的原生开发技术,然后了解一下常见的跨平台技术,只有这样才能更好的融入到大前端的这个大家庭中。 ——出自《大前端是什么?》

发展之路

由上图可见,前端需要和如此多的工种打交道,也不断要求着需要具备一些其他领域的基础,至少能让沟通更加高效一些。也许你会对UI设计、后台DB、产品设计、测试、全栈领域感兴趣,在未来走上其他的职业道路也是有可能的。也有越来越多的前端人开始往全栈的方向发展,希望自己能够独自开发整个项目,也开始往项目架构等方向深入。在未来,自己在前端这个领域走了很久之后,也许会迎来新的挑战,如何突破自己呢?我们可以选择自己感兴趣的方向进行深入学习,如:

全栈: 前后端开发,Node / 数据库/ Nginx / 反向代理 / 负载均衡 / PM2 / Docker 等服务端或者运维知识 跨平台: Hybrid / Flutter / React Native / Swift 等 视觉游戏: WebGL / 动画 / Three.js / Canvas / 游戏引擎 / VR / AR 等 底层框架: 浏览器引擎 / 框架底层 / 算法 等 人工智能: 机器学习 / 计算机视觉 / 前端智能化 等

故总结一下:

前端开发者必须对前端基础技能足够熟悉,了解原理和细节,基于js往上衍生,如浏览器端的js如何开发、node端的js如何来开发,并且关注研发效率、质量、性能、错误监控等等; 能够做浏览器端的开发,能够做服务器端的开发,前端要和很多的工种打交道,可以看看在其他领域我们哪些可以和它相关联的一些能力去了解和学习,可以让视野更加全面; 入职两到三年,即将会遇到一个瓶颈:需求我都能做,我的成就感在哪里?这时应该转换一个思维:是否有更高程度的抽象,更自动化的构建,持续不断地迭代我们的生产工具和生产方式。 做一个自己的产品,做一个公众号或小程序,把所有的想法(包括技术的、或者关于产品),在上面不断地迭代,把这个产品打磨得越来越好,让自己的技术能够在一个面或一个点上不断地提升。比如追求网站的速度(浏览器端做缓存、运行机制等等性能优化),每个人都需要打磨一个东西,到一个阶段让自己的技术不断地提升,你对技术上的思考也会随着这个产品的不断完善变得更深入。

对前端的建议:

在技术上js这条路上做得足够的深,对原理掌握得足够清楚,多了解周边的技能 做一个自己的产品,长年累月地去专注去打磨它改进它,加入你技术的想法

看一个技术领域如同看企业发展,马化腾回忆微信成长发展过程时说:被别人干掉不如被自己干掉,被别人革命不如革自己的命。任何技术都像企业一样有盛衰荣辱,Javascript作为一门编程语言,前端作为一个技术领域,之所以有生命力,是源自于这个领域的从业者不断突破,不断创新,不断革自己的命。 因为做浏览器,对行业发展变化属于鸭先知,移动端带来的寒意和前端技术全面退守中后台,共同释放着前端技术应用场景缩小的信号。前端技术却顽强的创新和反击,从RN和Weex带来的FE-Native混合应用开始,PWA和Hight Level Web API对Web容器性能体验优化,TypeScript带来的强类型和大型项目代码组织能力,小程序在私域流量中的发力,Node.js带来服务能力和工程能力的升级,移动端APP带来场景缩小的冲击,被前端技术自身变革发展所缓解。所谓天晴修屋顶,未来技术发展趋势和脉络如何?给前端技术带来的冲击和机遇是什么? ——出自《掘金》

学习思维和方法 学习思维

入门:

兴趣是最好的老师,自律才能给你自由 量变到质变:从基础开始,技术需要不断沉淀 经常总结和分享

进阶:

知识是无边界的,术业有专攻,往自己感兴趣的方向深挖 从简单地做事,到对业务对需求有深层次的思考

高阶:

深入一到两个领域,能够有独特的见解以及自己的成果 勇于承担与挑战,合理分配自己的时间 参加交流会/技术分享大会,了解最新的知识架构 学习方法

初级:

视频教程:imooc、B站(咳咳、干货还不少)、网易云课堂,还有一些国外优质的网站,如coursera、udacity等(如果你能接受视频学习,时间较充裕,而且想快速入门的话) 文档教程:W3CSchool、菜鸟教程、MDN(权威手册)、多看官方文档(学习每一个新的技术栈,入门最好的方式是通过它的文档学习,可以系统的过一遍文档,手敲它每一个示例) 书籍:经典书籍阅读,如js红宝书 编码:一定要多写代码!!!每个知识点都写代码验证,并且能够通过项目驱动进行学习,在开发和维护项目的过程中总结经验 个人博客:总结和沉淀,把学习的内容用文字的形式记录下来,整理成文,并按学习的技术方向做归类 多看优质博客:推荐掘金、segmentFault、慕课网手记、CSDN、InfoQ 等中文社区,利用碎片化时间看一些高质量文章学习

中高级:

书籍:找到经典书籍阅读,适当做一些学习笔记 视频: 这个阶段可以深入看一些进阶类的项目开发、前端原理剖析与实现、前端架构方面的视频课程 文档: 可以尝试去看一下英文文档,因为英文文档更新迭代快,有利于第一时间掌握更新动态,况且有些中文文档翻译得不够准确 社区: StackOverflow、HackerNews,慕课网手记、掘金等,除了利用碎片化时间看一些高质量文章学习,也可以往上面发布一些优质文章 github: 关注 trending,参与开源社区的共建,并尝试自己造一些轮子 个人博客深入: 坚持写博客的习惯,把工作中深入学习到的一些非敏感知识记录下来并发布,而不仅仅去发布一些基础知识的学习了 原理深入: 研究常用框架背后的原理实现,不仅仅是运行时的 MVVM 框架,还可以是编译时的 webpack,能自己开发和封装框架 技术视野: 除了自己工作中的使用的技术栈之外,也要了解同类其它优秀的开源技术栈,从多个维度(feature 完整性、文档、上手难度、维护力度、生态等)去做对比 深入发展: 从兴趣入手,定向深入发展(算法、全栈、底层原理、视觉、人工智能等) 技术交流: 着眼中国与世界,多参加技术交流会,了解国内外先进技术和前端发展趋势 前端知识体系整理

高级前端知识体系

初/中级前端知识体系

成长建议 成长焦虑问题

1. 业务思考:明白业务和公司目标,做这个需求可以参与到需求的早期阶段,深入思考为什么我们提出这个需求,这个需求解决了什么业务问题,有没有更好的方案,而不是拿到一个方案我只是个代码的实现者。如果针对需求有一些不知道的地方,可以向产品经理、运营请教,并且技术是一定要服务于业务的,有时候我们可以通过技术手段来提升业务价值

2. 技术思考:我们在开发的过程中肯定会有各种各样的痛点,学会用技术的手段去优化业务开发的流程,来提升开发效率。有时候业务项目很多都是大同小异的,我们可以针对项目量身定做一套脚手架工具

3. 优化工作流程:不仅要熟悉从需求到开发、联调、测试、上线每个功能环节,还是思考每个环节有没有提升点,特别是上线过程,能不能做到自动化,能不能做到小流量发布,能不能即使回滚代码,能不能做增量发布,这些都值得我们去思考去优化。看看大公司的经验分享,看能不能移植到自己的业务中。

4. 技术分享:主动进行技术分享,把工作中遇到的问题、解决方案、学习到的新技术、产生总结下来,作为组内的技术分享输出,好一点的话可以对外输出。一是可以沉淀自己的技术,二是大家可以知道你做的东西,并且可以活跃组内的技术氛围。另外还可以锻炼自己的语言表述能力,这一点对于未来的职业发展是非常重要的

技术追求

1. 主动承担有挑战的事情:不满足于我们完成的日常需求,如果这些重复劳动对自己的成长空间已经很小了,我们可以和leader主动申请去做一些具有个人挑战的事情,可以学到更多的东西,跳出自己的舒适圈

2. 积极优化重构自己的代码:可以学习优秀的源码作为参考,追求高质量代码,不断去优化去重构自己的代码,而且注意重构要趁早,否则后面再去优化就会很困难

3. 对技术背后实现的原理有探究的兴趣:要研究自己工作中相关技术背后的原理,深入到源码,这样之后再遇到一些坑可以很轻松地解决,节约了工作中调bug的实践,同时也能让自己的技能得到提升

4. 写高质量的技术博文:这也是一个不断锻炼的过程,写文章的过程中,我们对一些原理一些细节是很较真的,这有助于自己更加深入地掌握相关的知识,好的文章对外输出也可以帮助自己提高一定的技术影响力



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3