2015-02-06 88 views
0

我知道这是一个稍微有点主观的问题,但我会很感激来自经验丰富的网络应用工程师的洞察力。node.js中每个文件的最佳代码行数是多少?

我目前正在使用REST API/Single Page App类型的体系结构在node.js中处理中等大小的web应用程序。在服务器端,我一直在努力知道什么时候分割单个文件并使用require()来调用一段代码。

我知道文件复杂度不太可能影响最终的生产服务器性能,我想知道goldilocks范围以平衡可读性与目录结构复杂性。

还有一个类似的问题,专门针对古典语言,如vb.net here,并有一个关于web应用程序体系结构here优秀的问题。

回答

0

我不认为有任何性能限制。以我的观点来看,文件的好分离(这意味着代码组织性更好,而且你做的东西少得多)比限制'require'用法更有效率。就我个人而言,当内容与文件的其他部分无关时,我会分割文件。为了做干净的代码,我个人将我的代码分成三个文件在我的API端点。让我们以用户为例:

  • index.js(它包含我的路由定义)。我需要我的用户 控制器功能。

var controller = require('./user.controller'); var router = express.Router(); router.get('/:id', userController.get);

  • user.controller.js(其中包含在服务器侧的用户的逻辑)。用户控制器将调用用户模型定义var User = require('./user.model');
  • user.model。js(包含用户模型定义 - 在这种情况下使用MongoDB)

有很多关于网络良好实践的指南。我最好的建议是看看使用样板angular-fullstack生成的东西,这是应用Node.js良好实践的服务器端部分。 (https://github.com/DaftMonk/fullstack-demo/tree/master/server)。一旦你熟悉了总体结构,你就能够创建出符合你需求的你自己,没有普遍的回应。

1

而不是计算类或线,我会考虑一个特定文件的多少内容可以根据它应该完成或提供的内容被抽象到它自己的模块中。

如果您的app.js包含一千条路由,将这些路由放入单独的“require”可用文件中可能有意义。

如果您的几条路由与您的应用程序的访问/操作配置有关,它们也可能是其自己文件的候选项。

就性能而言,只会在程序加载时受到影响,因为在典型情况下,节点会在加载应用程序中的每个文件时加载所有需求。

我一直遵循的规则是:将足够的代码打包到单个文件中,以便整体而言,它提供一个函数或服务,除此之外不提供任何其他服务,特别是如果该服务可以在其他应用程序中重用。

实际上,每个文件的正确行数是允许文件完成其目标的行数,而不是更多。

如何决定代码应该完成什么以及如何将可能复杂的应用程序分解为可抽象的部分完全取决于您。

相关问题