劣質代碼的產生原因(4)管理者的誤導

來源:互聯網
上載者:User

劣質代碼產生的另外一個原因是管理者的誤導,具體的誤導行為有如下幾種形式:

1. 莫名其妙的代碼規範

    代碼規範是為了能夠讓團隊的程式員寫出的代碼像是一個人寫的。本身是好事,但是如果代碼規範制定的時候只是照搬照抄,那麼代碼規範很可能淪為損害代碼品質的幫凶。

    A. 每行修改的代碼都要加註釋

          每行修改的代碼都要增加註釋是在沒有版本管理工具的時候的做法。因為這樣可以對比修改的代碼。
          這種代碼的修改方式導致了一個很重要的功能——重構——無法使用。因為每次重構的時候都會變更很多代碼,並且沒有增加註釋。
          正確的做法是把修改履曆增加到版本工具裡。

    B. 修改時減少代碼的修改量

          修改代碼時盡量減少代碼的修改量是為了減少影響性。
          如果在一行處理上要增加一個判定條件,那麼原來的處理是不能動的。這樣代碼就沒有了縮排,當若干個這種代碼累積在一起之後,代碼就基本上不具備可讀性了。
          況且代碼版本管理工具都具備代碼比較功能,並且,可以抽出任何兩個版本進行比較。

    C. 修改代碼的時候舊代碼不要刪除

          修改代碼的時候要把舊的代碼留下,不要把舊的代碼刪除。這是為了能夠弄明白代碼修改的意圖。
          遵照這條代碼規範會把代碼改的千瘡百孔,有的地方成段的注釋舊代碼,毫無參考價值。有的地方一段有意義的語句被中間若干條注釋拆成百葉窗。 

    D. 注釋量和代碼量要達到2:3

          代碼中沒有注釋恐怕不是那麼好懂,但是代碼中到處都是注釋恐怕也不會好懂。
          當要求注釋量的情況下,注釋就變成了為了注釋而注釋
          關於應該如何注釋,我將會在《如何書寫自表達代碼——改變編程習慣——注釋》中講述。

    E. 每行代碼不能超過80個字元

          以前由於編碼工具收費,有些人用非IDE環境來查看代碼,有些人需要列印代碼,所以規定每行代碼不能超過80個字元。以便求得閱讀上的相容性。
          但是,現在的顯示器都是寬屏為主了。每行代碼只有80個字元,右邊會空一大片地方。而且,進階語言的命名往往都不短,再加上類-方法-條件的縮排,基本上80個字元連一條較長的判定語句都放不下。每行80個字元的限制導致了代碼的無端換行。這個過時的規定除了能夠降低代碼的可讀性,沒有什麼別的價值。

    F. 每個方法不能超過200行

         方法不能太長,太長的代碼會導致閱讀困難。

         為什麼是200?據說是統計的。而大多數代碼應該保持在20行以內,少數代碼不超過200行。所以這條規範不如規定為方法不要超過20行;如果方法必須超過20行,那麼方法不要超狗200行。如果單純規定200行,那麼大部分寫成50行也不算違規。結果導致中等規模的方法數量太多。

    G. 域變數必須定義成private類型的。

         域變數定義成private是為了能夠增加安全性。

         把域變數定義為private,然後增加上getter和setter,這和定義成public本身沒有區別。域變數的公開類型應該根據具體應用而定義,並不能無端的全部定義成private。

     H. 不準使用do-while

         據說不準使用do-while是因為do-while難以閱讀。

         於是在一些代碼中會寫成do-while外一組處理,do-while裡再重複一遍。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.