论坛首页 Java企业应用论坛

团队出现这样的场景大家一般怎么处理

浏览 49150 次
精华帖 (2) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-15  
downpour 写道
你们的项目经理用来干嘛的?构架师用来干嘛的?就任由你们在一个无法跑起来的环境中按模块开发?

PS 难道你们是开发完一个模块再一起commit一批文件的?这是什么开发习惯?


曾经有一次写了一堆东西,就快要提交前的几分钟硬盘挂了
后来有一段时间恨不得保存一次文件就做一次commit
0 请登录后投票
   发表时间:2009-01-15  
xmx0632 写道
downpour 写道
你们的项目经理用来干嘛的?构架师用来干嘛的?就任由你们在一个无法跑起来的环境中按模块开发?

PS 难道你们是开发完一个模块再一起commit一批文件的?这是什么开发习惯?


曾经有一次写了一堆东西,就快要提交前的几分钟硬盘挂了
后来有一段时间恨不得保存一次文件就做一次commit

每次单元测试过了就上传一次?
0 请登录后投票
   发表时间:2009-01-15  
不应该会出现这种情况....
如果大家用得都是update完的最新代码修改,然后上传,上传后应该是一样可以运行的。尽量不要有两个人同时修改同一个文件。
0 请登录后投票
   发表时间:2009-01-15   最后修改:2009-01-15
楼主,要求人家集成测试完成,才能提交,这样做也不合理,太理想化了(而且也不好执行,更不好监督)。集成测试得有专人负责。

    说不好执行,原因是:开发人员每次修改代码或加新功能,都要整体部署跑一回,代价太大了。而且如果别人的模块有问题,可能就导致他的测试没法进行下去。
    不好监督,是因为集成测试关联的面太多了,他自己测肯定也没法保证质量。他说他提交时,整体测通了,是后面别人的模块提交后导致的错误,你还能真把整体的代码回退到那检查一下么?

    出现楼主说的这种问题,我觉得还是项目管理和技术负责人的原因。比如js命名冲突,首先分派任务时,每人实现的功能上尽量不要有重叠(比如同样的校验,一人写一回),另外js开发分模块应该有自己相应的“包名”(比如javascript的单例模式),尽量不用全局变量。包冲突,不知道你们是用maven管理的工程么?用maven可以很好的解决包冲突的问题(开发时是,部署时更是)。CSS得专人来写了,各写各的那在集成时铁定会出问题。
0 请登录后投票
   发表时间:2009-01-15  
第一原则,保证SVN上checkout下来的代码是最完整,最新的代码,且能正常build通过,运行通过。
0 请登录后投票
   发表时间:2009-01-15  
shin- 写道
看到本帖,想起以前看到一本小书《移山之道》中间的“构建大师”
大致意思是:
签入时必须Down下最新的代码,编译并运行所有单元测试,成功后一次性签入
对于导致构建失败的成员,授予“构建大师”称号
(1)负责管理构建服务器
(2)调试构建,负责找错并分析原因
(3)抓下一个构建大师

关于签入流程
文中建议是:当行为只关系自身时松,关系整个团队则严





对头。

楼主提的问题并不是什么很难解决的问题。就是一个习惯。
0 请登录后投票
   发表时间:2009-01-16  
不知道有没有人在用clearcase?
clearcase可以很好的解决这个问题:
做deliver之前强制rebase到新版本-如果在你上次rebase之后有更新的话。
checkout和checkin只是在自己的分支中做,只有delivery到integration stream中才是最终的提交。
自动merge可以合并一般的改动,大的修改会自动提示需要手工合并。

当然clearcase确实价格不菲。哪位xd知道有类似的开源系统?
0 请登录后投票
   发表时间:2009-01-16  
csevan 写道
我认为定个规矩,首先第一修改之前需要先UPDATE,再进行修改。
第二每天都要养成下班前提交的好习惯。
第三每天都要养成上班前UPDATE的好习惯。

如果有JAR包冲突,在SVN上要养成,统一开发包的好习惯。
(即:JAR包一起放入SVN里面,开发只准用SVN里面的包,如果出现新增包,也应该加入SVN中,以避免后期这种包冲突及兼容问题,也可以提早发现新包存在。)

第四最好是要有所沟通,每次新加入的东西,确定会影响其他模块的话,应该在开发之初就要了解,开发后也要知会相关人员,看是否符合要求。避免后期修改问题。最好能做代码review
(对方很忙的话,也可以口头描述一下)


帖子太长,没完全看完。

我觉得 csevan 说得好。其实我们每天都是这样做的。
0 请登录后投票
   发表时间:2009-01-16  
如前面一位仁兄所说,需要建立开发,测试(包括集成测试和用户测试)和生产的分支,每个分支必须要严格管理。开发的分支由开发人员自行管理,但集成测试环境就要由QC来做了,这是第一道关,如果在这个环境代码就出了问题,那就需要返工,也不会出现说到了生产环境的时候才发现问题。另外,并行开发的管理历来就不是一件容易的事情,比较好的办法是不定期得合并,除了开发分支往测试分支合并,也需要经常将生产分支往开发分支合并,这样在上线的时候才不会出现比较大的冲突,也容易解决。工具只是管理的一种选择,真正能否发挥工具的作用,还要靠管理人员的素质。

我也使用过CVS,VSS和ClearCase,觉得SVN是一款非常出色的免费代码管理软件,如果说有人使用了之后会有阴影,我相信是因为不熟悉SVN的原因。
0 请登录后投票
   发表时间:2009-01-16  
以功能为单位分配工作,可以很好的解决楼主的这个问题
用户开发完一个分配功能,提交一次svn(要添加本功能的注释),然后去领取下一个功能
每次提交都有目的性,而不仅仅是为了备份本地文件

如果能达成这种共识 情况些许会好点
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics