如何团队合作开发大规模web app?
来源:互联网 发布:java多线程 lock 编辑:程序博客网 时间:2024/05/01 14:35
/*最近在做项目,虽然整体对项目有了了解,但是如何给团队中的每个人分工,还真是弄不明白*/
今天被朋友问到一个问题:如何团队合作开发一个复杂的web app?
前端开发在团队合作时,有两种情况:一种是web page模式,一个人开发一个网页,网页中的应用都很零碎,不会特别复杂,代码规模较小。这种情况,多人团队合作其实需要做好的事只有两个,1)注意用匿名函数将代码包进来,预防将来有新模块加入时彼此产生影响,2)抽取共公组件,一些全站重用的模块,不要重复开发,这点只要做好js的分层就好了。关于web page的多人团队合作,在我的书《编写高质量代码——web前端开发修炼之道》中已经讲过了。
另一种情况是web app模式,多人同时开发一个较大型的页面,比如google地图、webqq、新浪聊天室这样的web app,代码规模较大,和web page有很明显的区别。这种情况下,多人合作有更加深入的要求!
这种情况我是这么处理的:前期做好架构设计,全团队在一起开会商量,这个应用应该分成哪几个类,用UML图画好类结构和继承关系、组合关系,UML图不用太细,只用画出公共接口就行,因为公共接口是模块与模块对接的地方,也是团队合作的重点。画出UML图之后,就好办了,各个团队成员分别挑一些模块去各自实现,把接口实现好。团队中大部分人是开发model模块的,等着被control调用,而有一个负责开发control模块,把所有人的工作联接起来。
模块按单独文件开发,一个模块里只包括一个公有的类,对应一个js文件。模块按照一个基本范式进行定义,可以按commonjs的范式,也可以干脆就是一个window.xxx的全局变量。模块是否加载,由control决定,动态加载。可以使用requirejs这样的模块管理器,也可以自己开发一个,如果不考虑模块依赖关系处理的话,开发起来还是很简单的。我个人习惯使用YUI3的模块化范式和模块加载器。
之前新浪微博的web im是我负责团队合作工作的,就是按照最简单的方法——一个模块对应一个js文件,模块内的公有类,通过window.xxx显露出来,然后由control把它们全部动态加载起来。这样的方式在实战中效果很理想,团队在配合上非常顺畅。加上应用scrum来进行软件项目管理,每天早上的站立会议可以帮助团队加强沟通,迅速发现问题,整个开发过程非常透明,虽然每个人只开发一个模块,但其实对别人的工作内容非常清楚,每个人都有清晰的大局观。
- 如何团队合作开发大规模web app?
- 如何考核团队合作
- 如何改善团队合作
- 如何打造合作型团队
- 寻找游戏合作开发团队
- 团队合作开发的方式
- 软件项目开发团队合作
- 团队合作开发权限管理
- 硅谷NFX协会与Synereo合作加快ÐApp开发团队建设
- 如何使用github和git进行团队合作开发(队友和owner的仓库连接)
- 如何使用github和git进行团队合作开发(队友和owner的仓库连接)
- git团队合作开发流程【简洁】
- 团队合作
- 团队合作
- 团队合作
- 团队合作
- 团队合作
- 大规模Web服务开发技术
- HTML+CSS+JavaScript的头部信息里你不知道的事
- git 更新指定分支 指定文件
- 使用命令行和Eclipse两种方式编译Sonatype Nexus
- Oracle创建表空间
- svn 打tag 命令
- 如何团队合作开发大规模web app?
- subliem text2 下ctag的安装--方法跳转
- 张小龙专访系列(1):关于微信你可能不知道的10件事
- 常见多媒体压缩格式
- svn 回退版本
- 《重构》笔记
- 张小龙专访系列(2):不一样的产品思维
- svn 命令总结
- 将vim打造成IDE