张宇杰

张宇杰的博客

他的个人主页  他的博客

我们部门的传说中很有经验的牛人

张宇杰  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哲思注册吗?现在 注册 !
钱行

回复 钱行  2011年01月26日 星期三 10:56

lz
我还没有进入职场,但是编码规范的问题从搞ACM到后面自己做项目都挺注意的,要是真有这种同事还挺崩溃的。
这是职场普遍问题么?

0条回复

黄国荣

回复 黄国荣  2011年01月22日 星期六 16:01

我看你才是牛人,要知道人外有人,山外有山

你讲的这位牛人看你到在这里发的文章讥讽他,不知道他会怎样想?反过来,有人如此疯你,你会怎么想?

5条回复

  • 张宇杰

    回复 张宇杰  2011年01月23日 星期日 18:01

    这哥们儿让我很多天都睡不好觉,让他老老实实de个bug比上火星都难。之前给我搞过几次事了,上次搞出的宕机,让我彻底无语了。要是再搞出事,和boss摊牌,留一个,走一个。

    4条回复

      • 黄国荣

        回复 黄国荣  2011年01月24日 星期一 14:13

        事情本身有矛盾都很正常,但这种方式不好。会让人误会,认为你:以为自己很牛,拿同事开刷。

        0条回复

      • 梅延涛

        回复 梅延涛  2011年01月24日 星期一 09:41

        楼上的苦衷我深有体会。我以前接手一个项目,有个alarmFlag,一会儿在这里是true表示设定,一会在另一个地方是false表示设定……还有很多比这更变态的,情况和楼上讲得差不多。 我觉得这已经不是水平差的问题了。有些工程师能力不怎么样,为了建立自己的“不可替代性”,把代码写得乱七八糟的。这样的人就应该有一个剔除一个,免得一老鼠害一锅汤。

        2条回复

          • 黄国荣

            回复 黄国荣  2011年01月24日 星期一 14:15

            每个人都有他的价值所在,关键是你怎么用他

            1条回复

              • 梅延涛

                回复 梅延涛  2011年01月24日 星期一 23:02

                有些人的价值就是很会给别人制造困难,然后凸显自己的牛X,最后向老板邀功……做事不行,玩那些小把戏一愣一愣地。 这样的人不去做某朝朝廷上的人,实在是屈才了……

                0条回复

曾睿

回复 曾睿  2011年01月21日 星期五 15:35

会忽悠的。

0条回复

许鹏飞

回复 许鹏飞  2011年01月19日 星期三 18:43

一般来讲,新进员工要先阅读一下 公司或者 部门的编码规范,另外,根据以往经验,好多的火都是救火队员放的,写代码不能为了改bug而改,否则会导致更多的bug

0条回复

小包

回复 小包  2011年01月19日 星期三 09:29

最后一问,觉得 他是不是想用CALL/CC啊~~~


哈哈哈哈~

0条回复

夏清然

回复 夏清然  2011年01月18日 星期二 23:56

和谐 和谐
程序团队和谐、稳定最重要!

0条回复

孟德

回复 孟德  2011年01月18日 星期二 20:50

让他顶替你CTO的职位吧。

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号