抠腚爱揉曼 Coding Iron Man

20Aug/108

无聊转个笑话……[The Daily WTF]Got Time?

Peter 是一家公司的新程序员,Noah 的继任。有一天他接到这样一封信:

Subject: 请再增加些天数
Content: Peter 童鞋你好,能不能给我们的交易报表再加点天数?我不知道是不是该这么讲,以前 Noah 在的时候,每次要增加天数就要改程序的。

于是我们的 Peter 童鞋跑去翻历史遗留代码,然后他明白了为啥每次都得通过改程序才能增加天数:

'Calculate days/hours based on total
    '  Hopefully, we wont need to go
    '  more granular than 12h
    If totalHours >= 12 Then
      dayCount = 0
      hourCount = 12
    ElseIf totalHours >= 24 Then
      dayCount = 1
      hourCount = 0
    ElseIf totalHours >= 36 Then
      dayCount = 1
      hourCount = 12
    ElseIf totalHours >= 48 Then
      dayCount = 2
      hourCount = 0

    ... and so on ...

    ElseIf totalHours >= 744 Then
      dayCount = 31
      hourCount = 0
    ElseIf totalHours >= 756 Then
      dayCount = 31
      hourCount = 12
    Else
      dayCount = 99999
      hourCount = 99999
    End If

于是 Peter 回信说,可以改改程序让它永远不会天数不够,还顺便问客户要不要小时数支持好些,不要全是 12 小时或 0 小时。客户回答说:真的吗?Noah 说如果要那样的话得加成千上万行代码了!

Posted by Anson

Filed under: 扯淡 Leave a comment
Comments (8) Trackbacks (1)
  1. 哈哈。。这他就不懂了吧,一次成型了后边怎么来钱啊o(∩_∩)o

  2. 我勒个去 某人你是不加read more tag就浑身不舒服斯基么

  3. 冷+1 …… 所以说合格的程序员不会写摧毁地球()而会写摧毁行星(地球)啊

  4. 其实是写一个Planet的类,然后有一个声明为virtual destroy()
    然后写earth类继承这个Planet并override destroy()

    • 嘛,OO化毕竟也只是一个对函数的再封装……
      如果再深入的话,在下觉得destroy应该是一个interface——destroyable,并不是所有的planet都会毁灭,但如果再深入讨论,毁灭来自外部和内部(主动和被动?)是不是要区别对待?……
      呃……由冷笑话开始讨论设计模式?

  5. destoryable这样的概念用ruby的mixin概念和scala的trait来表现更好 嗯~
    像这样~new Plant with DestoryAble 于是我就有了一个可以毁灭的猩猩~


Leave a comment

(required)