Web Analytics

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

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

October 27, 2013 · 5 min · Tony Bai

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

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

October 25, 2013 · 6 min · Tony Bai

关于编程语言学习的一些体会

Learn at least one new language every year. — Andy Hunt and Dave Thomas 自己一直是“每年学习一门新语言”的忠实拥趸,曾先后认真地学习了Haskell、Common Lisp、Python、Go等语言,对Prolog、Scala、Erlang、Lua、PHP也有一定了解。但几年下来,只有Python一门语言算 是真正被留在我的大脑里,用在了工作中。其他那几门语言留下来的只是一些思想了。这似乎符合了Andy Hunt和Dave Thomas在《程序员修炼之道》中对于这一实践目的的阐述:“学会用多种方式解决问题,扩展我们的视野,避免思路僵化和停滞不前”^_^。 ...

October 22, 2013 · 4 min · Tony Bai

当Bug A遇到Bug B

2002年的Bug A与2008年的Bug B同时穿越到2013年,并在某个场合相遇了。 上周六,项目组本应以一个愉快的心情结束一天的工作的,但一个2002年的Bug A与另外一个2008年的Bug B同时穿越时空来到了2013年,并且恰恰在那时那刻(下班前)相遇了,于是项目组由放松变成了忙碌,由愉快变成了紧张,17:30的下班点也因此延迟到了凌晨1:30。 ...

October 14, 2013 · 2 min · Tony Bai

程序 – 程序员的avatar

程序是什么? 大师们曾给过这样的诠释: 程序 = 数据 + 指令 程序 = 数据结构 + 算法 对此我也表示十分认同。但感觉这些观点更多是从机器运行模型或逻辑抽象的角度看待程序的,是左脑的产物。我的右脑告诉我:程序是程序员的avatar(化身)。这个隐喻式的诠释会让“程序”更有温度,并有些许人性的色彩。 ...

October 8, 2013 · 4 min · Tony Bai

站在更高的平台上

中秋休假期间,在PPS上看了最新一集的龙珠Z剧场版“龙珠Z:神与神”。《七龙珠》是我最喜欢的一部日本漫画,年少时曾为之疯狂过。其对应的动画片《龙珠》以及《龙珠Z》我也是集集不落的,这部“龙珠Z:神与神”延续了龙珠Z的精彩。 片中主人公孙悟空与破坏神比鲁斯有过两次交手。第一次在界王星上,变身为超级塞亚人3的孙悟空被破坏神几乎“秒杀”;第二次是为了保护地球,孙悟空在悟饭、悟天、贝吉塔、特兰克斯的帮助下变身为超级塞亚人之神,这才有了与破坏神周旋的战力。由于超级塞亚人之神的变身时间有限,在经过激烈的战斗后,孙悟空变回了普通的塞亚人。不过同样是塞亚人,战斗前后的悟空却大不一样:变回普通塞亚人的悟空在关键时刻,在不借助其他塞亚人帮助的情况下,可凭借一己之力变身为超级塞亚人之神,并继续拥有与破坏神分庭抗礼的战力。按照片中破坏神战后的分析:“因为拥有天才格斗感的悟空体验到了作为超级赛亚人之神的世界,所以将其吸收融入了身体”。也就是说孙悟空已经感受到了神的境界,这是孙悟空之前无论通过多长时间,多么严酷的训练都无法达到的境界。而一旦让悟空感受到了这个境界,他的战力就会迅速提高到这个境界。 ...

September 24, 2013 · 4 min · Tony Bai

把所有东西都放入版本控制系统

本文翻译自Dr. Dobb’s杂志主编Andrew Binstock的"Putting Absolutely Everything in Version Control“一文。 持续交付(Continuous Delivery)的一个关键原则就是将所有东西都放入版本控制系统中。这解决了一些重大问题,但也引入了一些其他问题。 ...

September 4, 2013 · 4 min · Tony Bai

我的工作原则2

自我认知是循序渐进的,体会到了,就想将其整理出来,给自己一个交代。 - Tony Bai 关于我的工作原则,感觉之前的那篇总结的还不够,这两天通过观察自己的所言所行,又有了些思绪,这里记录下来。 * 重塑标准 简单来说就是根据组织实际情况,重新建立各种标准 – 技术标准、人员标准和产品标准。 个人认为这恰是一种实事求是的积极态度。避免陷入技术泥潭中无法自拔,不用Google的人才和做事标准来要求组织内部的人和招聘新人上,认识到存在的差 距。恰如当年钱学森根据国内人力、物力以及实际技术水准重新制定了标准,而不是照搬美国的标准,否则造导弹就会变成一个不可能完成的任务,对团队 士气也将会是一个极大的打击。 ...

September 3, 2013 · 2 min · Tony Bai

利用ZooKeeper服务实现分布式系统的配置数据同步

很多时候,一旦习惯了某些事情,也就习惯了它们的恶劣,习惯了它们的丑陋,习惯了它们“赋予”你的各种痛苦。 – Tony Bai 一、痼疾难解 曾几何时,在那个还没有集群化,没有分布式的时代,它还是一个不错的方案,至少在线上没有暴露出太多问题,它也不在我们关注的重点范围之内。但随 着集群化、分布式的新版本的到来,那一大坨遗留的代码就变得格外让人不顺眼,同时问题也随之在线上暴露开来了。 ...

August 28, 2013 · 9 min · Tony Bai

利用ZooKeeper服务实现分布式系统的Leader选举

每次与Java组的同事们坐下来谈技术、谈理想、谈人生时,Java组的同事总会向我们投来羡慕的眼光:卧槽!又是自己开发的工具,太NB了。这时C程序 员们的脸上就会洋溢出自豪的笑容,然后内心骂道:谁让我们没有现成的呢。另一个空间里的某些“无C不欢”们或者某些“C Guru”们会骂道:靠,有了也不用,自己写! ...

August 23, 2013 · 6 min · Tony Bai