2015-02-06 89 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」可用文件中可能有意義。

如果您的幾條路由與您的應用程序的訪問/操作配置有關,它們也可能是其自己文件的候選項。

就性能而言,只會在程序加載時受到影響,因爲在典型情況下,節點會在加載應用程序中的每個文件時加載所有需求。

我一直遵循的規則是:將足夠的代碼打包到單個文件中,以便整體而言,它提供一個函數或服務,除此之外不提供任何其他服務,特別是如果該服務可以在其他應用程序中重用。

實際上,每個文件的正確行數是允許文件完成其目標的行數,而不是更多。

如何決定代碼應該完成什麼以及如何將可能複雜的應用程序分解爲可抽象的部分完全取決於您。

相關問題