冷面閻羅

          低調做人&&高調做事
          隨筆 - 208, 文章 - 3, 評論 - 593, 引用 - 0
          數據加載中……

          【轉】我本人一直以來在犯的錯誤

           也許你是只老鳥,也許你的程序編的很精,但是,在你的程序生活,你也許沒有注意到一些“常識性”的問題,因為有些時候我們不需要去注意,我們的程序照樣能夠運行得飛快,但是如果那天有一個無聊的人問你一個像這樣的問題,本來他是非常崇拜你的,可是因為你的一個疏忽就從他的心理掉價了。呵呵,開個玩筆,有一些東西我們還真的不得不注意,因為說不定我們那天就在這個小溝里翻了。

              我個人也是個CODER,一直被外界的一些花哨的東西所忽悠著,一直就沒有心來看這些書,大致一翻,都懂,沒有什么看的。但是,懂是懂的,可是有很多的所以然,還真的說不出來。
          1、Java里面默認值的誤解:

          這個不是SUN公司的錯,怪只怪我們沒有仔細看文檔,因為我們所看的書中都可能是這樣的說“如果沒有分配值,系統會為變量自動分配置默認值”,我們就信以為真了,有些地方也確實是行得通的,在有時編程的時候也遇到沒有賦值就編譯通示過的提示,也沒有多去想。這個所說的默認值是指類成員變量在沒有賦值的時候會賦以默認值,其它局部變量是不能夠享受這種待遇的。這下懂了吧,為什么會出錯了,這里一定要給以初使值才行。
           
          2、很少使用接口
          當然這不是說我有這處毛病,你們就有,我只是說我自己,以免在黑暗中被拍了磚頭@。至少我相信有一大部朋友是這樣的,拿到一個東西,就直接在類里面去實現,因為為什么呢?沒有必要嗎,為什么要去多寫一個接口呢,這不是明擺著給自己找麻煩嗎?
              
                
          說實話,就在寫這篇自我反省以前,我一直都是這樣的,可以說是從來沒有寫過接口,也許您會說,“從來沒有寫過接口也算是學JAVA”,不過不管你怎么說,確實沒有寫過,所有寫的都是直接在類中實現(注:我這里指的類表示非接口類)。如果有些小程序,確實不需要寫,因為實現也很簡單,也可能以后不需要繼承,也不需要在以后的某年某月再次重新優化一下,當然沒有必要了。

                 可是,這是一個習慣問題,當你走路習慣了左邊,那你走路的時候就不會走右邊,你就會在不知覺中去和車車親個嘴。我們應該培養自己的這種思維,讓我們不管在大小項目中,都會想到要這么做。有句古話叫“一屋不掃,何以掃天下”就是這個道理,而不是報以“大丈夫不拘小節”的態度。


          你可能對這個為什么要寫接口還是不明白,就像《Think In Java》這樣說的,“如果你現在寫了一個功能,以后發現這個功能執行起來速度不理想的時候,如果你去代碼中改,那有可能會是增加BUG進去,如果我們使用了接口,就不用這么麻煩了,方法重寫就很好辦”,我想也是這樣的,我就經常犯這樣的錯誤,有些時候隨著時間的推移,連自己寫的程序,邏輯都還要慢慢去理。
           
          3、讓一個類去做特定的事情
           
               
          在《Think In Java》提到,把每個對象都當成服務的提供者,為什么這樣說呢?還是說現實的比喻吧,就像是一個人,我們如果希望他什么都會,結果也可能是他什么都會,但是沒有一樣東西是能夠拿出手的,都是半懂。而如果把這些東西分給多個人去學習,只要他們每人學自己那一部份,結果是每個人懂得都不是那么多,也不會有那么大的心理負擔去學習,最后都學得很精,結果綜合的深度,每個人都能夠獨擋一面,就是這個道理。

                 我個人也是經常犯這樣的錯誤,有些時候,一個類下來,什么亂七八糟的功能都有,結果后來多得連自己有時都分不清楚,那些方法在用,那些方法沒有用了。
           
          4、根本不注重合理使用訪問控制:public, private, protected

             
              
          我自己寫程序的時候,想到什么樣方便,就怎么樣使用,特別是對于類變量,不管定義成PUBLIC還是PRIVATE,都可以在當前類中使用無阻,這也應該就是讓我不注意的原因吧。如果完全是自己使用,可能出錯的機率不會太大,因為個人對這個應該還是熟悉的,但是如果你的應用程序需要發布,用戶來使用就會出錯,因為他們調用一個不能夠獨立執行的方法或者是變量。又或者是一個本來不需要對外公開的方法,你對外公開了,外面的用戶使用了,而在你后面的版本中,你又把這個方法更改了,那么使用者在調用這個方法的時候就會出錯,至少你寫的程序分健壯性就要打個問號了。
           
          這是我現在發現的個人毛病,挑出來,希望以后不要再犯。最后見意,有經驗的程序員,不要忘了看看《Think In Java》,因為你們更容易犯錯,而在自己的錯誤中生存下去。

          posted on 2007-08-20 15:42 冷面閻羅 閱讀(538) 評論(2)  編輯  收藏

          評論

          # re: 【轉】我本人一直以來在犯的錯誤  回復  更多評論   

          這篇給我的感想也頗多,確實平時得注意!!!!
          2007-08-28 10:15 | winar

          # re: 【轉】我本人一直以來在犯的錯誤  回復  更多評論   

          樓主說的太有道理了,接口是Java中一個很重要的技術,可是平時用得不是很多,還有就是訪問權限的設置,幾乎一般都用private。呵呵。
          2008-07-12 23:33 | 張輝

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 盐池县| 大邑县| 黄梅县| 六枝特区| 苏尼特左旗| 隆子县| 黔江区| 商都县| 临澧县| 六盘水市| 疏勒县| 芜湖市| 夹江县| 库伦旗| 灌云县| 成武县| 南陵县| 扎鲁特旗| 化隆| 佛冈县| 嘉祥县| 庆云县| 大城县| 富宁县| 东至县| 舟曲县| 即墨市| 大连市| 桂阳县| 庄浪县| 界首市| 德格县| 通辽市| 徐汇区| 田东县| 大渡口区| 都兰县| 金平| 库伦旗| 长宁区| 富锦市|