Tag: 项目管理

使用JavaScript命名空间有任何危险吗?

在创建JavaScript命名空间时,是否应该注意任何危险/警告? 我们的项目相当广泛,我们运行了很多JavaScript文件(20多个,期待更多)。 不使用命名空间就不可能有任何代码可维护性,所以我们这样实现它们: var namespace1 = { doSomething: function() { … }, doSomethingElse: function() { … } } 然后创建层次结构,我们将它们链接起来: var globalNamespace = { functions1: namespace1, functions2: namespace2, … } 这工作正常,但它本质上是一个“技巧”,使JS表现得好像它确实有名称空间。 虽然这种方法得到了很多使用,但大多数文献似乎都集中在如何做到这一点,而不是是否存在任何可能的缺点。 随着我们编写更多JS代码,这很快就会成为我们系统工作方式的一个组成部分。 因此,无缝工作非常重要。 是否存在这种“诱导”命名空间系统导致错误或需要特别注意的情况? 我们能安全地期望所有浏览器都有相同的行为

管理大型项目中的JavaScript复杂性

我应该使用什么来管理我的应用程序中越来越多的JavaScript文件? 我们正在使用多个应用程序构建django应用程序。 每个应用程序具有不同的function,必须以三种不同的模式(PC,平板电脑,移动设备)呈现。 JavaScript中发生了很多事情:管理从服务器接收的数据,处理用户事件,注入HTML片段以及加载子组件。 一些function在应用程序和视图模式之间共享,但通常编写特定function是有意义的(例如,hover和单击事件可能必须在PC布局与平板电脑布局上以不同方式处理)因此我们正在分组这在基于app / layout / function的文件中。 在某种程度上,我们使用带有命名的平面文件结构来区分文件类型: ui.common.js ui.app1.pc.handlers.js ui.app1.pc.domManupulators.js ui.app1.tablet.js ui.app2.pc.js … 然而,现在,随着应用程序(和角落案例)数量的增长,这种方式正在迅速变得不可用(我们接近20多个文件,并且在我们完成时期望可能超过40个),所以我们将所有内容都放入这样的目录: js/ common/ core1.js ajax2.js app1/ tablet.js pc.js app2/ mobile.js … 我一直在寻找JavaScriptMVC来帮助解决这个问题。 虽然它确实提供了有用的工具,但似乎没有什么能够更好地管理我们的巨型JavaScript库。 我们很快扩展了我们的开发团队,代码可维护性非常重要。 有什么东西可以让我们的生活更轻松吗? 您在工作中使用的习惯/经验法则是否可以缓解这种情况?