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 说如果要那样的话得加成千上万行代码了!
August 21st, 2010 - 08:21
哈哈。。这他就不懂了吧,一次成型了后边怎么来钱啊o(∩_∩)o
August 21st, 2010 - 10:55
我勒个去 某人你是不加read more tag就浑身不舒服斯基么
August 21st, 2010 - 23:13
冷~~~~
August 27th, 2010 - 00:15
冷+1 …… 所以说合格的程序员不会写摧毁地球()而会写摧毁行星(地球)啊
August 27th, 2010 - 13:22
其实是写一个Planet的类,然后有一个声明为virtual destroy()
然后写earth类继承这个Planet并override destroy()
September 1st, 2010 - 23:26
嘛,OO化毕竟也只是一个对函数的再封装……
如果再深入的话,在下觉得destroy应该是一个interface——destroyable,并不是所有的planet都会毁灭,但如果再深入讨论,毁灭来自外部和内部(主动和被动?)是不是要区别对待?……
呃……由冷笑话开始讨论设计模式?
September 2nd, 2010 - 19:05
destoryable这样的概念用ruby的mixin概念和scala的trait来表现更好 嗯~
像这样~new Plant with DestoryAble 于是我就有了一个可以毁灭的猩猩~
October 19th, 2011 - 09:41
哈哈哈哈