【发布时间】:2013-03-29 22:33:14
【问题描述】:
在我看来,精心设计和模块化的代码的好处是可重用性和组织性。在一个文件中以大块编写的代码难以阅读,并且重复使用代码的一小部分需要仔细复制粘贴,而不是包含语句。
特别是关于 Javascript,我最近遇到了一个让我思考这个问题的例子。对 SO 进行了评论,大意是,如果您没有逐页有条件地包含您的 javascript,这“表示未能正确模块化 JS 代码”。但是,从代码重用和组织的角度来看,没有理由考虑页面加载时会发生什么。如果将代码编写在一堆单独的文件中,然后在提供服务之前将其混合在一起并缩小,那么代码将同样具有可读性。例如,rails asset pipeline 就是这样做的。
当我第一次遇到资产管道时,我脑子里一片混乱,我开始想“如何让 JavaScript 只在需要时才加载?”我阅读了a few SO questions 和an article on the matter,并开始认为也许我不应该担心我的代码“编译”后会发生什么。
编写模块化代码的目的纯粹是人类活动,我们是否应该在代码开始运行后停止担心模块化?对于 Javascript,我们是否应该担心我们的脚本在被包含之前被混合在一起?
【问题讨论】:
-
想象缩小就是编译。如果他们的模块化代码在编译后不是模块化的,那么任何开发人员曾经会关心吗?不,同样适用于 JavaScript。至于在需要时加载,这在很大程度上取决于您的用例。如果可能需要代码,则应加载它。如果不太可能需要,则仅在需要时才加载它可能会有好处。
-
@Dave 这就是我的想法,但似乎很多人认为我们应该逐页加载 javascripts(我从人们对 rails 的回答中收集到这一点)资产管道问题)。
标签: javascript ruby-on-rails-3 performance coding-style modularity