Web Analytics

向安德学指挥

指挥官必须有良好的精神素质,必须具备果敢、坚定的性格和冷静的智慧;必须了解和 学习控制部队对于死亡和痛苦的反应。 — 克劳塞维茨 《战争论》 ...

December 27, 2013 · 5 min · Tony Bai

只为那一抹释然

一切没有目标的努力,都是瞎忙活儿。 - Tony Bai 刚实施回来,就又投入到新工作中,到今天才有那么一点点时间写写这件事儿。 * 缘起 我们的遗留系统性能一直不高,导致这一局面的因素有很多,比如最初设计和实现的“考虑不足”、后续维护人员的“随波逐流”甚至缺少勇气对影响性能的关 键代码进行重构等等。技术债务就这样一直积累着。直到两年前,我们终见其导致的巨大的影响了。 ...

December 26, 2013 · 6 min · Tony Bai

团队与创造的平衡

“安德来了之后,我们必段保持一个巧妙的平衡。要让他保持一定程度的孤立,使他创造性不至于消失,否则他就会和这儿的整个团体融合在一起,我们会失去他的天赋。同时,我们也必须确定他有足够的能力去领导别人。” — 《安德的游戏》作者:奥森·斯科特·卡德 ...

December 21, 2013 · 4 min · Tony Bai

Recommended C Style and Coding Standards中文版全文

今天无意中打开了托管在Google Code上的“Recommended C Style and Coding Standards”翻译项目,忽感觉通过目录链接的方式查看译文缺少整体感,于是花了点时间将译文全文以single page的形式贴在博客里面,方便大家查看,也算是对该翻译内容的一个备份吧。 ...

November 26, 2013 · 44 min · Tony Bai

再谈那些代码中的“中国式”命名

近期博客访问量提高了不少,分析了下原因,发现是有几篇近期写的文章被某个好心网友提交到dbanotes的Startup News上了。与此同时,一些反馈也随之而来。从反馈来看,《那些代码中的“中国式”命名》一文似乎受到了更多的关注,或许是文章标题比较容易引起好奇的 缘故吧。但文章的本意仅是想阐述一些事实罢了,并没有“哗众取宠”的意思。网友的观点也促使我重新对“中国式”命名做了反思。 ...

November 22, 2013 · 4 min · Tony Bai

代码是怎么腐化的

新三年,旧三年,修修补补又三年。 — 中国俗语。 上面的这句俗语用来形容很多遗留软件系统(legacy software system)的现状是再合适不过了。 今天下午做了一下午的代码评审,对象是一个运行了7年的遗留系统。会上除了几处明显的代码逻辑错误我发言指了出来外,涉及业务流程以及代码设计的问题,我 大多保持沉默。因为我清楚,即便我明确指出问题,可能也得不到修正。也许参与评审代码的其他同事也都知晓这些问题,只是觉得现在还不能去改…。 ...

November 12, 2013 · 3 min · Tony Bai

那些代码中的“中国式”命名

10月中旬,有人在Quora网站上发起一个调查:“程序员职业生涯中最难的事是什么?”,调查结果让人实感意外。世界范围内的程序员同胞们普遍认为: “命名是让大家感觉最困难的事情”。对于主流的欧美程序员尚且如此,对于英文非母语的中国程序员来说,苦逼程度可想而知了:(。 虽说中国程序员大多也都学了10年以上的英语了,但能“地道”的表达和书写甚至是选词的程序员们比例却不高。而在编写程序的过程中,给变量、常量以及函数命名即意味着我们要选择恰当地道的词汇或缩写。 ...

November 6, 2013 · 3 min · Tony Bai

Memcached CAS应用一例

近期收到客户一个需求,我将该需求转述为下面这个等价的问题。 【问题】 * 有一个产品包装系统_S_,为某种产品_P_提供产品包装服务; * 系统_S_由若干个处理节点组成,每个节点都可以单独处理组件; ...

November 1, 2013 · 5 min · Tony Bai

关于程序员的构思能力的一些体会

有一段时间,我完全沉迷于在脑海中想象机械绘图和设计新机型所带来的极致享受,这是我一生中有过的最完美的精神愉悦。创造的灵感像泉水般源 源不断 地涌出,我遇到的唯一困难就是必须设法牢牢抓住它们。对我来说,构思中的设备零件都绝对是真实的,所有细节都触手可及,甚至最细微的标识和磨损状态也是如 此。想象发动机在持续不断地运转,仿佛一道迷人的风景呈现在面前,令我欣喜若狂。 — 尼古拉. 特斯拉 ...

October 27, 2013 · 5 min · Tony Bai

为阻塞型函数调用添加超时机制

我们产品中的一个子模块在进行Oracle实时数据库查询时,常常因数据库性能波动或异常而被阻塞在OCI API的调用上,为此我们付出了“惨痛”的代价。说来说去还是我们的程序设计的不够完善,在此类阻塞型函数调用方面缺少微小粒度的超时机制。 ...

October 25, 2013 · 6 min · Tony Bai