张宇杰 2011年01月18日 星期二 20:24 | 1844次浏览 | 12条评论
部门进了个新人(不是我招的,当时我在米国)。头说是个很有经验滴牛人。
他是我们现在一个项目滴主力,项目的很多code都是他写的。
牛人写code确实很快,一天提交十几个文件。
我review都review不过来。
上周末review他的code,我凌乱了。
有一程序很简单。
初始化时,得到设置的值,该设置值只有0和1两种状态。
按一个键,切换0和1,然后根据该值,绘制界面。
退出时保存设置。
伪代码如下:
global variable A; // 全局设置
internal variable B; // 程序内部变量
init() { B = A; }
switch() { if B is 0, then B = 1; if B is 1, then B = 0; }
paint() { if B is 0, paint; if B is 1, paint; }
exit() { A = B; }
以上就是全部的程序逻辑,就这么简单
这位传说中很有经验滴牛人写的code是这样滴
global variable A;
internal variable B;
internal variable C;
init() { C = A; B = C; }
switch() { if C is 0, then C = 1; if C is 1, then C = 0; B = C; }
paint() { if B is 0, paint; if B is 1, paint; }
exit() { B = C; A = B; B = A; }
这位牛人竟然用两个变量,倒来倒去,当时看的我都晕了。
最后看到B = A时,我彻底崩溃了。
如果我下辈子还是程序员的话,估计也很难看到有人写出这样滴code。
把B赋给A,仅接着又把A赋给B。
这牛人还有一牛code
func() {
.....
if (...) {
disable_xxx();
goto out;
}
out:
enable_xxx();
}
牛人滴解释是这样滴,disable是因为他觉得这里需要disable,enable是因为他还没想好是否应该disable。
NND,enable就enable了,中间还要加个goto。call,生怕人家发现他干了件龊事。
跟我比他还嫩着,这两天,我开始重写项目的code,今天已经提交一批了。
call,等我把他的code全部重写完,把他的svn权限一封。
看他怎么牛。
Zeuux © 2024
京ICP备05028076号
回复 钱行 2011年01月26日 星期三 10:56
我还