2010年(16)
分类: C/C++
2010-12-18 09:59:35
|
如果你没有注意到问题,我稍微提醒一下,这里用到了两个字符串类型。
这确实是一段真实的代码,于是,我找到了项目组中的人,询问两个字符串的来历。终于,一个颇有资历的人给了我一个答案。
项目之初,有人编写了XString,用了一段时间之后,在某些特定的场景下,XString会出问题,于是,又有英雄出现,编写了YString。从此,XString和YString并立于江湖。
其实,我想搞清楚的只是一个问题,什么时候该用哪个类。
可是,我把这个问题抛给了不只一个人,却没有人能给我一个确定性的答案。好吧!当时,编写YString的动机是XString出了问题,那问题是什么呢?我看到的依旧是困惑的面孔。
XString和YString让我不安,原因在于,它们的并存破坏了概念一致性。一旦要写一段用到字符串的代码,我会纠结于到底该用XString还是YString。有时候,没有选择是幸福的。对于大规模团队而言,尤其如此。
最简单的做法自然是,选择其一,一统江湖。方法很简单,做一次全局替换就好了。
不过,理性告诉我,这是冲动的做法,特别是没有人对两个字符串有足够清晰认识的情况下。在一个叫现实的东西面前,我不得不低下头,改动遗留代码风险极大,况且没有足够的测试支撑我们。
但我们至少可以在编写的新代码中做出统一的要求,选择一条路走下去,而不是放任所有开发人员根据自己的脾气秉性、喜怒哀乐,甚至天气,随机的做出选择。
好吧!我可以再退一步,如果在全系统统一确实是一件困难的事情,但至少,至少在一个函数内别再混用不同的字符串了。
1.完善项目模板/示例文档
2.完善项目编码规范文档
这种方法太官僚了,大部分开发者不会来管你文档里规定了要怎么做,除非和工资挂钩。
--------------------------------------------
还有更极端的情况,好几个开发者就同一个问题实现了非常相似的数个类。。。
--------------------------------------------
作为开发人员,如果你设计的类是给别人使用的,那么你就应该清晰的说明所有方法的通途,实现方案,并发安全性等特性,否则,就尽你所能的把你写的public去掉吧~
chinaunix网友2010-12-20 16:05:47
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com