写点什么

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

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

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

关注

评论

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

当“天翼云息壤杯”高校AI大赛邂逅DeepSeek,福利来袭!

天翼云开发者社区

人工智能 AI 科研 DeepSeek

【干货】2024年下半年最受欢迎的50篇数据库主题文章+文档

墨天轮

MySQL 数据库 oracle sql 性能优化

制造业上了MES后,生产过程透明化,实时掌握生产动态

万界星空科技

制造业 mes 制造业工厂 生产管理MES系统

Svelte 最新中文文档教程(14)—— 特殊元素

冴羽

vue.js 前端 React Svelte SvelteKit

什么是智能制造?智能制造深度分析!

积木链小链

数字化转型 数字化 智能制造

全国独家线下面授 | 杭州·大规模敏捷LeSS认证3月27-29日开班

ShineScrum

Scrum LeSS认证

京东、蚂蚁集团领衔,国内互联网大厂入局人形机器人赛道!

机器人头条

科技 蚂蚁集团 人形机器人 具身智能 京东集团

即时通讯安全篇(十五):详解硬编码密码的泄漏风险及其扫描原理和工具

JackJiang

网络编程 即时通讯 IM

搜款网VVIC商品详情数据接口(搜款网API系列)

tbapi

搜款网API 搜款网商品详情接口 搜款网商品数据采集

我的电子产品家族成员-懒猫微服

玄兴梦影

家庭数据中心 NAS 懒猫微服 使用体验 微型服务器

MarsCode 编程助手模型升级至豆包大模型1.5,同时支持切换DeepSeek R1 / V3!

TRAE.ai

AI编程 豆包MarsCode DeepSeek DeepSeek v3 DeepSeek-R1

CST案例分析——77GHz汽车雷达保险杠

思茂信息

cst cst操作 CST软件

喜讯|麦杰科技CEO荣膺“闵行区优秀企业家”称号

麦杰研究院

开源低代码平台与 Vue.js

伤感汤姆布利柏

DeepSeek冲击(含本地化部署实践)

京东零售技术

【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (1)

HarmonyOS SDK

harmoyos

国内外主流的19款招聘管理系统(ATS)测评

易成研发中心

办公软件 ATS

程序员如何高效学习一些新技术

秃头小帅oi

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