精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

初學(xué)者必看:如何為代碼編寫基本的文檔

開發(fā) 前端
程序員只需要在每個函數(shù)(或者類)開始之前加上一段特殊格式的注釋,然后就可以用專門的工具掃描整個代碼樹然后轉(zhuǎn)換成按照架構(gòu)組織好的(帶有多種目錄,甚至還可以搜索)html或pdf文檔。

事先聲明一下,這篇文章是為完全沒有任何文檔編寫經(jīng)驗,并且正在使用Visual Studio的同學(xué)們準(zhǔn)備的,不一定適用于老鳥以及其他IDE愛好者 :-)

Ok, alpha版本的一個嚴(yán)重的問題便是,我們沒有任何的文檔積累;所以在Beta版本的開發(fā)中,PM準(zhǔn)備徹底消滅這種無文檔的編碼風(fēng)格。

既然要讓大家寫文檔,那么總該有個文檔規(guī)范吧!理論性的東西我就不多講了,這里我就講一個“南七規(guī)范”——簡單實用,不用費腦子。

南七規(guī)范 v1.0

不知道提到“文檔”,同學(xué)們首先會想到什么東西——不過我估計大概是這樣的風(fēng)格——工程里面有一個doc目錄,然后里面有各種不同開發(fā)人員維護(hù)的xxx.txt文件(或者微軟式xxx.doc);誠然,有很多工程的文檔組織形式就是這樣的,但是這樣做也有缺點,就是文檔可能一旦被寫出來就落后于代碼了——離代碼太遠(yuǎn)。還有一點就是分開維護(hù)的文檔可能覆蓋面太窄——代碼中會出現(xiàn)很多沒有在文檔中提到的方法。

所以在這里向大家介紹另外一種維護(hù)文檔的方法——注釋法(名字是我自己發(fā)明的,不要打我)。意思是說,程序員只需要在每個函數(shù)(或者類)開始之前加上一段特殊格式的注釋,然后就可以用專門的工具掃描整個代碼樹然后轉(zhuǎn)換成按照架構(gòu)組織好的(帶有多種目錄,甚至還可以搜索)html或pdf文檔。

這種方法的優(yōu)點在于,當(dāng)一個方法被重構(gòu)的時候,程序員可以輕而易舉地修改文檔,做到二者同步,而且如果保持每天都把文檔給Build出來的話,可讀性又很高。

我們的南七規(guī)范規(guī)定——必須給每個函數(shù)加上文檔,所以在每個函數(shù)前面,都必須寫一份注釋。

上個例子吧。

  1. ///<summary> 
  2.     /// Initialize the resources, and starts a new game.  
  3.     ///</summary> 
  4.     ///<param name="songID">The ID of selected song.<remarks>The track selector should make sure  
  5.     /// that this id is within [0..SongCount-1], otherwise the game will crash.</remarks></param> 
  6.     ///<param name="level">The difficulty level, cound be 0(easy) or 1(hard)</param> 
  7.  
  8.     void StartGame(int songID,int level)  
  9.     {  
  10.         SoundGame.gps = new GamePlayScreen();  
  11.         SoundGame.gps.Layer = 1;  
  12.         GamePlayScreen.selectedSongID = songID;  
  13.         GamePlayScreen.selectedSongLevel = level;  
  14.         GamePlayScreen.startGameTime = TimeSpan.FromSeconds(-2);  
  15.         ScreenManager.AddScreen(SoundGame.gps, null);  
  16.         SoundGame.gps.InitializeGameLoop();  
  17.     } 

注意代碼上面的那段注釋,特殊之處在于普通注釋都是兩道杠,這個文檔注釋是三道杠,盡顯尊貴。看到這里大家可能會說,麻煩!我告訴你,一點都不麻煩,只要你是在使用Visual Studio,那么你把光標(biāo)停在函數(shù)頭的前面,按一個三道杠——啪,自動補(bǔ)出來了,剩下的工作就是往里面填入內(nèi)容而已!

聰明的同學(xué)們可能已經(jīng)觀察出來了——三道杠里面套的不就是一些XML形式的結(jié)構(gòu)么?(再不明白的話,就像HTML一樣)于是就挨個填內(nèi)容吧——下面來幾個裸按三道杠補(bǔ)出來的樣板做示范——

  1. ///<summary> 
  2.        ///   
  3.        ///</summary> 
  4.        ///<param name="position"></param> 
  5.        ///<param name="tag"></param> 
  6.        private void AddButton(Rectangle position,int tag)  
  7.        {  
  8.            TransparentButton tbutton = new TransparentButton(position,tag, this);  
  9.            buttonList.Add(tbutton);  
  10.        } 

這便是在任意一個函數(shù)前面按下三道杠之后自動補(bǔ)全的結(jié)果。可以看到整個XML結(jié)構(gòu)分為兩個部分,一個叫summary,另一個是一堆param。

summary部分是對這個函數(shù)的作用,行為的描述,我的建議是,這里的描述要像說明書一樣——你在寫注釋的時候就要假設(shè)有個十萬個為什么正在問你,這個函數(shù)應(yīng)該怎么用,輸入什么,吐出來什么,副作用是什么——但是不要牽扯到太多內(nèi)部實現(xiàn)的細(xì)節(jié)——什么把XXX對象加入到_YYY隊列中——這明顯不是說明書應(yīng)該做的事情,要想弄清楚這些事情,最好的方式是讀代碼(相信我,這種情況下看代碼比看注釋清楚又高效)

于是我們?yōu)锳ddButton函數(shù)填入如下文檔:

  1. ///<summary> 
  2.        /// Register a button to the system, so that it will be displayed and handled on the game screen.  
  3.        ///</summary> 
  4.        ///<param name="position">The position description rectangle of the button.</param> 
  5.        ///<param name="tag">The global-unique ID of the button.</param> 
  6.        private void AddButton(Rectangle position,int tag)  
  7.        {  
  8.            TransparentButton tbutton = new TransparentButton(position,tag, this);  
  9.            buttonList.Add(tbutton);  
  10.        } 

接下來再來看一份糟糕一點的文檔:

  1. ///<summary> 
  2.       /// Add a TransparentButton to the buttonList  
  3.       ///</summary> 
  4.       ///<param name="position">Position.</param> 
  5.       ///<param name="tag">The tag of the button.</param> 
  6.       private void AddButton(Rectangle position,int tag)  
  7.       {  
  8.           TransparentButton tbutton = new TransparentButton(position,tag, this);  
  9.           buttonList.Add(tbutton);  
  10.       } 

為什么說它糟糕?第一,它有很多內(nèi)部實現(xiàn),現(xiàn)在看著代碼可能感覺不出來,但是當(dāng)這份文檔最終編譯成pdf之后就能體會到這種痛苦了——文檔閱讀者根本不明白你在說什么(否則為什么他不直接去看代碼呢?)第二,定義不清晰——用Position解釋Position是廢話;"The tag of the button"最終沒有解釋Tag是個什么玩意。

希望這樣介紹一下能讓同學(xué)們明白好的文檔和差的文檔有什么區(qū)別。 :-)

另外補(bǔ)充一點,XML結(jié)構(gòu)的文檔實際上是可以嵌套的,例如你可以在summary里面嵌套code

  1. ///<summary> 
  2. ///請看代碼  
  3. ///<code> 
  4. /// 床前明月光();  
  5. /// 疑是地上霜();  
  6. /// 舉頭望明月();  
  7. /// 低頭思故鄉(xiāng)();  
  8. ///<code/> 
  9. ///</summary> 

等等,具體你在三道杠內(nèi)部打一個<然后能夠用的東西就會被補(bǔ)全出來了。注意這里嵌套的結(jié)構(gòu)實際上的作用是對格式進(jìn)行指定,例如段會用等寬字體,等等。

原文:http://www.cnblogs.com/southseven/archive/2011/11/07/2239555.html

Ok,ok finally假設(shè)大家都這樣去寫碼了,接下來怎么辦?這里簡單提一下一個叫doxygen的開源工具。doxygen正是前文提到的那個能自動掃描代碼樹并且生成html或者latex(于是就可以編譯成pdf)文檔的工具,這個工具太出名了,以至于隨便放狗一搜就能得到其使用方法,這里我就不多講了。 :-) 總之就這樣幾個步驟——1. doxygen -g得到一個配置文件樣本 2.稍微修改一下,例如是否遞歸找文件 3.doxygen doxyFile 4.驗收你的漂亮的文檔網(wǎng)頁或者PDF。

責(zé)任編輯:陳貽新 來源: SouthSeven的博客
相關(guān)推薦

2011-09-08 10:38:37

Widget

2011-09-16 09:38:19

Emacs

2011-08-04 18:01:07

IOS Cocoa Touc

2011-08-02 14:48:04

IOS 多任務(wù)

2011-08-10 16:44:56

iPhone代理設(shè)計模式

2011-09-14 09:49:41

Android開發(fā)

2011-06-17 15:06:14

Qt

2011-06-17 14:12:32

Qt

2011-06-17 14:29:55

Qt

2011-06-17 15:32:28

Qt

2011-08-24 17:05:01

Lua

2011-06-17 14:54:31

Qt

2011-06-17 14:41:56

Qt

2011-06-17 15:25:18

Qt

2011-06-17 15:19:28

Qt

2013-04-23 10:51:15

Linux壓縮

2011-06-17 15:44:25

Qt

2011-06-17 15:37:42

Qt

2011-07-27 10:02:12

iPhone Framework

2020-08-04 08:42:10

Python開發(fā)工具
點贊
收藏

51CTO技術(shù)棧公眾號

性欧美激情精品| 欧美一区二区三区爱爱| 欧美一区1区三区3区公司| 国产成人精品亚洲| 亚洲色图国产| 日韩电影中文字幕在线观看| 青青在线视频免费| a级片国产精品自在拍在线播放| 国产成人av一区| 国产成人黄色av| 激情综合网五月天| 九一成人免费视频| 精品久久久久久久久久久久久久久久久| 亚洲中文字幕无码专区| 日本a级在线| 91亚洲精品一区二区乱码| 66视频精品| 欧美变态tickle挠乳网站| 日韩欧美精品在线观看视频| 在线视频二区| 26uuu亚洲综合色欧美| 91免费版网站入口| 丰满人妻一区二区三区四区| 亚洲作爱视频| 久久99视频精品| 午夜黄色福利视频| 九九热爱视频精品视频| 亚洲成人av在线播放| 亚洲免费黄色录像| 日韩在线短视频| 精品国产乱码久久久久久虫虫漫画| 在线视频福利一区| 国产一二三区在线| 91日韩精品一区| 国产一区二区高清不卡 | 色综合久久天天| 精品人妻少妇一区二区| 69xxx在线| 国产精品国产三级国产aⅴ入口| 九九九九久久久久| 欧日韩在线视频| 国产成a人亚洲| 3d蒂法精品啪啪一区二区免费| 最近中文字幕在线免费观看| 欧美亚洲免费| 98精品国产高清在线xxxx天堂| 日韩va亚洲va欧美va清高| 成人在线免费小视频| 亚洲性生活视频| 日韩一级av毛片| 精品99在线| 亚洲人精选亚洲人成在线| 一本加勒比波多野结衣| 给我免费播放日韩视频| 日韩免费视频一区| 韩国黄色一级片| 一区二区三区高清在线观看| 日韩一级在线观看| 亚洲一区二区三区三州| 精品视频在线观看免费观看 | 日本精品一区二区三区在线| 国产精品黄色网| 日韩亚洲精品在线| 国内精品久久久久影院优| 精品少妇久久久久久888优播| 中文字幕亚洲精品乱码| 大量国产精品视频| 精品一区二区三区四| 好看的av在线不卡观看| 97在线视频一区| 黄色在线免费观看| 日韩国产在线一| 国产欧美亚洲视频| a网站在线观看| 国产a视频精品免费观看| 国产欧美日韩伦理| 日本福利在线观看| 欧美国产综合一区二区| 在线视频欧美一区| 成人超碰在线| 91久久精品国产91性色tv| 一区二区三区韩国| 国产精品3区| 亚洲变态欧美另类捆绑| 91网站免费视频| 久久高清精品| 久久久久久久久久久91| 亚洲天堂av片| 美女www一区二区| 99在线视频播放| 亚洲日本国产精品| 国产精品素人一区二区| 日韩精品在线视频免费观看| 欧美激情网站| 777欧美精品| xxxxxx黄色| 菠萝蜜一区二区| 久久理论片午夜琪琪电影网| 无码人妻丰满熟妇区bbbbxxxx| 激情六月婷婷久久| 久久久久久久久久久久久久久久av| www.成人.com| 性久久久久久久久| 一本色道久久亚洲综合精品蜜桃| 6080亚洲理论片在线观看| 亚洲视频综合网| 久久一区二区三| 男人操女人的视频在线观看欧美 | 全国精品免费看| 超碰97人人做人人爱少妇| 成人午夜淫片100集| 国产一区视频在线看| 欧美日韩精品免费看| 91精选在线| 欧美色倩网站大全免费| 成人免费无码大片a毛片| 欧美成人milf| 国产成人精品综合久久久| aaa一区二区三区| 欧美激情在线观看视频免费| 男人天堂a在线| 日本亚洲视频| 日韩网站免费观看| 五月天婷婷导航| av中文字幕不卡| 国产成人免费高清视频| 在线看欧美视频| 亚洲精品自拍偷拍| 久久久久无码国产精品| 精品一区二区成人精品| 日韩av影视| 在线手机中文字幕| 亚洲国产精品女人久久久| 1024手机在线视频| 精品午夜一区二区三区在线观看| 日本公妇乱淫免费视频一区三区| 97天天综合网| 精品久久久久一区二区国产| 91成人福利视频| 国产毛片精品一区| 欧美一级免费在线观看| 国产福利亚洲| 久久精品国产v日韩v亚洲| www.日韩一区| 中文字幕精品一区二区精品绿巨人 | 色又黄又爽网站www久久| av漫画在线观看| 欧美体内she精视频在线观看| 91精品视频网站| 黄色一级大片在线免费看产| 欧美日韩一区 二区 三区 久久精品| 国产精品扒开腿做爽爽| 欧美亚洲一级| 日韩高清av| 国产91欧美| 综合网日日天干夜夜久久| 欧美成人精品网站| 国产精品污www在线观看| 亚洲天堂网一区| 日韩免费视频| 91天堂在线观看| 中文字幕伦理免费在线视频| 日韩限制级电影在线观看| 久久亚洲AV无码| 91免费精品国自产拍在线不卡| 国产亚洲欧美在线视频| 亚洲尤物av| 国产精品青草久久久久福利99| √天堂资源地址在线官网| 欧美日韩免费一区二区三区视频| 国产精品18在线| 国产福利一区在线| 日韩精品视频在线观看视频 | 日韩av综合网站| 亚洲天堂男人av| 国产精品伦理一区二区| a级大片免费看| 欧美亚洲一区| 欧美爱爱视频网站| 国产精品99久久免费观看| 日本不卡视频在线播放| 992tv免费直播在线观看| 欧美日韩国产成人在线免费| 国产黄色片在线免费观看| www.在线欧美| 在线免费观看视频黄| 亚洲精品中文字幕乱码| 国产精品区一区二区三含羞草| 成人片免费看| 久久成人人人人精品欧| 熟妇人妻中文av无码| 欧美在线一区二区| 欧美成人综合色| 久久九九99视频| 日本女人黄色片| 久久久国产亚洲精品| 免费看av软件| 亚洲精品一级二级三级| 亚洲综合中文字幕在线观看| 午夜av不卡| 欧美精品免费在线观看| 男人天堂网在线| 日韩一级大片在线| 日韩电影在线观看一区二区| 亚洲天堂av老司机| 波多野结衣办公室33分钟| 国产精品综合久久| www.99在线| 亚洲国产1区| 亚洲不卡1区| 成人av影音| 成人天堂噜噜噜| 日本成人三级电影| 欧美极品第一页| 男人和女人做事情在线视频网站免费观看| 日韩成人高清在线| va婷婷在线免费观看| 在线观看亚洲成人| 国产精品suv一区二区三区| 亚洲靠逼com| 国产精品视频看看| 国产三级一区二区三区| 中文字幕一区二区人妻电影丶| 久久99精品久久久久久| 亚洲精品乱码久久久久久自慰| 激情欧美丁香| 欧美少妇在线观看| 欧美韩国日本在线观看| 日韩电影天堂视频一区二区| 天堂资源在线亚洲| 国产精品一 二 三| 成人性生交大片免费看96| 91精品国产自产在线| 欧亚一区二区| 日韩美女中文字幕| 性感女国产在线| 韩日欧美一区二区| 高清电影在线观看免费| 欧美成人午夜激情在线| 国产成人无吗| 免费不卡欧美自拍视频| 黄网站免费在线观看| 日韩视频免费观看| 麻豆系列在线观看| 久久影院资源网| 成人欧美在线| 欧美巨大黑人极品精男| 国产福利在线播放麻豆| 久久精品亚洲国产| 天堂av最新在线| 欧美日本在线视频中文字字幕| 2020国产在线视频| 欧美日本中文字幕| 国产乱码精品一区二三赶尸艳谈| 久久久久日韩精品久久久男男| 免费在线国产视频| 久久久久久久久久久免费 | 国产精品露脸自拍| 欧美黑粗硬大| 亚洲专区中文字幕| 粉嫩一区二区三区四区公司1| 国产欧美亚洲日本| 亚洲国产国产| 亚洲精品国产系列| 亚洲自拍偷拍网| www.男人天堂网| 国产日韩欧美三区| 国产精品视频黄色| 精品一区二区在线看| 无码人妻丰满熟妇区毛片蜜桃精品 | 欧美午夜国产| 欧美一区二区三区爽大粗免费| 久久男女视频| 中文字幕 欧美日韩| 国产成人在线影院| jizz日本免费| 欧美极品xxx| 久久精品这里只有精品| 精品久久久一区二区| 久久久国产免费| 91精品国产综合久久久蜜臀粉嫩| 黄色www视频| 亚洲午夜激情免费视频| 香蕉视频网站在线观看| 色综合久久88| 欧美人体一区二区三区| 91免费国产视频| 西瓜成人精品人成网站| 一区二区日本| 国产精品美女久久久| 国产精品v日韩精品v在线观看| 国产91露脸合集magnet| 亚洲av无码国产精品麻豆天美| 亚洲欧美成aⅴ人在线观看| 九九九在线观看| 制服丝袜中文字幕一区| 图片区 小说区 区 亚洲五月| 中文字幕亚洲自拍| 美女网站在线看| 成人欧美一区二区三区在线湿哒哒 | 精品国产一区二区三区av性色| 精品成人一区二区三区免费视频| 欧美精品在线免费观看| 88xx成人永久免费观看| 国产精品免费看一区二区三区| 日韩黄色大片| 成人毛片一区二区| 国产麻豆精品在线| 少妇高潮惨叫久久久久| 精品久久久久久中文字幕一区奶水 | 午夜在线精品偷拍| 麻豆精品国产传媒| 国产精品美日韩| 免费黄色网址在线| 欧美成人欧美edvon| 3d成人动漫在线| 琪琪第一精品导航| 99久热这里只有精品视频免费观看| 欧美日韩综合网| 国产日韩一区二区三区在线| 在线看免费毛片| 欧美极品xxx| 久久久久久久亚洲| 亚洲男女自偷自拍图片另类| 青青在线视频| 91精品国产一区二区三区动漫 | 99免费视频观看| 91蜜桃网址入口| 日本在线观看视频网站| 日韩欧美你懂的| 成人影欧美片| 亚洲999一在线观看www| 久久影院100000精品| 香蕉视频网站入口| 欧美极品另类videosde| 91porny九色| 中文字幕av一区| 欧美一级二级视频| 日韩中文字幕一区| 日韩激情中文字幕| 免费人成又黄又爽又色| 色婷婷国产精品| 九色视频网站在线观看| 欧洲日本亚洲国产区| 亚洲精品小区久久久久久| 久久精品免费一区二区| 91天堂素人约啪| 青青草免费观看视频| 亚洲精品小视频| 日韩制服一区| 亚洲啪啪av| 狠狠久久亚洲欧美| 青娱乐免费在线视频| 精品国产免费一区二区三区香蕉 | 99精品视频精品精品视频| 色播五月综合网| 成人免费在线视频| 亚洲AV无码国产精品午夜字幕| 欧美激情精品久久久| 久久草在线视频| 日本成人在线免费视频| 亚洲国产精品二十页| 88av在线视频| 欧美成人午夜免费视在线看片| 7m精品国产导航在线| 国产69精品久久久久999小说| 91亚洲精品久久久蜜桃网站| 精品人妻一区二区三区潮喷在线| 上原亚衣av一区二区三区| 国产激情综合| 久久国产亚洲精品无码| 久久九九全国免费| 国产精品一区二区黑人巨大| 欧美区在线播放| 免费av一区| www,av在线| 午夜久久久久久| 成人性生交大片免费看午夜| 亚洲www在线| 欧美亚洲三级| 欧美三级在线免费观看| 日韩电影免费观看中文字幕| 国产精品诱惑| 东北少妇不带套对白| 国产精品少妇自拍| www.激情五月.com| 国产精品第七十二页| 午夜国产精品视频| 欧美激情aaa| 欧美一区二区精品| 欧美特黄aaaaaaaa大片| 久久久成人精品一区二区三区| 97精品视频在线观看自产线路二| 久久久久久av无码免费看大片| 精品自在线视频| 视频精品在线观看| 亚洲免费观看在线| 欧美日韩中文一区| 亚洲欧洲自拍| 久久久久99精品成人片|