|
在Stack Overflow上有這樣的一個貼子《What’s your most controversial programming opinion?》,翻譯成中文就是“你認(rèn)為最有爭議的編程觀點(diǎn)是什么?”,不過,在400多個主回貼,以及千把個子回貼中,好像并不是很有爭議,而是令人相當(dāng)?shù)拿┤D開,下面羅列一些,并通過我自己的經(jīng)歷和理解發(fā)揮了一些,希望對你有幫助。
1) The only “best practice” you should be using all the time is “Use Your Brain”.
唯一的“Best Practice”并不是使用各種各樣被前人總結(jié)過的各種設(shè)計方法、模式,框架,那些著名的方法、模式、框架只代碼贊同他們的人多,并不代表他們適合你,你應(yīng)該更多的去使用你的大腦,獨(dú)立地思考那些方法、模式、框架出現(xiàn)的原因和其背后的想法和思想,那才是“best practice”。事實上來說,那些所謂的“Best Practice”只不過是限制那些糟糕的程序員們的破壞力。
2)Programmers who don’t code in their spare time for fun will never become as good as those that do.
如果你對編程沒有感到一種快樂,沒有在你空閑的時候去以一種的娛樂方式去生活,無論是編程,還是運(yùn)動,還是去旅游,那么你只不過是在應(yīng)付你的工作,無時無刻不扎在程序堆中,這樣下來,就算是你是一個非常聰明,非常有才華的人,你也不會成為一個優(yōu)秀的編程員,要么只會平平凡凡,要么只會整天扎在技術(shù)中成為書呆子。當(dāng)然,這個觀點(diǎn)是有爭議,熱情和能力的差距也是很大的。不過我們可以從中汲取其正面的觀點(diǎn)。
3)Most comments in code are in fact a pernicious form of code duplication.
注釋應(yīng)該是注釋W(xué)hy,而不是How和What,參看《惹惱程序員的十件事》,代碼告訴你 How,而注釋應(yīng)該告訴你Why。但大多數(shù)的程序并不知道什么是好的注釋,那些注釋其實和code是重復(fù)的,毫無意義。
4)XML is highly overrated
XML可能被高估了。XML對于Web上的應(yīng)用是不錯的,但是我們把其用到了各種地方,好像沒有XML,我們都不會編程了。
5)Not all programmers are created equal
這是那些junior經(jīng)理或是流程愛犯的錯,他們總是認(rèn)為,DeveloperA == DeveloperB,只要他們的title一樣,他們以為他們的能力、工作速度、解決問題的方法,掌握的技能等等都是一樣的。呵呵。更扯的是,在某些時候,就算是最差的程序員,他們也會認(rèn)為其比別人強(qiáng)十倍,這就是現(xiàn)代的SB管理。
6)”Googling it” is okay!
Google只會給你知識,并不會教給你技能。那里只有“魚”,沒有“漁”,過度的使用Google,只會讓你越來越離不開他,你越來越去要去立馬告訴你答案,而你越來越不會自己去思考,自己去探索,去專研。如果KFC快餐是垃圾食品對我們的身體沒有好處,那么使用Google也一種快餐文化對我們的智力發(fā)展大大的沒有好處。
7)If you only know one language, no matter how well you know it, you’re not a great programmer.
如果你只懂一種語言,準(zhǔn)確的說,如果你只懂一類語類,如:Java和C#,php和Perl,那么,你將會被局限起來,只有了解了各種各樣的語言,了解了不同語言的不同方法 ,你才會有比較,只有了比較,你才會明白各種語言的長處和短處,才會讓你有更為成熟的觀點(diǎn),而且不整天和別的程序在網(wǎng)上斗嘴爭論是Windows好還是 Unix好,是C好還是C++好,有這點(diǎn)工夫能干好多事了。世界因為不同而精彩,只知道事物的一面是有害的。
8)Your job is to put yourself out of work.
你的工作不是保守,那種教會徒弟,餓死師父的想法,不但是相當(dāng)短淺的,而且還是相當(dāng)腦殘的。因為,在計算機(jī)世界里,你掌握的老技術(shù)越多,你就越?jīng)]用,因為技術(shù)更新的太快。你對工作越保守,這個工作就越來越離不開你,你就越不越不能抽身去學(xué)新的東西,你也就越來越OUT了。記住:If you can’t be replaced then you can’t be promoted!
9)Design patterns are hurting good design more than they’re helping it.
很多程序員把設(shè)計模式奉為天神,他們過度的追求設(shè)計模式以至都都忘了需求是什么,結(jié)果整個系統(tǒng)設(shè)計被設(shè)計模式搞得亂七八糟,我們叫這種編程為“設(shè)計模式驅(qū)動編程”,正如第一點(diǎn)所說,如果你不懂得用自己的大腦思考的話,知其然,不知所以然的話,那么你不但得不到其好處,反而受其所累。
10)Unit Testing won’t help you write good code
準(zhǔn)確地說,我們可以認(rèn)為這是Test-Driven開發(fā),其實,這種開發(fā)就是先寫unit test case,這樣的開發(fā)方式的主要目的是,為了防止你不會因為一個改動而引入Bug,但這并不會讓你能寫出更好的代碼。這只會讓你寫出不會出錯的代碼。同第一點(diǎn),這樣的方法,只不過是防止糟糕的程序員,而并不是讓程序員或代碼質(zhì)量更有長進(jìn)。反而,通過Unit Test會為程序員的為自己代碼做辯解的一種托辭。
it知識庫:十條不錯的編程觀點(diǎn),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。