锁定老帖子 主题:关于团队开发时,代码格式化的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-02
凤舞凰扬 写道 不过我这样说,并不是赞成楼上说merge只是美丽童话. 代码格式化对于自动化merge有一定帮助,但从来不代表代码格式化是给Merge使用的.所以楼主将这两个话题放在一起讨论,有些牵强.
我想他是想表達,如果一個團隊對一份 code 有不同的格式化習慣,則到我手上就改成我的風格, commit 到 cvs ,到別人手上又改成他的風格,又 commit ,則 cvs 上的版本間差異就都是這些格式化的差異,反而無法突顯真正修改的地方,而這也造成 merge 時的困擾。 |
|
返回顶楼 | |
发表时间:2006-10-10
注册了一段时间,这是第一篇(表情符号的插入在firefox不支持?)
我也是头痛merge两个人的修改才追踪到这篇的。。 一个类文件,nk行,我一比较发现满屏的冲突,都不知道从何下手了, 实际上它之加了几行字,只是我们的格式化风格不同, 难道就不能再比较之前,将cvs发过来的代码先就我本地指定的格式来一个格式化,然后再比较吗? cvs客户端是不是可以先加一个这样的feature? kabbesy 写道 多谢前面的讨论。
我的问题的确是从merge出发的,没想到引发到代码格式标准的应用讨论上去了 单就merge这点而言,代码标准也只能为这个神话做一层简陋的铺垫而已 cvs merge,依然有不少容易出错的地方 YinH 写道 说点可能是题外话,
我看到楼主说格式代码是为了merge,我自己认为merge是个美丽的童话,一些商业的版本控制软件,比如cc,在那里吹嘘自己的代码merge是如何智能,我觉得搞笑。 我觉得merge再智能,代码写得再标准,难道你就真的敢在多个人修改同一个代码文件的情况下对其进行merge吗?反正我是不敢。 所谓的branch等机制,我觉得也是在基于组件化的机制上进行的。比如,trunk中有a,b,c三个组件,我分出一个branch,这个branch加了d这个组件,同时改了c这个组件,那么,你trunk中最好只是修改ab两个组件,然后我branch merge回来,当然,我branch就不敢修改ab了,而你trunk也最好别修改c组件。否则。。。。我想代码出问题的可能性非常大。。。。 我不知道大家对这个的观点是如何的,总之我觉得完美的merge是个美丽的童话,不太可能的。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
返回顶楼 | |
发表时间:2006-12-20
merge是非常非常好用的功能,ClearCase还能记录着merge的历史,多次merge也不会乱。
有代码格式标准可以避免由于不同格式引起的merge的冲突。 一般来说,格式化代码应该是在保证你独占这段代码的时候进行,如果是需要merge的,见到不顺眼的格式也只能先忍一忍了。 |
|
返回顶楼 | |
发表时间:2006-12-20
snomile 写道 swing 写道 冰云 写道 kabbesy 写道 冰云 写道 ant checkstyle task
强制所有人使用同一种style? 那还不如强制所有人使用同一种eclispe的style format格式文件呢。反正是可导入导出的 这需要自动化的。checktyle可以自动化。 如果靠人自己按ctrl+alt+f,有时候会忘记。 而checkstyle不光是检查format 还可以对一些java的编程习惯作提示,例如final static,变量习惯等 这对于一个team来说是必须的。 你需要先建立一个持续集成环境。如果有人break builds就发出提示 没错,搂住要听nimo的劝告,这可以人家血的教训积攒的经验。 能否请你代言一下是什么样的血泪教训?我现在对这个问题恰好较感兴趣,希望能与你好好讨论一下。 根据我的观察和感觉,大部分公司实施代码检查通常是一种管理行为,即促进团队形成的一种手段,通过强制统一的风格(类似军队、学生统一着装),潜移默化地促进团队的形成。 如果指望靠代码检查来增进代码的可理解性,这里有我的一点总结。造成代码难以理解的原因,按照重要性如下递减: 1. 没有能反映真实情况的需求、用例、设计文档 2. 虽然有文档,但是设计太糟糕,造成代码结构混乱不堪。 3. 代码组织太差,比如出现行数过百的大函数,或者强行把不相关的代码写在一个类中。 4. 缺少必要的注释。 5. 变量名称错误,不能反映变量所代表的含义。 6. 变量名称不符合规范。 7. 代码缩进等细小的风格问题。 这几个问题,只有6和7能通过代码检查解决,但是6和7实在是不怎么重要。 我唯一观察到的有真实价值的代码风格检查出现在这种场景中:客户在合同中即要求开发方提供全部最终源代码。此时的源代码上可能需要加入公司的统一标识、版本、作者等一些版权信息,同时整齐的代码会显得更“专业”一些。 请Swing兄发表一下看法,在你的印象中代码检查在哪些真实的场景中发生了很大的作用? 对日外包项目1.5人月... 每人月2k-4K行 你用的项目如果加上检证人员人月数会不会升一倍? |
|
返回顶楼 | |
发表时间:2006-12-22
提一个看起来不很相关的问题,代码的review频度如何?
既然很少能做到真正的结队编程,我想review也是应该的 既可以增强团队交流,增加知识的快速交流, 也可约束一些不规范的行为,呵呵 |
|
返回顶楼 | |
发表时间:2006-12-22
引用 2. 虽然有文档,但是设计太糟糕,造成代码结构混乱不堪。 “设计糟糕”是有征兆的,会在代码上有所体现。 引用 3. 代码组织太差,比如出现行数过百的大函数,或者强行把不相关的代码写在一个类中。 譬如说,用checkstyle强制每个文件不超过200行。 引用 4. 缺少必要的注释。 可读的代码不需要注释。 |
|
返回顶楼 | |
发表时间:2007-05-24
。。。。。。YUHONGMIN 已经完全说到了点子上。 ss
|
|
返回顶楼 | |
发表时间:2007-05-26
最郁闷的一次,我眼看着人家在我写的JSP页面里写java脚本,看着文档越来越膨胀(及其复杂),我心里那叫一个。
不过最后我没再接手那个页面,我曾告诉后来接手的人,重构。不过他们每人听,继续将就用着! |
|
返回顶楼 | |
发表时间:2007-05-28
如果楼主是担心没有说服力,那么不如要求大家都遵守 JDK 源代码的排版格式。
|
|
返回顶楼 | |