锁定老帖子 主题:Rails程序开发的最大问题是代码规范
精华帖 (8) :: 良好帖 (16) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-09
gigix 写道 truesmile 写道 那就是结对的小组都停下来,blabla的由另一个人对刚交换的这个人解说咯
gigix 写道 truesmile 写道 当然不是“只了解自己那个模块”了,而是对其它模块不是很熟悉。还不能熟悉到进行结对交换后,就立即编写代码的程度。而是要前后看看:“哦,跟我交换的那个人做了什么什么,那么我接下来应该这样这样”,半天过去了,老板就要发飙了...
结对的另一个人呢? 有些事情呢你没有亲身体验过就只有想当然的猜 比如说谁告诉你“解说”就一定要“停下来”呢? 呵呵,确实没有尝试过敏捷开发,所以比较好奇。那是不是交换的两个人直接交接就行了,其他两个人继续编码,这样就不会出现停下来的情况? 以手头上的项目为例子,假设我和一位同事作为A组编写工作流的代码,然后另两位同事作为B组负责财务凭证生成模块。如果让我们写了2天,然后交换结对,估计第一次交换的两个人交接一个上午是没问题的,另外两个人可以继续编码,避免出现停下来的情况? |
|
返回顶楼 | |
发表时间:2008-09-09
truesmile 写道 呵呵,确实没有尝试过敏捷开发,所以比较好奇。那是不是交换的两个人直接交接就行了,其他两个人继续编码,这样就不会出现停下来的情况?
以手头上的项目为例子,假设我和一位同事作为A组编写工作流的代码,然后另两位同事作为B组负责财务凭证生成模块。如果让我们写了2天,然后交换结对,估计第一次交换的两个人交接一个上午是没问题的,另外两个人可以继续编码,避免出现停下来的情况? 所谓的”交接“其实比你想象的还要轻松 比较熟悉的那个人(A)开始做一件事,一边做一边说 写一个测试,说我们想要实现这个,run一下测试,失败 现在比较不熟悉的那个人(B)就开始动手了 虽然不熟悉,但只是一个很简单的测试,所以稍微讨论一下就可以实现出来 A再写一个测试,描述另一个分支情况 B再让这个测试通过 如此反复,用不了半天B也熟悉这个事情了,并且进度没什么耽搁 P.S. (1)任务要小。一个任务干了两天还没干完,以我个人的偏好来说是太大了。 (2)所以,交换要频繁,我倾向于每天交换。这样当项目进展一段时间以后你就得到一支所有人熟悉项目中所有部分的团队,于是就不存在所谓”交接“的问题了。 |
|
返回顶楼 | |
发表时间:2008-09-10
gigix 写道 toostupid 写道 建议:
放弃代码一致性的要求。但文档要好,每个细节都必须有文档。 当需要改又读不懂的时候直接重写。 这个才真叫扯淡 连代码都不能写得能让人读懂 我就奇了怪了,同一个人写出来文档难道就能让人看懂? 那就不知道了,我写的代码一向通俗易懂,所以没研究过这个问题。 一般我写文档是用数学语言定义的,都是set,list,map,<=,这些数学符号,函数也真的是函数, in,out都定义得比较完整,我不觉得这样的文档难读。 |
|
返回顶楼 | |
发表时间:2008-09-12
hideto 写道 我一直建议PM要设立一个项目架构师的角色,来统一大家的代码规范,但是PM不听
架构师是做代码规范监控用? |
|
返回顶楼 | |
发表时间:2008-09-12
总结发言,看下面的函数:
def 保持代码一致性(公司,领导,开发团队) 招聘臭味相投的人 if 公司有这个能力 pair_coding if 人员有pair的素质 and 领导可以接受 拆分团队,每个团队有lead,各个lead主要负责团队之间的沟通 if 团队成员过多 每天的team code review if dev <= 5~6 配备2个coach级别的dev if 大家对ruby rails 不熟悉 if pair coding 无法实行 把code review 到工作加入到代码提交的流程中,使用check style; 也可以由lead组织,定期做dev的讨论会议,一起讨论 code quality end end 公司,领导,开发团队 这三项输入都ok 的时候,才会达到最佳的效果。 (这个函数比较烂,写不出缩进) |
|
返回顶楼 | |
发表时间:2008-09-13
toostupid 写道 gigix 写道 toostupid 写道 建议:
放弃代码一致性的要求。但文档要好,每个细节都必须有文档。 当需要改又读不懂的时候直接重写。 这个才真叫扯淡 连代码都不能写得能让人读懂 我就奇了怪了,同一个人写出来文档难道就能让人看懂? 那就不知道了,我写的代码一向通俗易懂,所以没研究过这个问题。 一般我写文档是用数学语言定义的,都是set,list,map,<=,这些数学符号,函数也真的是函数, in,out都定义得比较完整,我不觉得这样的文档难读。 别人 != 你.clone() 开个玩笑,哈哈 |
|
返回顶楼 | |
发表时间:2008-09-16
gigix 写道
truesmile 写道
呵呵,确实没有尝试过敏捷开发,所以比较好奇。那是不是交换的两个人直接交接就行了,其他两个人继续编码,这样就不会出现停下来的情况?
以手头上的项目为例子,假设我和一位同事作为A组编写工作流的代码,然后另两位同事作为B组负责财务凭证生成模块。如果让我们写了2天,然后交换结对,估计第一次交换的两个人交接一个上午是没问题的,另外两个人可以继续编码,避免出现停下来的情况? 所谓的”交接“其实比你想象的还要轻松 比较熟悉的那个人(A)开始做一件事,一边做一边说 写一个测试,说我们想要实现这个,run一下测试,失败 现在比较不熟悉的那个人(B)就开始动手了 虽然不熟悉,但只是一个很简单的测试,所以稍微讨论一下就可以实现出来 A再写一个测试,描述另一个分支情况 B再让这个测试通过 如此反复,用不了半天B也熟悉这个事情了,并且进度没什么耽搁 P.S. (1)任务要小。一个任务干了两天还没干完,以我个人的偏好来说是太大了。 (2)所以,交换要频繁,我倾向于每天交换。这样当项目进展一段时间以后你就得到一支所有人熟悉项目中所有部分的团队,于是就不存在所谓”交接“的问题了。
我不知道国内有没有ruby团队这样干过,当然这个看上去是很好,敏捷嘛,咨询师的方法总是那么的美好。 在一般的团队中,自己把自己负责的那块做好,把代码写的可读性强一点就已经不错了,你这种方法适合起码有2-3年经验以上的人使用 |
|
返回顶楼 | |
发表时间:2008-09-25
这些个问题在历史上已经被问了一万遍了吧
解决代码规范的问题 我是觉得 《代码大全》 都讲过了,上面要理论有理论,要数据有数据 详审,走查。。。。。。选一个试验吧! |
|
返回顶楼 | |
发表时间:2008-10-01
瞎折腾。
老实说,哪位觉得漫天飞舞的 !@#$%^&*符号比较容易读呢? 哪位觉得迭代器的语法是那么好呢? 动态语言可不是这么难看的,动态语言的“动”也不是指语言语法的灵活。 那个松本弘的先生写过一篇文章,说什么写代码像写文章。简直是开玩笑,ruby这种语法近似于火星文字谈什么写文章啊,除非那位喜欢用甲骨文(不妨用甲骨文回复我的帖子。) ruby语法丑陋,用法怪异,毫无新意。我不明白为什么还规范,它估计规范不了。因为它天生如此。忘了它吧,远离它吧,这样我们的寿命能延长很多。(至少对视力有好处,你不用半夜里看那种类似甲骨文的乱码。) |
|
返回顶楼 | |
发表时间:2008-10-27
最好的办法是开发个规范自动检查器,自动扫描代码中不规范的地方。
有针对c++语言的类似东东。 |
|
返回顶楼 | |