标签 博客 下的文章

工作中的故事-0是'TRUE'还是'FALSE'?

这个故事源于今天测试组测出的一个BUG,BUG被测试人员转给了我,故事便从这里开始了。

我们的系统是一个后台服务器程序,用C写的,运行在Solaris上,数据存储在数据库中,每次系统启动都要从数据库中读取配置数据。系统根据配置数据对输入的消息数据进行处理。今天的这个BUG现象就是对于一定的输入消息,系统根据配置数据的指导进行处理,结果得到的结果本应该是A,但是却得到了B。

首先咱抱着谨慎负责的态度,先从头到尾,再从尾到头检查自己的程序是否有漏洞或者疏忽大意之处,许久后,未发现问题,疑惑中,怎么经过我的程序这么一番处理,结果就是这样呢?

由于测试数据较简单,所以我对照着数据库中的数据,然后用输入消息数据在我脑子中根据程序的处理步骤人工处理了一次,终于发现了一处’不和谐的音符’。我发现数据库中一业务层配置表中的一字段的数据值有出入,赶忙打开数据库设计报告查看,一找一个准儿,问题就在这儿。

这个表中的这个字段的含义是’是否为默认项’,数据库设计报告中其值的定义是这样的:0 – 默认项;1 – 非默认项。首先我不去评论数据值设计是否合理,我们先来看看程序是如何处理的。
int is_default_item;
…..

if (is_default_item == 1) {
 /* 按照默认项处理 */
} else {
 /* 按照非默认项处理 */
}

看到这所有人都能看出问题所在了,没错,程序里想当然的以为’1′就是默认项,其他就是’非默认项’了。虽然问题找到了,但是我的心里却有了嘀咕,到底是谁错了,这个问题很显然有两个改法,一个是程序修改’1′->’0′;另一个是数据库修改,让1代表默认项。首先这里我要说我不是数据库设计的高手,可以说我自己没做过相关的数据库设计,数据库表中各字段取值设计有无经验可循我也不是很清楚。写到这可以把故事升华一下,升华成一个问题,也就是本篇的题目-0到底是’TRUE’还是’FALSE’?,这里的’TRUE’和’FALSE’并不仅仅代表真与假,而是代表更广义的含义,比如’TRUE’我们可以理解为’成功’、’正确’、’与预期目标一致’等;’FALSE’则可理解为’失败’、’错误’、’与预期目标不一致’等。

在UNIX上用C写过系统程序的人可能清楚Unix提供的API多以返回0代表调用成功,这就是一个典型的0表示’TRUE’的例子,这种返回值方式也被很多人用于程序设计中;在我们自己实现的底层库中,我们同样遵循了这样一种方式。还就我们上述的问题而言,数据库设计中’0′代表’默认项’是否就一定合理呢,相信也是见仁见智的问题;但是从程序角度,你认为:
if (is_default_item == 1) {
 /* 按照默认项处理 */
} else {
 /* 按照非默认项处理 */
}
更合逻辑还是
if (is_default_item == 0) {
 /* 按照默认项处理 */
} else {
 /* 按照非默认项处理 */
}
更合逻辑一些呢?起码我觉得第一种比较符合逻辑一些,代码可读性好些。当然如果按照下面的使用manifest constant的方式处理会比直接用literal constant更好些^_^,这样无论用0还是用1代表’默认项’起码从代码里都是逻辑通顺的,可读性好的。
#define DEFAULT_ITEM 1

if (is_default_item == DEFAULT_ITEM) {
 /* 按照默认项处理 */
} else {
 /* 按照非默认项处理 */
}

这个故事叙述到这就结束了,故事没有完,因为它在我们日常生活工作中还会时常发生,0是’TRUE’还是’FALSE’,把决定权留给大家^_^。

'80后特质'我占了多少?

在公司内网论坛上看到一个讨论型帖子-'80后'的特质(80后:泛指上世纪80年代出生的一代人),我是82年生人,虽非很典型,但是总算是这个范围内的人,仔细的瞧了一下该帖的内容,作了一次'对号入座'。

特质:打折卡比银行卡多
银行卡的意义在于证明你赚钱了;打折卡的意义在于证明你花钱了。
– 我想这个特质,80后的女生们拥有的更多一些吧;除了打折卡外,商场、餐厅的会员卡、贵宾卡也不在少数。弄得钱包或者手包鼓鼓囊囊的。

特质:不用皮革钱包
皮革钱包意味着很久才还一个,意味着颜色单一,意味着钱包比里面的钱还贵,意味着不能随便换掉。
– 我的是Nike的运动钱包,黑色表皮,红边,很好看的,就是有些大,夏天携带不是很方便。^_^

特质:服装店老板会发短信告诉你新货上市
谁还去百货公司、大卖场买衣服?每个人必须有自己独特的服装取向,自己所钟爱的服装专卖店。
– 自己算是有自己的服装去向吧,一般大商场都会定期发促销活动短信到手机上的,因为GF在办会员卡的时候留下了手机号。

特质:喝一种品牌的饮料
百事可乐、可口可乐、午后红茶、胡萝卜汁……选准一种,一直喝下去,直到看见这种饮料就会想起你。
– 最爱白水,偶尔可口可乐。

特质:拥有一个双肩背包
不装东西,只为了背着。
– 惊讶中,因为我最近一直这么做的,不过有东西还是要背的,我懒,不喜欢拎着,嫌重嫌累。

特质:为接到"正装出席"的请柬而苦恼
没有西装,即使有也往往只挂在衣柜里占地方,最"正"的衣服是长袖T恤衫。
– 正在为春节前公司的音乐会犯愁,今年公司的春节联欢聚会居然加了一条:与会者着正装。

特质:可以没有电视机,但一定要有微波炉
电视基本不看,但微波炉除了能解决吃的问题外,还有神奇用途:冬天洗热水脸-湿毛巾放进去,1分钟搞定。
– 微波炉太方便了,热菜不用刷锅^_^。我是典型爱做菜但是不爱洗涮的。

特质:如果戴眼镜,一定是扁平黑框的
早就不是金丝边眼镜的天下了。黑胶框眼镜不仅可以是近视镜,也可以是平光镜,甚至没有镜片只戴镜框。
– 呵呵,今年刚换的,自初中一年级以来我觉得最满意最漂亮最适合我的的一副眼睛。
 
特质:在任何表面上都可以睡着,除了床以外
经常趴在办公桌上睡觉,开会时肯定要睡觉,但上床之后总会打游戏、看碟。
– 当然了,有床还是睡在床上舒服,最近腰背痛,不能趴在桌子上睡,疼的受不了。
 
特质:使用自助办理业务
不想排队,不想被人叫号,不想隔着嗓子说话,不想看人家的嘴脸。
– 小钱(1W以内)都是这么做的。
 
特质:使用最多的称呼是"同学"
称呼断层的一代,只有同学才能有效地拉近陌生人之间的距离,进可攻退可守。
– 感受不是很多,无言。
 
特质:痛恨人际关系
最好大家都在家工作,去办公室只是为了打电脑游戏、聊八卦和约饭局。
– 的确是理想的想法,不过现实还是残酷的,勇敢面对吧。
 
特质:永远对发型不满意
发型不是身份、不是装饰,而是娱乐,不满意就改。
– 从小到大都是一个发型,不是十分挑剔,不具备该特质。

特质:使用所有电器都不看说明书
写说明书的人都是白痴,看说明书的人比写说明书的人更白痴。
– I Agree。
 
特质:去24小时便利店的次数比超级市场多
我们经常晚上出来买东西,超级市场在哪里。
– 因人而异。
 
特质:至少两周才打扫一次卫生
让环境卫生积累到足够创造一次成就感的时候才打扫,别让乐趣变成琐事。
– 打扫卫生看心情,大多时候需要GF的强制指令。^_^
 
特质:喜欢玩小孩但不喜欢生小孩
想想自己是怎么长大的,就知道自己负不起那个责任。
– So do I and my GF.
 
特质:永远不知道自己的钱花到哪儿去了
其实没买什么,其实没吃什么,但钱就是不见了。
– 看着自己的账本,一头雾水
 
特质:可能有两个手机,但没有一个座机
座机有什么用?不要告诉我你拨号上网。
– 白天都在工作,家里要座机干什么。
 
特质:只去药店,不去医院
我的身体我知道,去医院太麻烦。
– 因病而异,大部分时候如此。
 
特质:最恨被人夸奖成熟
你把谁当小孩呢?
– 对头。
 
特质:早晨从中午开始
我们的生活很有规律,只不过和你们有几个小时的时差而己。
– 也许我的睡眠质量较高,基本9点钟以前还是起得来得。
 
特质:业余爱好中必有一项是睡觉
我们不困,就是想睡觉。
– 我不是。
 
特质:不喜欢喝酒,但每喝必醉
不然喝酒干吗?补充体液?
– 对酒谈不上喜欢也谈不上不喜欢,应酬的时候也喝,每次喝的也不少,但是从未醉过。
 
特质:不敬酒,不敬烟
爱喝就喝,想抽就拿,别搞得大义凛然的。
– Me, too。
 
特质:拥有一种奇怪的固执
只穿白袜子,不带瓶装矿泉水不出门,看着鱼缸就发呆……总有一样会莫名其妙地坚持下去。
– 商务礼仪课上讲师明确告诉,不要穿白袜子,但是就是喜欢穿,现在有所改观。
 
特质:在熟人面前是话痨,在陌生人面前一言不发
不是不爱说话,而是跟你没什么可讲。
– 有话就说,没话就不说。
 
特质:不洗脚,只洗澡
每天洗两次以上澡还用洗脚吗?
– 我爱泡脚,感觉泡了之后大脑清醒,做事情效率高;至于洗澡,我之前写过的一篇博'理发与洗澡之遐想篇'阐述了我的喜好。
 
特质:每天都有理由开派对,除了结婚外
派对是为了玩,但结婚不好玩,所以尽量不结婚。
– 派对没多少,但的确认为结婚不好玩,两个人的事情两个人解决,何必找那么一堆人来呢。
 
特质:认为幽默感是做人的根本
至少也要会讲冷笑话吧。
– 幽默应该不是缺点,我这么认为。
 
特质:大假不出游
与其人挤人,不如在家看碟。
– 没错。
 
特质:出游不给自己拍照
宁肯拍老乡家的狗,宁肯拍人家阳台上晾的衣服,宁肯拍自己在地上的影子。
– Absolutely right. 可是GF恰恰和我相反,哪张照片里没有她就不许照,可叹她也是80后人。
 
特质:常常玩消失
有可能是手机坏了,有可能是起床晚了,有可能只是想看看你们有什么反应。
– 感觉不明显。
 
特质:经常发呆
因为脑子里有太多的想法,有时候不知道自己在想什么。
– 我喜欢思考,喜欢漫无边际的思考,就因为这常常被GF指责^_^。
 
特质:随便
觉得什么都可以,什么都还行,只要方便简单,哪有那么多时间去浪费?
– 符合我的性格。

特质:英语的听说能力大大强于读写能力
声称自己的英语水平很差,不过基本能听懂英语电影里的对白。
– 不敢夸口,均衡发展。
 
特质:对人的最坏评价是闷
"闷"是一种抽象标准,话痨也会闷。
– 没用'闷'评价过人。
 
特质:写博,但不会呕心沥血
写博写成论文,不如下来写论文,博客不好玩不如去死。
– 写博上瘾,始终认为'博客'需要用心经营。

特质:不问问题,只查Google
给我1分钟,我就和你知道的一样多了。
– 除了Google,中文相关的还喜欢用Baidu,虽然不太喜欢Baidu。

结论:基本符合。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats