当前位置: 首页 > 科技观察

为什么我们从Go语言转向NodeJS

时间:2023-03-15 00:55:38 科技观察

近年来,GoLang的流行度开始飙升。Go并不是一种新的编程语言,它早在2009年左右就与NodeJS一样被构想出来。它最近的流行归功于它的优势,包括快速的性能、可移植性和云原生性。此外,GoLang现在是收入最高的编程语言之一。不过这篇文章并不是要比较GoLang和NodeJS的优势,网上已经有很多东西了。相反,我将讨论GoLang对于像我们这样的初创公司有多大用处,以及为什么我们决定放弃GoLang而转而使用NodeJS。从一开始……让我们从头开始,我们从后端堆栈开始,包括GraphQL、PostgreSQL和GoLang。我们的工程团队一开始只有两个人——一个在后端,一个在前端,负责开发我们的iOS应用程序。我加入团队的时候,这两个工程师不在了,但是留下了很多后台问题。没有使用ORM,因此显式查询数据库。查询被低效地写出,我们一直在达到内存限制,并且在满足查询之前我们经历了很长的等待时间。这段代码没有架构,完全是一堆乱七八糟的代码,到处都是文件。GoLang不使用GraphQL库。很明显,以前的后端工程师试图成为完全普通的,如果您想快速扩展,这不是理想的途径。GoLang本身不是问题这些问题都不是GoLang特有的,它们是由不擅长GoLang的工程师引入的。这给我们的创业公司带来了一个问题:GoLang工程师很少,能干的工程师就更少了。我们发现自己雇用和解雇了两名GoLang工程师,他们都未能成功解决我们后端的问题。称职的工程师是昂贵的,远远超出了我们年轻初创公司的预算。作为一家初创公司,我们正在努力将我们应用程序的MVP版本推向市场,这意味着我们需要速度。可用于GoLang和GraphQL的小型库集加上小型社区意味着我们解决问题的速度很慢。除此之外,我们对GoLang的经验很少,我们花在解决问题上的时间比构建功能要多。应用程序本身必然会变得更加复杂,这意味着这种情况从长远来看是不可持续的。我们需要一个替代方案。迁移到NodeJS在某个时候,我们坐下来讨论重写后端。我们需要解决以下问题:我们需要一个合格的后端工程师,而且我们的初创公司可以负担得起一个公平的市场价格。我们需要一个包含大量针对常见问题的预制解决方案的后台堆栈,以便快速迁移。当我们接近复杂性时,我们需要一个具有足够资源的后台堆栈来解决一些不太常见的问题。我们的决定是用NodeJS取代GoLang。这解决了我们所有的问题,其核心是速度和成本。NodeJS拥有比GoLang更大的工程师市场。有经验的NodeJS工程师比GoLang工程师便宜很多。NodeJS有许多现有的包来解决常见问题,使我们能够专注于构建我们的应用程序而不是修复它。总而言之,我们迁移到NodeJS的决定在很大程度上取决于我们初创公司的业务状况。人们经常根据项目的技术优点争论NodeJS或GoLang是否适合您的项目,而我们的争论归结为是什么让我们在合理的时间内从原型到MVP。