大前端工程师进阶之路,Node 全栈为前端带来更多可能

简介: 对那些刚入门前端的开发者来说,前端是一个“令人畏惧”的领域,尤其是在你看到前端的技能图谱时,你会发出这样的感叹,前端怎么有那么多的东西要学?我应该从何处学起?我又该如何应对千变万化的前端技术?

导读:对那些刚入门前端的开发者来说,前端是一个“令人畏惧”的领域,尤其是在你看到前端的技能图谱时,你会发出这样的感叹,前端怎么有那么多的东西要学?我应该从何处学起?我又该如何应对千变万化的前端技术?


如何选择?


俗话说,“男怕入错行,女怕嫁错郎”。其实前端开发也一样,从开发工具到前端框架,开发者都面临着选择,选对了技术方向,对个人的职业发展有着举足轻重的作用。由于每个公司在一段时间内可能会固定选用某个框架,如果你刚好没有那个框架的实践经验或学习经历,就会失去一个进阶机会。 再者,不管是在 GitHub、Medium 还是在知乎、掘金上,我们对一个技术或项 目的判断会被点赞数或评论影响,很容易让开发者随波逐流,选择一些跟自己无关或者没用的技术。 因此,开发者在选择框架时,应该从企业需求和个人的爱好找准自己的目标,而不是人云亦云,尽可能选用能提供大面积功能、不需要很多插件来提高生产力的框架来开始你的项目,并根据开发环境的变化,随机应变,而不是广撒网盲目去学。确定学习的目标之后,就开始学习了,你可能在网上看了很多“名人”写的博客,买了很多书,也看了很多教程,在这个过程中,你觉得很充实,但你只是为了学习而学习,你学了,似乎看懂了,但没有真正地记住和消化,但如果你是因为在项目中遇到了问题,然后再去读那些教程,你会比想象中得到的更多。


关于变化


前些天,Node 之父 ry 发布新项目 deno 时,很多开发者都在抱怨——求别再更新了,学不动了。众所周知,历史本来就是不断地以优胜劣汰的方式向前发展,地球也不会因为任何人的不满而停止转动。虽然 Node 很优秀,但我们要明白,一山更比一山高的道理,新技术的出现并不代表旧技术“无能”,而是新技术更能适应生态圈的发展环境,提高开发效率。如果我们一直沉浸在过去取得的成就而停滞不前的话,那么人类就永远不会进步了。 对开发者来说,逆水行舟,不进则退,与其去埋怨别人进步得太快,不如去反省一下是不是自己走得太慢了。最后,祝愿开发者们都找到一条适合自己的路去实现自我价值,甚至改变世界。


前端工程师如何抉择


不想成为全栈的前端不是好程序员。数年以前,全栈工程师的理念忽然风靡墙内外,成为开发者们津津乐道的话题。数年过去,关于全栈工程师的争议不多了,教你速成全栈工程师的视频课程多 了起来,说明大家对于这个理念慢慢接受了。但我发现,鼓吹前端往全栈转型做的有点走火入魔,有的说前端应该成为 K 型人才,甚至部分招聘前端工程师的要求都 写着:熟悉后端至少一门语言和框架,熟悉数据库。过分了啊。 诚然,有了 Node,再加上 JavaScript 大杀四方,前端转型全栈的确是非常顺理成章,但各个语言在各自领域耕耘多年,别说取代,就连取得一席之地都非常难。如果不靠一门语言通打天下,去学习其它领域知识、熟悉领域整个技术生态依然是艰难而缓慢的过程,这难度不亚于转职为其它领域的程序员了。 所以,全栈虽好,也不能贪心啊。


全栈工程师很吊?


对于全栈工程师,社会上的要求真的不高。就像某些人调侃的那样:会一门前端和一门后端就自称是全程工程师了。没错,真的可以。 为什么呢?随着现代大型互联网应用架构越趋复杂,一个人是很难同时精通很多领域的,但如果只是开发小型应用,应对不多的流量,借助开源软件和工具, 一个人也可以办到,这是导致全栈工程师出现的根本原因。 全栈工程师从最开始就是为小型应用而诞生的,想让它解决一切只不过是幻想。


说一说 node 全栈?


Node 现在真的什么都能干,从服务端开发到人工智能、区块链,到处都可以见到 Node 和 JavaScript 的身影。只靠 Node,你似乎都能完成全栈开发了,事实上有些全栈招聘的后端技能就是 Node。但这只是表面现象。 就像上面我说过,各种语言都有他们适合的场景,在追求性能的服务端基础组件、追求高并发高可用的大型系统开发上,Node 还非常稚嫩。比如,最近 OpenResty 的创始人就在微博上对 Node 启动之慢表示惊讶,而这是因为 Node 启动时要加载很多 JS 代码造成的,算是先天缺陷,难以克服。 所以,要想真正开发靠谱的大型系统,Node 还得靠边站。但是,靠着前端的飞速发展,Node 在这种大型系统中也取得了一席之地。 其中,SSR 和 BFF 都需要在后端开发一个中间层,而且这个中间层多半由前端开发和维护,于是使用 Node 成为顺理成章的选择。 其次,在现代的微服务架构中,Node 可以用来开发部分服务,利用在异步 IO 上的优势,在性能上可以满足需求。 除此之外,桌面应用开发上基于 Node 的跨平台方案渐成主流,一些新兴领域也都等待探索,Node 的应用场景还是很丰富的。 所以,我认为的 Node 全栈,是部分优势领域的开发+新兴领域探索,Node 本身并不是一个完整的全栈方案。


K 型人才?


前美团点评的刘平川老师曾写过一篇文章,说前端开发可以一专多能,又叫 T 型人才,这个词其实在职场提的挺多,大家都比较认同。放到前端领域来说, 就是在不同的侧重点、不同的平台上都有开发能力,但同时对某个子领域扎的很深,他们欢迎这样的人才。 然而,前段时间看到这样一段话: ……到了今年,企业开始更注重前端工程师的技术广度。一个优秀的前端,要做到的不仅仅是「T 字型」,而应该努力成为精通前后端至少两门语言的「K 字型」人才。


在大厂,前端晋升靠啥?


在大厂里,工作高度分工,工程师的全栈其实很少有用武之地,晋升要看他们的工作对业务的帮助。 是的,公司要的是业绩,技术的最终价值就应该体现在提升业绩上,这其实是放在任何职业都适合的说辞,只是我们很多时候都忘了。 在对新技术的追逐上,在对采用何种技术的选型上,很多时候我们为了技术而技术,为了让自己不落伍而学习使用新技术,而并没有从是否适合公司业务的角度去考虑。举个例子,去年以来,前后端分离非常火,很多前端打着首屏直出或者 SSR 的理由要做前后端分离。但是你想过吗?增加一个中间层,必然会让响应时间增加,即使需要渲染的页面简单,最少也要增加几十毫秒。另外,如果不能保证中间层的可用性,就变相的增加了系统挂掉的风险。所以,不能盲目的采用新技术。 还有人说,前端离业务太远,根本联系不起来。有的公司可能是这样,前端接触不到业务数据,不知道自己所做的工作给业务带来的影响,更不知道如何去衡量。但前端是数据采集端,其实离数据很近,PV/UV、应用性能数据等至少是可以接触到的吧,通过这些数据,也可以衡量工作的效果。 另外,提升工程效率,制定规范,打造持续集成工作流,也都是能帮助业务的地方。 从提升业务数据的角度去看新技术,才能既让工作获得肯定,也能保持技术上的成长。 当然,这里的新技术要在你负责的岗位职责之内,逾越本分,抢别人的活干,干好了别人不会感激你,活儿干差了则是铁定背锅。


大前端的边界到底在哪里?


端上的开发,Web、移动端、PC 端,这些平台上的开发现在大家基本都认同是大前端的职责了,虽然在具体的工作中会按平台来划分。 工程化,提升工程效能,现在都 DevOps 一体了,其中端上的工作也被认为是大前端的事情。 服务端的开发,Node 全栈,有人认为也是大前端,因为都是用的 JS 嘛。但我 认为不是。因为这样的话,前后端的划分就没有意义了,全栈是全栈,前端是前端。那么,在服务端上,大前端可以做什么? 我认为这要看具体的系统架构,拿现在越来越流行的微服务架构来说,API 网关看似和前端有关,API 的内容是由前端的需求驱动而来,但分析网关需要做的事情,流控、鉴权、熔断、报文转换等等,完全是后端的职责。 但在 API 网关之外,Sound Cloud 的 Phil Calçado 提出的 BFF 架构,其实是可以由前端来负责的,而且也刚好和平台、岗位对应起来,可以当做前端的自留地。在上面 SSR,或者像是由手 Q 开源的 Vas Sonic 框架里的代码 buffer 化这样的骚操作都可以实现。当然,这里一定会遇到高并发、高可用、性能的问题,是需要前端去拓展自己的地方。

目录
相关文章
|
2月前
|
前端开发 JavaScript Java
从前端到后端:构建全栈应用的技术路线探析
【2月更文挑战第3天】本文通过探讨前端和后端开发的基本概念和技术要点,深入剖析了构建全栈应用的技术路线。从前端的HTML、CSS和JavaScript,到后端的Java、C和数据库,我们将带您逐步了解如何将不同技术组合起来实现高效、稳定的全栈应用。
56 7
|
2月前
|
前端开发 JavaScript NoSQL
从前端到后端:构建现代化的全栈应用
本文将探讨如何构建现代化的全栈应用,从前端到后端的技术选型、架构设计和开发实践等方面进行详细介绍。我们将深入研究各种技术工具和框架,如前端开发中的React和Vue,后端开发中的Java和Python,以及数据库管理与优化等,帮助读者全面了解全栈开发的核心概念和实际应用。
31 1
|
2月前
|
前端开发 NoSQL Java
从前端到后端:构建现代化的全栈应用
【2月更文挑战第3天】本文将探讨如何从前端到后端构建现代化的全栈应用。我们将介绍前端技术的发展趋势,包括最新的框架和工具,以及如何与后端进行无缝集成。同时,我们将深入研究后端开发的关键技术,如Java、C和数据库,并提供实用的建议和最佳实践。
|
14天前
|
小程序 前端开发 JavaScript
小程序全栈开发:前端与后端的完美结合
【4月更文挑战第12天】本文介绍了小程序全栈开发,涵盖前端和后端的关键点。前端使用WXML和WXSS进行页面结构和样式设计,JavaScript处理逻辑及组件使用;后端采用Node.js等语言处理业务逻辑、数据库设计和API接口开发。前端与后端通过数据交互实现结合,采用前后端分离模式,支持跨平台运行。调试测试后,提交微信审核并上线运营。掌握前端后端结合是小程序成功的关键。
|
29天前
|
前端开发 JavaScript NoSQL
从前端到后端:构建全栈应用的技术挑战与解决方案
在当今互联网时代,全栈开发成为越来越受欢迎的技术趋势。本文将深入探讨从前端到后端的全栈开发过程中所面临的技术挑战,并提出相应的解决方案,涵盖前端框架选择、后端技术架构、数据库设计以及跨平台兼容性等关键问题。
|
1月前
|
前端开发 JavaScript
前端Webpack5高级进阶课程
本套视频教程主要内容包含React/Vue最新版本脚手架分析、基于Webpack5编写自己的loader和plugin等,让你开发时选择更多样,最后,用不到一百行的代码实现Webpack打包。通过本套视频教程的学习,可以帮你彻底打通Webpack的任督二脉,技术水平更上一层楼,在开发项目的道路上畅通无阻
13 3
前端Webpack5高级进阶课程
|
1月前
|
移动开发 前端开发 HTML5
Web前端全栈HTML5通向大神之路
本套课程共三大阶段,六大部分,是WEB前端、混合开发与全栈开发必须要掌握的技能,从基础到实践,是从编程小白成长为全栈大神的最佳教程!
47 3
Web前端全栈HTML5通向大神之路
|
1月前
|
前端开发 JavaScript NoSQL
从前端到后端:构建全栈开发的技术生态
本文将探讨如何在全栈开发中构建完整的技术生态,从前端到后端各个层面进行深入剖析,讨论不同技术之间的协作与整合,为开发人员提供全面的指导与启示。
|
1月前
|
前端开发 JavaScript Java
从前端到后端:构建高效的全栈开发环境
本文将探讨如何在全栈开发中构建高效的开发环境,包括前端和后端技术栈的整合与优化,以及如何利用最新的工具和框架提升开发效率。
|
1月前
|
JSON JavaScript 前端开发
Node.js:前端开发的后端利器
Node.js作为一种运行在服务器端的JavaScript环境,为前端开发者打开了后端开发的大门。它以其高效的事件驱动、非阻塞I/O模型以及强大的npm生态,使得前端开发者能够轻松构建服务器端应用,实现前后端的全栈开发。本文将探讨Node.js的核心优势、应用场景以及在前端开发中的重要性。