空間站

          北極心空

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          作者:江南白衣,原文地址:http://blog.csdn.net/calvinxiu/archive/2007/04/17/1567553.aspx,轉(zhuǎn)載請(qǐng)保留。

           這個(gè)系列希望寫一些正兒八經(jīng)的架構(gòu)設(shè)計(jì)之外的,屬于架構(gòu)師職責(zé)的雜七雜八的事情。

           制定項(xiàng)目的代碼規(guī)范也是架構(gòu)師的雜事之一,下面記一些制定規(guī)范的規(guī)范,Standar of Coding Standars。

          1.規(guī)范的內(nèi)容

            a.Standars在老外口中可以細(xì)化為Conventions、Rules、Guidelines和Best Practices,身為一份有價(jià)值的規(guī)范,除了定義最簡(jiǎn)單的格式、命名規(guī)則外,更要包含足夠份量的禁條、指南和最佳實(shí)踐。

            b.規(guī)范必須是經(jīng)實(shí)踐的廣泛共識(shí)的標(biāo)準(zhǔn),不是完美主義者憑空發(fā)明,認(rèn)為這樣子會(huì)更好的條款。

            c.條款必須有被描述的價(jià)值,沒(méi)人會(huì)做的蠢事就不用再列了(比如編譯器已經(jīng)強(qiáng)制檢查的,或者濫用goto語(yǔ)句這樣的條款)

            d.條款可以分成必須遵循(I)、推薦遵循(II)與可選建議(III)幾個(gè)等級(jí)。

            e.團(tuán)員意見一致的規(guī)范比完美的規(guī)范更重要。

          2.第0條規(guī)范---不要拘泥于細(xì)節(jié),個(gè)人喜好與過(guò)時(shí)的東西不應(yīng)該被標(biāo)準(zhǔn)化

              ----來(lái)自《C++ Coding Standards中文版》,很重要的條款。

              有些東西只是個(gè)人喜好與信仰問(wèn)題(MS vs Unix),并不影響程序的正確性可讀性,比如,花括號(hào)的位置,縮進(jìn),空格與縮進(jìn)符,行的長(zhǎng)度,只需要規(guī)定在一個(gè)文件、一個(gè)模塊中必須一致就可以了。

              具體使用哪種風(fēng)格其實(shí)并不影響可讀性,不值得花太多的時(shí)間來(lái)爭(zhēng)論,規(guī)范中更有價(jià)值的是格式以外的部分,比如How處理異常,How寫log等。何況現(xiàn)代IDE一下就能轉(zhuǎn)換格式。但若是閱讀同一段代碼時(shí)要在幾種風(fēng)格中切換就有點(diǎn)難受。

              過(guò)多過(guò)細(xì)的命名規(guī)定也不值得,而匈牙利記法,單入口單出口條例在書中被認(rèn)為過(guò)時(shí)。

          3.以別人的規(guī)范作基礎(chǔ)

                a. C++

                b. Java

                c. Other

          •  Google Directory  和 Open Directory 上,每種語(yǔ)言都可能收集有Coding Standard/Styles。
          • RUP的文檔中也有C++與Java Programing Guidline Examples。

          4. Code Review
              善用自動(dòng)review的工具如EclipseInellij IDEA的代碼校驗(yàn)功能和CheckstylePMD 這些靜態(tài)代碼分析工具。

          5.參考資料:
          《The Art of Agile Development》Coding Standards一章



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1567553

          posted on 2007-04-18 14:04 蘆葦 閱讀(422) 評(píng)論(0)  編輯  收藏 所屬分類: 其他
          主站蜘蛛池模板: 文水县| 南召县| 连山| 普格县| 土默特左旗| 张家界市| 南溪县| 和田市| 宝应县| 海门市| 城市| 阳新县| 巩义市| 辰溪县| 麻阳| 呈贡县| 藁城市| 太康县| 巧家县| 三台县| 都江堰市| 米易县| 鄂州市| 涟源市| 黑水县| 兴仁县| 沙洋县| 新民市| 科技| 巴青县| 五河县| 佛教| 北海市| 娄烦县| 武冈市| 农安县| 肇庆市| 巍山| 塔河县| 武功县| 镶黄旗|