2012-08-02 82 views
17

我在in this question看到這個詞。我想我有一個想法,但不確定這是一個本地化的術語還是廣義的術語含義。什麼是霰彈槍/巫術編程?

霰彈槍會暗示他可能會(使用)比更簡單,更優雅的解決方案更笨重或笨拙的工具或技術。還有伏都教?

+0

http://catb.org/jargon/html/V/voodoo-programming.html – DGH 2012-08-02 17:48:39

+0

http://en.wikipedia.org/wiki/Shotgun_surgery – DGH 2012-08-02 17:49:54

+0

另外[霰彈槍調試](http://catb.org) /jargon/html/S/shotgun-debugging.html) – Borodin 2014-08-20 09:14:10

回答

22

霰彈槍意味着在一個問題上盲目散射一百萬個小垃圾,就像霰彈槍中的彈丸一樣;希望有一點點擊標誌。它正在嘗試的東西,直到有些東西有效,而不是理解發生了什麼。

巫毒意味着做一些事情,因爲神奇的信仰,或者更具體地說,做一些未知的原因,尤其是一些過於複雜:「我一直在做這樣說,我不知道爲什麼它的工作原理。 「

這兩個特徵都不是恭維:它們意味着無知和無能。

+2

我總是把Shotgun編程稱爲「Hack and Slash」,因爲你只是在對問題進行大幅度的調整。那就是「黑客」這個可愛的小雙關語。 – 2012-08-02 17:51:43

+7

很好的答案,但我想補充一點,大多數程序員在選擇新語言時別無選擇,只能依賴獵槍和巫術編程,直到他們習慣了語言;即使他們理論上可以理解其結構,他們也不會理解語言。一旦他們習慣了這種語言,他們就會失去糟糕的編程習慣。從這個意義上說,我更願意在這些定義中加上「當程序員應該更好地瞭解」這些詞。 – Palladium 2012-08-02 17:56:28

+0

@鈀非常好的內省 – 2012-08-02 17:58:43