代码评审
本文翻译自"Code Reviews",来自于《97 Things Every Programmer Should Know》一书中的某个章节。 你应该做代码评审。为什么呢?因为代码评审可以提高代码质量并且降低缺陷比例。但进行代码评审未必是因为你想到的那些理由。 由于之前有过一些代码评审的糟糕体验,因此许多程序员不喜欢代码评审。我曾经见过一些组织,它们要求所有代码在部署到生产环境之前必须通过一个正...
本文翻译自"Code Reviews",来自于《97 Things Every Programmer Should Know》一书中的某个章节。 你应该做代码评审。为什么呢?因为代码评审可以提高代码质量并且降低缺陷比例。但进行代码评审未必是因为你想到的那些理由。 由于之前有过一些代码评审的糟糕体验,因此许多程序员不喜欢代码评审。我曾经见过一些组织,它们要求所有代码在部署到生产环境之前必须通过一个正...
本文翻译自"Put Everything Under Version Control",来自于《97 Things Every Programmer Should Know》一书中的某个章节。 把项目中的一切都纳入版本控制。你需要的资源包括:免费的工具,比如Subversion,Git,Mercurial和CVS;充足的磁盘空间;便宜且性能强大的服务器;无处不在的网络;甚至包括项目托管服务。安装好...
本文翻译自”Automate Your Coding Standard“,来自于《97 Things Every Programmer Should Know》一书中的某个章节。 也许你也曾经经历过。在一个项目开始阶段,每个人都有着很多良好的意愿,我们称这些意愿为“新项目决议”。多数情况下,这些决议都会被记在文档中。关于代码的那些决议最终成了项目的编码标准。在项目启动会议上,主程序员带着大家一起浏...
本文翻译自"Before You Refactor",来自于《97 Things Every Programmer Should Know》一书中的某个章节。 在某些时候,每个程序员都需要重构现有的代码。不过在你动手之前,请考虑一下下面的内容,因为这可以节省你和他人的大量时间(以及痛苦)。 · 重构开始的最好方式就是对现有代码库及其测试代码进行总结和评估。 这将帮助你理解现有代码的优点和不足,你也...
今天是中国人民的传统佳节农历大年三十儿-一个中华民族合家团员的日子。对于我和LP来说,今天更是一个特别的大年三十儿,因为这是我们的宝贝果果过得人生第一个农历新年。虽然果果还不是很懂得今天与平时有何不同,但相信果果从窗户上的红色福字剪纸、墙上的吉祥兔挂画以及阳台上的红灯也能感受到节日的气氛。 下午吃完团圆饭,我们就给果果洗了一个热水澡,并给她穿上了喜庆的新衣服。这里果果通过爸爸的博客给大家拜年了:祝...
昨天晚饭后,打开本子继续工作,却发现无法连上无线路由器。最初以为路由器忘记打开了,可拿起路由器看了下,不是那么回事儿,路由器工作一切正常。我这才看到发现本子的无线网卡的指示灯不亮了,以前在这台x60本子上还从未出现此类情况,于是开始查找故障原因。 故障查找过程是痛苦的,一次次燃起希望,又一次次被冷水破灭: \* 最初怀疑是我误点击了Fn + F5而把无线网卡关了,于是我又无数次的点击Fn + F5...
眼看就要到春节假期了,公司E-HR平台上我的账户下还有一项待处理的工作:填写一份"领导力发展回顾与提升计划"表格。表格很简单,5分钟就能填完,不过其中有一项我自己很难填写:"您了解或感知同事/或下属对您的期望"。虽说可以自我感知,不过我更想听到我的同事真实的声音。 于是乎我就在产品线内发出了一封Mail,希望能够得到大家真实的想法。 小半天,我就收到同事的十几封反馈Mail,多数Mail中大家都提...
2010年末的网上卖书大战进行的如火如荼,在这场大战初期我就低价收了《深入理解计算机系统》第二版,放在书柜里待有时间重温。记得当初还是在LP学校的图书馆里借到了这本书的第一版,并在第一个借阅期内看完了除第四章”处理器体系结构”之外的所有章节。之后又恋恋不舍,让LP续借了一次。我对这本书还真有一种相见恨晚的感觉,真遗憾我在大学期间怎么没发现这样一本好书呢。 网络卖书大战到现在也基本接近尾声了,不过我...
也许你经常遇到这类情况:你在代码里使用了别人提供的第三方库,当库升级为新版本后,你的代码在编译时无法通过,提示接口原型错误,经查发现原来是该第三方库提供的某接口的原型发生了变化,比如原接口被删除、增加了参数、参数减少了、修改了参数类型以及返回类型发生变化了等等。你也许会不由自主的大骂一句:F\*\*k。 我们换位思考一下,假如你是某个库的Owner,当你遇到需要修改接口原型的情形时,你应该如何去做...
今天上午处理了一个线上产品的故障。分析来分析去,最后定位问题还是出在字节序转换的环节上。 其实测试组早在产品上线前就曾报告了这个问题,但是对应的开发人员并未对该问题进行深入地分析,而是有些草率地将该问题归结为客户端模拟器的实现不符合标准。因为这位同事比较资深,所以当时我也没有给予足够关注。 产品今天凌晨上线,9点左右业务量开始增大,这个问题立即就被我们在现场的运维人员发现,还好我们的系统是集群式的...