coding感想(三)

最近的主要工作就是bug fix,所以借此机会总结下,都是bug fix的相关内容,其实是我工作中遇到的一些小问题,有些道理很简单,但没经历过,也就未必明白。本次主要分享以下5点:

  • 代码有bug是常态
  • bug fix一定要找到root cause
  • 提交的代码一定要测试通过
  • 提交代码一定要有commit信息
  • bug fix时能删除的代码就不要注释

1) 代码有bug是常态

我们经常需要去维护别人写的代码,有时候看见一些自己认为写得很烂的代码时,总是控制不住自己,忍不住想,写这代码的人得多不负责,才写出这种代码,不排除存在一些不负责的程序员敷衍了事,但是编程经常都是受到时间、业务场景和技术水平等各种因素影响,有可能我们看到的烂代码是人家一天时间写出来的,估计给自己一天时间,也未必赶得上这水平。在维护别人代码时,不要老是抱怨有那么多bug,多些理解,少些抱怨,要想写出没有bug的代码,只有一个办法,就是不写代码。额,那位站起来的同学,把你手中的砖头放下,我开个玩笑而已。

2) bug fix一定要找到root cause

在fix bug时, 一定要找到导致bug的真正原因,例如,某bug产生现象A,但是现象A是由B引起,B又是由于C导致。那么在fix时,如果不真正解决C,那么该bug的fix就治标不治本,达不到fix bug的目的,真正的原因未找到,那么该bug有可能在fix后还会出现,导致bug fix失败,然后就会 reopen += 1。

3) bug fix提交的代码一定要测试通过

提交到版本库的代码,如果是bug fix阶段,一定要确保代码经过测试,也许你觉得一点小改动不会有什么影响,修改完就直接提交,但是往往等待你的是编译失败,或者编译成功了,产品却不能正常运行。到了bug fix阶段,要确保版本库中的代码处于可用状态,随时可以编译成功,不影响QA测试,也不影响其他同事使用。试想,如果因为你的一个改动,导致整个项目编译失败或者编译完不能正常使用,这是很不负责任的做法。所以,bug fix完后,往版本库提交代码时,一定要测试通过,至少要测试下引起bug的相关case。

4) 提交代码一定要有commit信息

在工作中,不管是产品的开发阶段,还是发布后的维护阶段,经常需要往代码库提交代码,在提交代码时,一定要写清楚本次提交的目的,有时候查看公司代码库的提交日志时,发现很多人提交代码竟然没有任何commit信息,或者简单的写了一个单词update,对于这种人,我就等着看他们回滚代码的那天。为什么要有commit信息?因为大家是在一个代码库工作,如果某天有很多次代码提交,第二天build的产品出现各种bug,那么有时候根据commit信息就能很快找到原因,因为bug往往在被修改的代码周围。另外,如果有时候需要回滚代码,如果没有commit信息,需要去仔细查看每次提交的diff才能确定回滚版本,实在是太浪费时间了。

我个人的commit信息一般会有以下4类:

  • bug fix:表示本次提交是一次bug fix,并附上bug相关信息
  • code format:表示本次提交是格式化代码,仅修改代码的格式
  • code refactor:表示本次提交是一次代码重构
  • daily commit:日常开发提交,附上本次提交的主要内容

5) bug fix时能删除的代码就不要注释

有时候看代码,会发现大片被注释的代码,然后在被注释代码旁边,又写了和被注释代码功能类似的代码,让人一头雾水。最后猜测估计是bug fix时,将以前的错误代码全部注释掉,然后将正确代码写在旁边。对于此类人,我想问下你,难道你不知道版本管理器的存在吗?每次bug fix都将错误代码注释掉,以后代码库怎么维护?既然是不需要的代码,就应该直接删除,下次如果想查找本次删除的代码,通过版本管理器,查看本次提交的code diff就可以找到。

本次分享就到这里,下次再继续~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,042评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,996评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,674评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,340评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,404评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,749评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,902评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,662评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,110评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,577评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,258评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,848评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,726评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,952评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,271评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,452评论 2 348

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,735评论 25 707
  • 上一章:职场妖精修炼记(16)暧昧欧洋 我傻傻地坐了一会。大脑似乎失去了思考的能力,不知道该做什么。蔡芬进来跟我说...
    夏乙之阅读 518评论 0 7
  • 问题描述 无法使用Zotero在word文档中插入参考文献,报错信息如下:An unhandled excepti...
    闪电侠悟空阅读 11,044评论 4 3
  • 周末我看综艺节目《奔跑吧!兄弟》的时候,在节目里看到了黄河。镜头里的黄河气势蓬勃,波涛汹涌,真壮观呀!以前我去过海...
    陈泉妡阅读 1,287评论 0 1
  • 引言 我们为什么需要规范命名?首先,容我举个栗子: 有这样一个求最大值的函数: 读第一行代码的过程:单词max->...
    78848d676612阅读 727评论 1 1