广州睿东网络科技有限公司是国内最专业的香港空间,云主机,香港VPS,香港服务器租用提供商,专注为国内站长提供高速且稳定的香港空间,云主机,香港VPS,香港服务器租用,欢迎您的选购!
当前位置:首页 -> seo模板 -> ecshop模板

拒绝 Python、C# 和 Go,我只用 Node.js!

云服务器 34℃ 1889评论
嵌入式资讯精选

Node.js 实在是太强大了,远远不止运行网站那么简单。

我要写很多脚本。很多很多脚本。许多时候只是因为许多任务太复杂,或者量太大,以致没法手工完成。所以任何需要花时间的任务我都会写脚本。脚本不仅能减少错误,还能提高效率。我常说的一句话就是:

如果一件事情要做两次,那就写个脚本吧。

一些常见的任务有:

  • 从巨大的数组中找出匹配的字符串,或者某个值。

  • 删掉所有满足某些条件的一些值。

  • 比较 x 和 y 然后输出 z。

我知道大多数程序员都认为 Python,甚至 C# 和 Go 更适合这些任务,但我一直都选择 Node.js 的理由有三个。


不会阻塞 I/O


默认情况下,Node.js 可以读取文件、解析内容放入数据库,再将新内容写入文件,这一切几乎都不需要思考。虽然 Python 和其他类似的语言可以通过库函数实现异步的能力,但默认情况下 Python 不是异步的,必须等一个函数执行完成后才能执行下一个函数。

Node.js 就没有这个问题,因为它的设计目标就是处理 Web 上连续不断的请求,而且它的设计是一切皆在后台处理(如文件访问、邮件等等)。

这个特点非常适合我的任务——我经常需要从我的研究对象中提取信息,然后保存到数据库中供以后使用。这样做还可以持久保存数据,同时释放内存,因为内存中不需要保留整个数组也可以调用数据库中的信息,操作、修改数据,所有这一切都在后台执行,所以可以在数据库中存储更多的信息。

I/O 请求也可以放在单独的线程中执行,与 Node.js 的主线程独立。也就是说,读取特别大或者读取困难的文件不会影响到主程序的性能(除了不能立即获取文件内容)。


自给自足


在编写只需使用几次的临时脚本时,代码优化并不重要。重要的是把代码写出来并运行。而负责运行 Node.js 的 V8 引擎(C++)正好能派上用场。

如果你只能将数组放到内存中操作,那么当数组非常非常大时,你会担心机器的状态和使用的内存量。幸运的是,V8 能通过自动垃圾回收来处理这一切。

也就是说,一块信息不再使用之后(比如从数组中删除掉的信息),其内存会自动被清除,然后在下次垃圾回收时被释放。尽管垃圾回收的检查和回收过程很复杂,但至少我可以专注于编写我的代码,而不用担心内存管理等,可以放心地把这一切交给 V8 来处理。


交互式结果怎么办?


一方面 Node.js 的目标之一就是运行网站。而另一方面我需要显示脚本结果或者将其发给别人,比如让别人也能查看运行结果甚至能够修改脚本的运行参数,所以我可以利用 Node.js 的真正的目标来实现这一需求。

Node.js 可以通过模板语言很容易地将结果直接放到服务器上。我使用的模板引擎是 EJS,因为它跟脚本一样非常直观。这是典型的“只做一件事并且做好一件事”的例子。

我知道其他脚本语言也能运行网站,而且也非常容易(比如 Python),但能在同一个脚本中编写逻辑代码并提供结果,而无需离开 Node.js 的生态系统,还是很有诱惑的。

以上就是我干什么都是用 Node.js 的理由。不论是构建网站,访问数据库还是编写脚本来自动处理文件,我都会默认选择 Node.js。在此也推荐你也试试用 Node.js 写个脚本。

原文:https://medium.com/@kieranmaher13/why-i-use-nodejs-for-basically-everything-i-do-e0a627787ecc

作者:Kieran Maher

译者:弯月,责编:屠敏

1.有些道理需要写好多年代码才能悟出来!

2.官宣:你爱的STM32又出新子系列了!

3.Python正向硬件圈杀来!工程师们,别再问需不需要学Python了!

4.在PC上对MCU程序中的数据进行可视化,用过FreeMASTER吗?

5.希望这个教训,做单片机开发的朋友都不要再犯!

6.我为何要弃 Java、JavaScript、Ruby 于不顾,而去寻找新的编程语言?

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

发送中