Node.js 从工程化工具到后端服务应用的转变
近 10 年来,我一直在一线大厂从事前端研发工作,负责前端、中台业务,以及跨端平台的研发和管理,曾经负责研发过亿级用户社交项目、千万级用户海外音视频应用平台等大型项目,同时我还自研了 Node.js 框架,为公司内部 10 多个系统项目提供支持。
现在我和我的团队,不仅用 Node.js 来做前端的工程化(即将其作为辅助工具,利用 webpack 提升前端开发效率以及保证开发质量),还用来做一部分后端开发,来发挥 Node.js 更大的价值。
在 Node.js 的应用过程中,有些问题曾经一度困扰着我:
在前端,Node.js 难道只能做工程化应用吗?
既然要学习后端开发,为什么我不学习其他应用更广的 Java 或者 Go?
前端为什么要选择 Node.js 来做后端开发?
作为一个前端工程师,掌握一门后端语言是很有必要的。
在小公司,通常希望你“十八般武艺,样样都懂”,甚至要求你可以独立开发一个项目。当你掌握一门后端语言后,无论是独立开发还是在前端团队需要做部分后台服务的时候,你都可以主动承担这部分工作,从而在团队中凸显个人优势。
在大公司,前后端虽然分工很明确,但是团队间的协作是常态,需要跟后端人员频繁地沟通,如果你不懂后端,不考虑后台,写出来的一些代码可能是无效的,在与后台进行数据交互的时候用不了。如果你掌握了一门后端语言,不仅可以和后端同事更好地交流合作,还可以提升自己的编程能力,使自己的前端开发更合理、更有效,甚至可以写 API 调试自己的前端代码。
另外,技术栈是统一的,有时候可以前后互转,掌握一门后端语言,无可厚非可以使你的职业生涯更广阔一些。
我相信每个程序员,都不会仅仅满足于当下,可能希望成为一个全栈工程师,再到技术负责人,最终能够在一家企业成为 CTO 或者实现更大的目标。而如果你仅仅掌握前端技术,那么无论如何是无法实现这些目标的。
还有一方面就是从招聘信息可以得知,掌握一门后端语言,特别是 Node.js,已经成为一个加分项。在前端竞争如此激烈的今天,甚至可以说是一个必备技能。