最有爭議的十大編程觀點(diǎn)
每名程序員對“編程”都有不同的理解,當(dāng)然,有些觀點(diǎn)有可能被大多數(shù)人認(rèn)可,而有些觀點(diǎn)卻并不被人認(rèn)同,文章列舉了“十個(gè)最爭議的編程觀點(diǎn)”,也許其中的某個(gè)思想也會(huì)讓你茅塞頓開。
51CTO推薦閱讀:技術(shù)總監(jiān)談好的程序員如何寫代碼
一、最佳實(shí)踐?不如多用用你的大腦
唯一的“最佳實(shí)踐”并不是使用各種各樣被前人總結(jié)過的各種設(shè)計(jì)方法、模式,框架,那些著名的方法、模式、框架只代碼贊同他們的人多,并不代表他們適合你,你應(yīng)該更多的去使用你的大腦,獨(dú)立地思考那些方法、模式、框架出現(xiàn)的原因和其背后的想法和思想,那才是“最佳實(shí)踐”。事實(shí)上來說,那些所謂的“最佳實(shí)踐”只不過是限制那些糟糕的程序員們的破壞力。
二、學(xué)會(huì)享受編程帶來的快樂
如果你對編程沒有感到一種快樂,沒有在你空閑的時(shí)候去以一種的輕松的方式去生活,無論是編程,還是運(yùn)動(dòng),還是去旅游,只要你在沒有從中感到輕松和愉快,那么你只不過是在應(yīng)付它們。而你無時(shí)無刻不扎在程序堆中,這樣下來,就算是你是一個(gè)非常聰明,非常有才華的人,你也不會(huì)成為一個(gè)優(yōu)秀的編程員,要么只會(huì)平平凡凡,要么只會(huì)整天扎在技術(shù)中成為書呆子。當(dāng)然,這個(gè)觀點(diǎn)是有爭議,熱情和能力的差距也是很大的。不過我們可以從中汲取其正面的觀點(diǎn)。
三、糟糕的注釋毫無意義
注釋應(yīng)該是注釋W(xué)hy,而不是How和What,就像《程序員的十大技術(shù)煩惱》中所說,代碼告訴你How,而注釋應(yīng)該告訴你Why。但大多數(shù)的程序并不知道什么是好的注釋,那些注釋其實(shí)和Code是重復(fù)的,毫無意義。
四、XML被高估了
XML可能被高估了。XML對于Web上的應(yīng)用是不錯(cuò)的,但是我們把其用到了各種地方,好像沒有XML,我們都不會(huì)編程了。
五、不是所有的程序員都一樣
這是那些“初級(jí)”經(jīng)理或是流程愛犯的錯(cuò),他們總是認(rèn)為,DeveloperA == DeveloperB,只要他們的Title一樣,他們以為他們的能力、工作速度、解決問題的方法,掌握的技能等等都是一樣的。而且在某些時(shí)候,就算是最差的程序員,因?yàn)門itle,他們也會(huì)認(rèn)為其比別人強(qiáng)十倍,這就是很表面的愚蠢的管理。
六、“Google”會(huì)害死你
不可否認(rèn),查找知識(shí)是一種能力。但Google只會(huì)給你知識(shí),并不會(huì)教給你技能。那里只有“魚”,沒有“漁”,過度的使用Google,只會(huì)讓你越來越離不開他,你越來越需要要它立馬告訴你答案,而你越來越不會(huì)自己去思考,自己去探索,去專研。如果KFC快餐是垃圾食品,對我們的身體沒有好處,那么使用Google也一種快餐文化,對我們的智力發(fā)展大大的沒有好處。因?yàn)槲覀冞^度地關(guān)注了答案,而不是尋找答案的技術(shù)和過程。
七、只懂一種語言的程序員不是好程序員
如果你只懂一種語言,準(zhǔn)確的說,如果你只懂一類語類,如:Java和C#,PHP和Perl,那么,你將會(huì)被局限起來,只有了解了各種各樣的語言,了解了不同語言的不同方法 ,你才會(huì)有比較,只有了比較,你才會(huì)明白各種語言的長處和短處,才會(huì)讓你有更為成熟的觀點(diǎn),而且不整天和別的程序員在網(wǎng)上斗嘴爭論:是Windows好還是Unix好,是C好還是C++好,有這點(diǎn)工夫能干好多事了。世界因?yàn)椴煌剩恢朗挛锏囊幻媸怯泻Φ摹?/p>
八、不要保守,學(xué)著嘗試新東西
你的工作不是保守,那種教會(huì)徒弟,餓死師父的想法,是相當(dāng)短淺的。因?yàn)?,在?jì)算機(jī)世界里,你掌握的老技術(shù)越多,你就越?jīng)]用,因?yàn)榧夹g(shù)更新的太快。你對工作越保守,這個(gè)工作就越來越離不開你,你就越不越不能抽身去學(xué)新的東西,你也就越來越OUT了。記?。喝绻闶遣豢商娲?,那么你就很難再去成長。
九、“設(shè)計(jì)模式”弊大于利
很多程序員把設(shè)計(jì)模式奉為天神,他們過度的追求設(shè)計(jì)模式,以至都都忘了需求是什么,結(jié)果整個(gè)系統(tǒng)設(shè)計(jì)被設(shè)計(jì)模式搞得亂七八糟,我們叫這種編程為“設(shè)計(jì)模式驅(qū)動(dòng)編程”,正如第一點(diǎn)所說,如果你不懂得用自己的大腦思考的話,知其然,不知所以然的話,那么你不但得不到其好處,反而受其所累。
十、單元測試不會(huì)幫助你寫出更好的代碼
其實(shí),單元測試的主要目的是,為了防止你不會(huì)因?yàn)橐粋€(gè)改動(dòng)而引入Bug,但這并不會(huì)讓你能寫出更好的代碼。這只會(huì)讓你寫出不會(huì)出錯(cuò)的代碼。同第一點(diǎn),這樣的方法,只不過是防止糟糕的程序員,而并不是讓程序員或代碼質(zhì)量更有長進(jìn)。反而,程序員通常會(huì)借用“單元測試”來為自己代碼做辯解,而此時(shí),單元測試報(bào)告成了一種托辭。
【編輯推薦】
原文作者:陳皓
原文鏈接:http://blog.csdn.net/haoel/archive/2010/07/21/5752106.aspx