50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 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:354108
用户头像

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

关注

评论

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

性能测试|搭建性能监控平台

霍格沃兹测试开发学社

#性能测试

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库 zillizcloud

提高API开发效率:详解OpenAPI接口规范最佳实践

Apifox

程序员 接口 API OpenAPI

接口测试|Postman环境变量&全局变量设置

霍格沃兹测试开发学社

性能测试|JMeter取样器介绍(二)

霍格沃兹测试开发学社

#性能测试 JMeter使用教程

制造企业的高质量增长,藏在供应链的“精打细算”之中

工赋开发者社区

汽车虚拟仿真:实时道路测试及自动驾驶的基石

3DCAT实时渲染

虚拟仿真 汽车虚拟仿真

性能测试|JMeter线程组设置

霍格沃兹测试开发学社

性能测试|JMeter压测结果分析

霍格沃兹测试开发学社

#性能测试 JMeter使用教程

Electron末日来了?又一应用将其抛弃!WhatsApp强制推行原生应用:速度更快、内存占用更少

工赋开发者社区

接口测试|Postman设置断言

霍格沃兹测试开发学社

性能测试|JMeter逻辑控制器(一)

霍格沃兹测试开发学社

企业全面预算管理的四大“拦路虎”

用友BIP

全面预算

性能测试|Jmeter压测脚本录制与编写

霍格沃兹测试开发学社

#性能测试 JMeter使用教程

华为云CodeArts Check:带你掌握代码检查技巧,优化代码质量!

云计算 华为云 代码检查 代码检查、

接口测试|postman模拟请求头&界面的响应信息

霍格沃兹测试开发学社

AIGC+HR|AI时代下,企业人力管理新解法

TE智库

人工智能 HR AIGC

性能测试|JMeter取样器(一)

霍格沃兹测试开发学社

信息安全大有希望!低代码开发平台为大数据时代保驾护航

加入高科技仿生人

低代码 信息安全 信息技术

引领算力革命:低代码开发平台助力大模型时代的突破与进步

不在线第一只蜗牛

低代码 算力 算力虚拟化

低代码——前端进阶的必修课

伤感汤姆布利柏

MQTT 服务新趋势:了解 MQTT 多租户架构

EMQ映云科技

物联网 mqtt 多租户

ChatGPT+低代码,好用到飞起?

树上有只程序猿

生成式AI加入低代码,或将再次颠覆开发行业

树上有只程序猿

接口测试|Postman持久化保存

霍格沃兹测试开发学社

接口测试|postman发送POST请求

霍格沃兹测试开发学社

企业进行大数据分析时,需要关注哪些能力来选择合适的解决方案呢

巷子

性能测试|JMeter取样器介绍(三)

霍格沃兹测试开发学社

#性能测试 JMeter使用教程

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