編碼規范是技術上的遮羞布

jopen 11年前發布 | 7K 次閱讀 編碼規范

編碼規范是技術上的遮羞布

每個程序員都知道,在一個軟件公司里,你需要有一套嚴謹的編碼規范。每個程序員也都知道,為了能按自己的編程習慣制訂這套規范,每個程序員都在而抗爭。剛進入一個新公司時,每個程序員都會內心里絕望,對那套由某些強勢架構師獨斷指定的編碼規范恐懼不已。

扔掉編碼規范吧,讓程序員自由發揮,你會得到更多的好處。從加強代碼統一性上獲得的這點勝利根本解決不了問題。編碼規范就是技術上的遮羞布。在 nearForm 公司,我從來沒有想過要制定一個這樣的規范,因為我希望每個人都只需按照自己喜歡的方式編程。

這世界太吵鬧了。JavaScript的復興要為此負全責。尤其有一個“特征”:可有可無的分號。無數的主張猜想反對聲鋪天蓋地。停止,去實際寫些代碼好嗎。你知道我在說誰。

本意是好的,各路程序員大仙發布各種JavaScript編碼規范和風格指導。你們全錯了。請停止這種要去拯救這個世界的行為。

編碼規范從何來?過程是這樣的:在你開始編碼時,你跟本不知道會做出什么。這充滿樂趣,這是一場游戲,直到你弄瞎一只眼睛。一旦你被自己垃圾的代碼傷了太多次,你開始知道你是個菜鳥。于是你開始走上了通往編程大師的道路,你貪婪的咀嚼《代碼大全》, 《程序員修煉之道》,當然,還有 Joel

之 后,事情開始發生了。在通往朝圣的路上,你參透了真經。滿腹的技藝讓你成為了編程巨星。你的開發效率整整翻了一倍。現在,你要向世界傳播。讓你有今天成就 的知識也同樣能拯救他人。你籠絡人心,你傳道,你糾纏不休。你訓導你的老板要采用最好的實踐方法和開發規范。而最不可饒恕的,你竟然開始寫博客了。

大多數程序員從來不發聲。那些喜歡弄出聲響的,都晉升了。你晉升了。你把你絕頂聰明的想法強加給他人。你編寫了一套編碼規范,你讓它成為了法律。

可之后,一切如舊。同樣苦干,同樣最后期限迫在眉睫,同樣bug無數,同樣悲慘結局。銀彈跟本不存在

幾年后,你不再編碼,你成為了管理者。你仍然認定編碼規范,條律,制度的至關重要。關鍵就在于正確的實施。你從來都沒有真正的做到過,但你堅持要實現這個目標。不僅如此,你變本加厲。代碼量化標準!作為一個管理者,你成了痛苦的化身。

也許事情可能會向另外一個方向發展。也許你重新回去編程,或從未離去。經過一段時間,你發現自己如此無知,所有你的夢想都建立在沙灘上。你放棄了,你放棄了給程序員制訂枷鎖。這是另一層次的參悟。

至此,你認識到,人不是機器。人需要把智慧發揮到極致。你應該丟掉枷鎖,獲取最大創造。

可為什么那些最聰明的程序員的做法卻完全的相反?為什么他們喜歡控制其它程序員?是什么讓他們如此獨裁?

首先,你想把你的經驗傳授給他人。但并非每個人的思維都跟你一樣。人的大腦是十分怪異的

第二,控制別人的感覺良好。但這不可能真正有效的。你不能命令程序員去做什么。貓不是圈養出來的。

第三,你逃避責任。團隊中的所有人都這樣。我們遵守了規范!項目失敗了。沒錯,可是我們是遵守了規范!

第四,好的意愿;最佳實踐;很專業;很技術——誘人的開發過程。你仍在追逐你8歲時想摘到的那顆星星。但是,編程大師如何判斷一件事的成敗?看結果,這是唯一的標準。

第五,理想主義,你認為你理解整個世界,整個世界要尊崇你的意志。我們人類有些事情非常的在行….但那是在一萬次的失敗之后,一萬次重復的失敗。軟件工程就是其中之一,不是有了規范就萬事大吉的。

而最糟糕的不是這些。萬惡之首是,只要你具有上面的任何一點,你最終就會制定出一套編碼規范。

編碼規范真正的罪惡在于,它們在傷你的心,傷整個團隊的心。它們是一種耳語在說你不夠優秀。他們不信任你。沒有監管,你會搞的一團糟。

一年前我們開創 nearForm 公司,我們最在意的一件事就是要為客戶寫出最優秀的程序。在早先,我們嘗試過所有的開發過程、方法、制度規范。所有都讓人討厭。沒有一樣真正起到作用。

于是我們開始實施這樣的原則:相信我們的程序員是最有智慧的。這起作用了。

我希望所有人都能寫出整潔優秀的代碼。你自己判斷這指的是什么。如果在代碼臟亂、變量名不一致的情況下你還能安穩的睡大覺,這你自己決定。但你知道,也許這只是一個100行的用node.js寫微型server,無關緊要。這你自己決定。

這你的責任,因為你一名程序員。

[英文原文: Why I Have Given Up on Coding Standards ]

載自: 外刊IT評論 http://www.aqee.net/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!