全栈算力,加速行业AI落地 了解详情
写点什么

代码之丑(八)——不一致的困惑

  • 2010-12-12
  • 本文字数:841 字

    阅读完需:约 3 分钟

下面是一段代码,出现在一个函数里面:

复制代码
XString groupid;
getGroupidByTel(tel, groupid);
YString sql;
sql.SetData("select subsid from subscriber b");

如果你没有注意到问题,我稍微提醒一下,这里用到了两个字符串类型。

这确实是一段真实的代码,于是,我找到了项目组中的人,询问两个字符串的来历。终于,一个颇有资历的人给了我一个答案。

项目之初,有人编写了 XString,用了一段时间之后,在某些特定的场景下,XString 会出问题,于是,又有英雄出现,编写了 YString。从此,XString 和 YString 并立于江湖。

其实,我想搞清楚的只是一个问题,什么时候该用哪个类。

可是,我把这个问题抛给了不只一个人,却没有人能给我一个确定性的答案。好吧!当时,编写 YString 的动机是 XString 出了问题,那问题是什么呢?我看到的依旧是困惑的面孔。

XString 和 YString 让我不安,原因在于,它们的并存破坏了概念一致性。一旦要写一段用到字符串的代码,我会纠结于到底该用 XString 还是 YString。有时候,没有选择是幸福的。对于大规模团队而言,尤其如此。

最简单的做法自然是,选择其一,一统江湖。方法很简单,做一次全局替换就好了。

不过,理性告诉我,这是冲动的做法,特别是没有人对两个字符串有足够清晰认识的情况下。在一个叫现实的东西面前,我不得不低下头,改动遗留代码风险极大,况且没有足够的测试支撑我们。

但我们至少可以在编写的新代码中做出统一的要求,选择一条路走下去,而不是放任所有开发人员根据自己的脾气秉性、喜怒哀乐,甚至天气,随机的做出选择。

好吧!我可以再退一步,如果在全系统统一确实是一件困难的事情,但至少,至少在一个函数内别再混用不同的字符串了。

作者简介:

郑晔,ThoughtWorks 公司咨询师,拥有多年企业级软件开发经验,热衷于探索各种程序设计语言在真实软件开发中所能发挥的威力,致力于探寻合理的软件开发方式,加入 ThoughtWorks 公司后,投入到敏捷开发方法的实践之中,为其他公司提供敏捷开发方法方面的咨询服务。他的 blog 是梦想风暴

查看原文:代码之丑(八)

2010-12-12 23:353457
用户头像

发布了 22 篇内容, 共 13.6 次阅读, 收获喜欢 49 次。

关注

评论

发布
暂无评论
发现更多内容

2021高校生疫情过后 ,字节跳动Android开发岗-高级技术面试题!

android 程序员 移动开发

架构实战营1期毕业总结

tt

架构实战营

5G时代已经到来了,你还觉得Android行业凉了嘛?,flutter真机调试不会自动安装

android 程序员 移动开发

8年Android开发程序员教你如何写简历!看完别再问为何你只值5K

android 程序员 移动开发

9成Android开发者必须收藏的80个开源库,安卓rxjava获取网络时间

android 程序员 移动开发

2021 提升Android开发效率的实战技巧,女生学移动应用开发

android 程序员 移动开发

王者荣耀商城异地多活架构设计

Sky

「架构实战营」

30多个超赞的Android开发者工具,2021年京东Android岗面试必问

android 程序员 移动开发

35岁没有晋级的同事都去哪了?,Android这些高端技术只有你还不知道

android 程序员 移动开发

5个月前,如果你没有不屑于刷这份《字节内推,独家发布

android 程序员 移动开发

5分钟看完这篇-HTTPS面试常问全解析,不管去哪里面试都能轻松装13!

android 程序员 移动开发

8年老Android开发谈;Context都没弄明白凭什么拿高薪?

android 程序员 移动开发

2021 最新Android常见知识体系,HR:,Android进程管理

android 程序员 移动开发

2,ndk开发教程

android 程序员 移动开发

30岁,程序员,烦透了,淘汰了80%的Android面试者

android 程序员 移动开发

37岁Android程序员裸辞,四个月被497家公司拒绝,问猎头后懵了

android 程序员 移动开发

iOS开发:平时做项目经常用到的快捷键归纳

三掌柜

11月日更

20分钟掌握Android-Gradle,android程序基础教程

android 程序员 移动开发

24岁程序员一事无成,迷茫焦虑,想知道该怎样从现状走出来

android 程序员 移动开发

35岁以上的Android开发,都去了哪儿?,附赠复习资料

android 程序员 移动开发

6年老Android2019面经总结,Android面试必刷的200道真题

android 程序员 移动开发

8年Android开发程序员教你如何写简历!看完别再问为何你只值5K(1)

android 程序员 移动开发

2021年之Android面经分享(已获头条、顺丰,html5移动端

android 程序员 移动开发

2021新鲜面经,蚂蚁内部转岗Android面试分享,2021最新Android面试题及答案

android 程序员 移动开发

35岁程序员(媛)被迫辞职后,android项目开发总结报告

android 程序员 移动开发

5道刁钻的Activity生命周期面试题,学完去吊打面试官!

android 程序员 移动开发

7年老Android收到阿里offer,跟领导提离职被怼:为年薪百万不做兄弟

android 程序员 移动开发

2021应届秋招:提前批挂后,二次面试字节跳动抖音Android客户端

android 程序员 移动开发

30秒上手新一代Http请求神器RxHttp,androidstudio连接手机

android 程序员 移动开发

35岁程序员:职场中的中年危机,一文说清

android 程序员 移动开发

30岁程序员面临的困境,IDEA太强悍了

android 程序员 移动开发

代码之丑(八)——不一致的困惑_Java_郑晔_InfoQ精选文章