Node.js 比 Java 有更高的认知负荷

首先,我要说的是Java而不是Node。 我确实喜欢节点,我只是很少使用它。

我还要说的是,我对节点的缺乏经验完全有可能使我的想法蒙上阴影。

我认为Java比node更易于使用。 而且我知道这将是一种非常不受欢迎的意见,甚至人们也会想知道我怎么能这样认为。 这就是我的理由。

想象一下我正在编写一个简单的单页应用程序。我将使用:

  • 某种形式的HTTP服务器,用作REST / GraphQL /任何服务。
  • 创建React App来构建UI(出于参数考虑-我喜欢它)
  • 数据层的Postgres。(往上看)
  • 使用硒的完整堆栈端到端测试

在Java世界中,我可以建立一个允许执行此操作的构建。最终结果可以非常容易地使我执行以下mvn clean install操作:

  • 下载所有依赖项
  • 生成后端应用程序
    • 编译所有代码
    • 运行所有单元测试
    • 运行静态检查-例如checkstyle
    • 全面集成测试
    • 为应用程序构建docker映像
  • 建立网路应用程式
    • 产生输出文件
    • 运行所有单元测试
    • 为WebApp构建Docker映像
  • 建立最终测试
    • 为测试构建Docker映像

然后,我的输出可以一起或单独启动前端和后端,并且重要的是我可以运行整个系统的Docker组成堆栈,包括端到端测试...

这里有趣的是集成测试。 我可以启动服务器,使用一个库自动启动和停止数据库,自动管理数据库架构,然后对它运行整个测试。 而所有这些只是隐藏在一个标准构建命令后面的一件事,该命令被数百万其他项目使用...

现在让我们考虑节点。

首先,据我所知,没有办法在节点中进行多模块构建。 这意味着我必须知道分别构建三个不同的模块。

其次,集成测试。 询问了一下之后,似乎很不喜欢采用多合一流程的想法。 通常期望您将执行以下操作,而不用一个命令运行测试,而是为您完成所有操作:

  • 自己启动所有依赖服务-也许使用Docker
  • 启动服务以测试自己-也许使用docker
  • 然后对此进行测试
  • 然后自己把它拆下来

要实现这一点,需要付出很多努力。

第三,执行多步骤构建比较麻烦。 诸如grunt之类的工具可以使其变得更容易,但这增加了一层复杂性,只是隐藏了另一层。 另外,您可以使用Shell脚本,但这不是跨平台的。

这只是一个示例,但是它已经表明,运行内置节点比在Java中复杂。 很多人认为这些步骤中的每个步骤都比Java版本简单得多,这是事实。 但是,您必须了解这一切的事实只会使事情变得更加困难。

现在,这并不是说一切都不好。 这里有很多美好的事物。 在节点中获得非常快的循环时间非常容易编写代码,获得单元测试结果一秒钟后闪烁,然后重复。 或编写代码,让服务器稍后重新启动,然后重复。 Java只需要更长的时间就可以达到这些目的。 但是,开发人员需要更多的了解才能达到相同的目的。

至少在我看来是这样的。我很可能错过了一些东西,这些东西使这一切更容易理解。

原文链接:https://dev.to//grahamcox82/nodejs-has-a-higher-cognitive-load-than-java-2hi6


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部