如何使javascript代码易于维护
总之,我正在开发一个高度交互的web应用程序,它需要大量的jquery或js代码,我发现我的代码变得有点难以维护,而且不那么可读。有时甚至作者也找不到指定的代码 到目前为止,我为清晰代码所做的工作如下如何使javascript代码易于维护,javascript,Javascript,总之,我正在开发一个高度交互的web应用程序,它需要大量的jquery或js代码,我发现我的代码变得有点难以维护,而且不那么可读。有时甚至作者也找不到指定的代码 到目前为止,我为清晰代码所做的工作如下 一个js文件中有一个js组件。(例如,CustomTab.js是我应用程序中的一个选项卡组件。) 使用模板生成基于JSON的组件HTML 使用jqueryui 低调的JavaScript 还有什么我需要注意的地方吗?不管怎样,对于如何使js库/框架易于维护的任何建议或推荐技术,我都敬请参考。我可以
CustomTab.js
是我应用程序中的一个选项卡组件。)还有什么我需要注意的地方吗?不管怎样,对于如何使js库/框架易于维护的任何建议或推荐技术,我都敬请参考。我可以建议您使用模块模式和来组织您的JavaScript代码。对于产品,您将能够使用RequireJS优化器将模块构建到一个JavaScript文件中
此外,如果您预期客户端应用程序将是巨大的,考虑使用一些像JavaScript MVC框架一样的ReBoo.js和服务器端REST服务。< /P> < P>我使用这个名称空间模式为我的库:
MyLibrary.ListView.js:var MyLibrary = MyLibrary || {};
MyLibrary.ListView = {
doSomethingOnListView: function() {
...
return this;
},
doSpecialThing: function() {
...
return this;
},
init: function() {
// Additional methods to run for all pages
this.doSomethingOnListView();
return this;
}
};
无论哪一页需要:
<script type="text/javascript" src="/js/MyLibrary.ListView.js"></script>
<script type="text/javascript">
$(function() {
MyLibrary.ListView
.init()
.doSpecialThing();
});
</script>
$(函数(){
MyLibrary.ListView
.init()
.doSpecialThing();
});
如果某个页面需要附加功能,您甚至可以链接方法。目前,我还在为我的公司开发JS框架。我所做的是使用面向对象的JS元素。换句话说,我正在实现与C#库类似的代码(没有那么相似,模拟将是正确的词)。例如,在C#中,您使用Microsoft.Window.Forms,因此我可以使用JSOOP并使用方法扩展和重写来创建相同的场景。但是,如果您在项目中走得太远,那么将JS代码转换为JSOOP将非常耗时 使用JSLint,这将验证您的代码,并将代码简化为可读的、脚本引擎友好的代码。虽然JSLint非常严格,所以您也可以使用JSHint 为每个组件使用单独的文件是一个好主意,我也在这样做
如果您愿意,可以下载jQuery开发人员版本,您可以大致了解他们是如何创建框架的。我从jQuery框架中学到了很多东西 这正是我每次问自己的问题。我认为有几种方法可以使代码易于维护
- 参与javascript开源项目,了解他们是如何解决这个问题的。我认为您可以从每个项目中收集一些独特的解决方案,项目结构的公共部分将回答您关于维护的问题
- 使用预先准备好的解决方案,例如,或者如果我没有弄错的话,angular不会给您提供结构,而是为您提供强大的工具来创建代码更少的页面。还要检查现成的解决方案
- 阅读书籍,试着为你的需要创造一些结构。这将是困难和漫长的,但结果(也许几年后:)将是可怕的
jquery cdn
,以便从javascript文件夹中删除jquery文件。您为什么说您的代码变得难以维护?您遇到了哪些具体问题?具体来说,为什么作者找不到代码?还有什么细节可以帮助我们吗?@pKs对于jquery主文件,我们可以照你说的做。但是对于使用自定义下载jquery文件。我们能做到吗?谢谢。这取决于你选择的方法。如果我是你,那么我会尝试GWT
为我管理javascipt以及诸如此类的东西。嗨,Evgeny,我喜欢你的想法。你能告诉我更多关于js mvc的信息吗?它的好处是什么?谢谢。主要的好处是浏览器关心视图渲染和用户操作的处理,因此您的服务器负担很大,交互通常通过AJAX进行,它改善了用户体验。我当前的项目有86%的JavaScript代码和12%的Python代码(RESTful服务),因此您可以想象在客户端和服务器上使用了多少处理器时间。我可以将jquery UI与之结合起来吗?因为我认为jQueryUI擅长ui展示。当然,谢谢。您可以在主干视图中呈现任何元素,并在其中具有自定义逻辑,例如初始化jQuery UI小部件等。嗨,鲁本,所有这些都是好方法,但我更喜欢第二种。试试JSMVC框架,谢谢。