为多个开发人员构建大型Web应用程序

时间:2008-10-28 19:57:27

标签: jquery project-management

我有几个开发人员即将开始研究基于jquery的Web应用程序的前端。我们如何构建应用程序,以便多个开发人员可以同时处理ui。用户的最终结果将只是一个Web“页面”,但我不是所有的客户端开发都发生在一个文件中。已有另一支团队在后端工作。

7 个答案:

答案 0 :(得分:3)

如果您从头开始,可以将其分解为标准的3层架构。

让一个人处理数据库结构并为数据创建适当的访问库。

让一个人在业务/工作流层上工作,设置所有数据交互。

让所有前端的第三个人使用jQuery。

我确信在这之后会有最小的碰撞,每个人都可以使用一些模拟数据/方法,直到官方的东西上线。

答案 1 :(得分:1)

如果您要让多个人处理相同的文件,您的SCM应该能够为您管理。

但是,如果您想让事情变得更轻松,您可以随时将您的javascript文件细分为多个部分,您可以动态包含这些部分,也可以在构建/部署阶段将其合并然后缩小。

答案 2 :(得分:1)

将目标页面标记的部分分解为服务器端包含或其他可组合的部分,每个部分包含在具有唯一ID的DIV(或其他适当的标记)中,然后为CSS样式添加单独的CSS和JS引用jQuery位为每个部分设置样式并为其设置动画。

虽然CSS规则会进行级联并且jQuery查询会发生冲突(因为它们是基于CSS选择器的),但仔细使用ID和类可以在最终页面上创建粗略的“沙箱”,其中每个前端都是最终开发人员可以相对独立地工作。

同时(或者随着各个部分开始稳定),您可以投入一些精力来开发部署的集成策略,包括将单独的CSS和JS文件连接到单个资源(尽可能)和gzipping,minifying,等

由于固有的级联,您需要注意连接CSS文件的顺序,但是如果通过将所有样式选择器限制在每个部分的给定ID'd标记内来很好地隔离它们,你应该没事。

答案 3 :(得分:1)

尝试为面向对象的方法建模,以便一组开发人员可以在对象内部编写必要的功能,而其他开发人员则基于对象提供的功能。

JavaScript非常适合这种方法:基于商定的对象接口构建的开发人员可以开发简单的模型原型,在写入真实对象时将丢弃这些原型。

当然,正如jonnii所说,你应该依靠一些SCM来管理你的代码库的并发更改。即使任务被拆分,开发人员也可能需要更改其他人的代码。如果你在Windows下,我会推荐使用git或SVN(因为它有TortoiseSVN,如果你刚开始使用SCM,那就非常好了。)

答案 4 :(得分:0)

听起来您已经知道您希望哪些开发人员使用该产品,并计划了工作负载以防止重叠。像subversion这样的内容可以让您跟踪哪些项目添加到哪个文档,以及撤消不需要的更改或合并以前覆盖的内容等等。它是免费的,它是一个救生员。 :) HTH

答案 5 :(得分:0)

我知道这可能不是一个选择,但这是MVC或MVP的结构。它删除了网站开发的“网页”方法,并转向强类型模型代码设计,使用“方法”调用所需的逻辑。换句话说,MVC中不存在“物理页面”,只有对象上的方法。

(注意:我不是Java开发人员,实际上是C#,但你可以得到这个想法)

网址:

    /products/532

使用Url重写,它将是一个“网页”及其编译的“代码”,如:

/products/showproduct.jsp?productid=532
/products/showproduct.java (code behind)

但是对于MVC中的页面,它将是:

/Controllers/ProductController.java <- ProductController.ViewProduct(int id)
/Models/ViewModels/Product.java <- Product() class
/Views/Product/Index.html <- very simple display of html.

ProductController查找并获取Product()的ViewModel,连接Index视图,替换要显示的任何变量,最后ProductController将完成的html返回给客户端。

此方法将网页逻辑抽象为可在源存储库中管理,版本化,合并,分支等的代码。

答案 6 :(得分:0)

我们最终在这个项目中使用了Dojo(1.3),因为它有一个编写模块化javascript(dojo.require)的机制,我们找不到jQuery中的等价物。目前,有几个AMD(异步模块定义)库,例如RequireJS或curl.js,可以与jQuery一起使用。如果我现在开始这个项目(而不是2008年),我的问题的答案将涉及使用一些AMD库和可能的javascript mvc框架。 Dojo仍然拥有所有这些,我们仍在使用它。