智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

專家分享:注釋嵌入式軟件的十大技巧

來源:網絡

點擊:1202

A+ A-

所屬頻道:新聞中心

關鍵詞: 嵌入式,嵌入式軟件

      作者:JacobBeningo

      在軟件開發過程中沒有比獲得一個只有很少甚至沒有說明文檔的代碼庫而又要求進行維護更具挑戰性的事情了。這些文檔不只是告訴工程師某個特定函數或變量是做什么的,而且能夠展示和傳達軟件為何以某個特定方式實現。在軟件實現過程中會作出成千上萬個決策,因此維護工程師甚至未來的你盡可能多地保留這些決策過程至關重要。

      注釋代碼的問題部分原因來自出貨壓力、不正確的設計以及注釋代碼是如何工作的事情沒有開發來得有趣或興奮這個事實!許多工程師(包括我自己)憎恨必須注釋代碼,但這項工作在嵌入式工程師開發過程中是如此重要,以致于我們絕對不能省略或三意二意地去做。然而,可以在軟件開發過程中記住一些技巧,它們有助于確保未來開發人員維護好代碼開發中的任何細微變動。

      技巧1——隨時而不是過后進行注釋

      交付產品的壓力經常導致天馬行空般的編碼風格,為了完成任務以便盡早推出產品,代碼是想到哪就編到哪。在瘋狂的代碼編寫過程中,很少想到記錄下代碼要完成的功能。等產品交貨后,設計人員才會回去瀏覽代碼并進行“注釋”。這樣做的問題是,這時已經距離寫完代碼幾周甚至幾個月的時間了!對一些工程師來說記起昨天早餐吃的是什么都很難,更不用說兩周前寫的一段代碼了。最終結果是不準確的注釋說明,日后往往會引起誤解和缺陷。

      這里的技巧當然是在進行決策的同時隨時進行注釋。形式化的外部文檔注釋過程無疑會降低開發人員的進度,但向代碼庫中增加注釋真的不會占用更多時間。開發人員能夠做的第一件事是先對代碼要做什么事寫一些注釋行,然后再寫代碼。如果實現發生了變化,開發人員可以立即更新注釋。在任何情況下,在編寫代碼的同時寫下注釋只會節省時間和增加條理性,從而更少發生錯誤,產品也能更快的上市。

      技巧2——自動生成注釋文檔

      盡管對代碼做了很詳細的注釋,但總是有生成外部文檔的要求,以便任何人不看代碼就能明白程序功能。這個要求經常導致雙倍的注釋工作量。幸運的是,市場上有現成的工具可以自動讀取代碼注釋、然后生成界面和代碼的其它文檔細節!幫助工程師避免必須做兩次相同的工作!一個具有這種功能的免費工具例子是Doxygen。當開發人員在編寫他們的代碼時,他們以指定方式格式化他們的注釋,并提供他們想要在外部文檔中展示的細節內容。然后他們就可以運行Doxygen生成真實反映軟件內注釋的html、rtf或pdf文檔。美妙的是如果你更新注釋,外部文檔也會自動更新!

      技巧3——不要寫顯式的注釋

      雖然開發人員寫了代碼注釋,但如果注釋只是變量或函數名字的重復,會特別令人惱火。注釋應該是描述性的文字,需要提供顯式意思之外更多的細節!提供盡可能多的信息,而且不要忘了提及相關和關聯的變量或函數。開發人員應該能夠只通過閱讀注釋就了解軟件的行為。圖1給出了一個注釋簡單映射數組代碼的例子。

    注釋嵌入式軟件的十大技巧

      圖1:映射數組。

      技巧4——提供使用例子以便更清楚地了解用途

      函數或變量注釋中包含如何使用它們的例子是很有用的。說應該如何使用是一回事,但展示如何使用會讓人更清楚其用途。除了能夠減少錯誤使用對象的機會外,還能給人一個更清晰的印象。圖2顯示了一個如何注釋函數的例子,它告訴開發人員應該如何使用這個函數,從而避免了容易出錯的猜測過程,使人能夠更清晰地了解其用途。

    注釋嵌入式軟件的十大技巧

      圖2——使用例子。

      技巧5——創建注釋標準

      就像寫代碼一樣,為代碼開發注釋和文檔也應該有個標準。由于注釋標準中不可能有許多條款,因此特別推薦向編寫代碼標準靠攏。也就是說確保小組中的每個成員以相同的方式進行注釋和歸檔,從而確保開發的易用性。開發人員應該專注于解決手頭的設計問題,而不是費勁地去搞懂注釋。

      技巧6——使用文檔模板

      確保注釋遵循標準的最容易的方法是為頭文件、源文件和支持文件創建模板。當創建一個新模塊時,可以從模板入手,然后增加相關的信息。這將有助于確保文件信息塊、代碼段、函數和變量都用相同的格式注釋。這種方法的最大優勢是能夠節省大量時間,并有助于減少將一個模塊拷貝到另一個偽模板時發生的拷貝粘貼錯誤。為了讓生活更加輕松,我特意開發了可以用于定義頭文件和源文件的模板。

      技巧7——圖表的作用

      在一個項目的軟件實現階段開始之前,應該有一個軟件設計階段。這個設計階段無疑會生成許多漂亮的圖(如流程圖和狀態機),并被用于實際實現。雖然這些文檔作為軟件的開發路線圖,但在開發和測試過程中總會出現偏差!遺憾的是,這些變化很少會返回到圖表中。結果是設計文檔和軟件的不匹配!在實現和測試階段將這些圖表放在手邊,以便發生上述偏差時這些圖表能及時得到更新。將這些圖表留到日后更新永遠不是正確的做法。雖然我們總是有返回去更新或修復的良好愿望,但這永遠不是合適的時機。

      技巧8——保持注釋框使用的一致性

      就像聽起來一樣奇怪,許多網絡爭論的內容是何時、哪里使用何種類型的注釋框!不過嚴肅地講,不管你的信仰是什么,歸根到底是一致性問題。如果一個團隊決定只使用/*…*/類型的注釋,那么就只使用這種類型。如果決定使用//類型,那就只使用//類型。作者個人的觀點是傾向于使用/*…*/進行函數和模塊級說明,使用//進行函數代碼說明。不管選擇是什么,確保每次都按同樣的方式去做,這樣有助于生活更加輕松。

      技巧9——使注釋更容易閱讀(即格式的美化)

      為了確保避免誤解并由此產生代碼缺陷,使代碼保持結構化和容易閱讀很重要。注釋也一樣。偶爾結構化的注釋會使眼睛很難捕捉注釋,更難捕捉不在合適位置的內容。應該對注釋進行格式化處理,這樣如果代碼打印出來時(雖然現在不常打印,但我偶然仍會打印代碼)注釋就不會分到好幾頁上去。在大塊注釋(如文件頭或函數注釋)中,如果你使用塊指示器,千萬不要包含進任何拖尾字符(如#或*),要不只會使文檔更新變得更加困難。

      技巧10——嵌入圖像和圖表

      借助自動化工具的使用,在注釋文檔中包含編碼標準、縮寫詞、項目細節、要求和大量其它條款就成了可能。甚至能夠包含諸如流程圖等設計性圖表!使用這類功能允許代碼庫不僅包含執行代碼和邏輯,還包含你想要了解的項目所有內容,并且所有信息都放在同一個地方。

    (審核編輯: 小王子)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 内蒙古国际门窗幕墙展览会| 主题公园设计|主题公园规划|水上乐园设计|龙翔设计|龙翔景观|龙翔文旅|深圳市龙翔设计景观工程有限公司 | 一体化污水处理设备-生活废水处理设备-山东瑞信环保 | 葫芦岛市鹏翔农药化工科技有限公司-苦参碱可溶液剂-氯氰菊酯乳油-阿维菌素乳油 | 玉米加工机械_玉米加工设备_玉米深加工机械_玉米糁加工设备--滑县鑫丰粮油机械有限公司 | 塑料模具公司,塑料包装桶厂家,PET打包带厂家,缠绕膜厂家-新疆福吉亚工贸有限公司 | 注册公司计|代理记账|临港招商_上海临港商盟官网 | 两面针(江苏)实业有限公司-原两面针(扬州)酒店用品有限公司 | 液态硅胶制品厂家_液态硅胶包胶加工_LSR液态硅胶模具厂_液体硅胶注射成型_广东盈泰 | 亚洲一区日韩一区欧美一区a,中文字幕乱妇无码AV在线,欧美日韩免费在线观看,国产精品一区二区三区免费,日韩精品免费一线在线观看,日韩一本在线,国产呦精品一区二区三区下载,国产日韩精品一区二区在线观看,欧美日韩高清一区二区三区,日韩在线免费观看视频,欧美日韩一区在线观看 | 中式婚礼_汉服婚礼_传统婚礼_婚庆公司_云歌婚礼策划【官网】 | 橡塑保温材料_防火保温材料_保温棉_东莞康成保温材料有限公司 | 可燃气体报警器-有毒有害气体检测仪-气体检测分析系统-宁波市高品科技有限公司 | 武汉防雷检测_防雷工程设计施工_防雷设备材料_湖北普天科技有限公司 | 青州市同兴源包装机械有限公司-青州市同兴源包装机械有限公司 | 上海慧泰仪器制造有限公司_一体型马弗炉-可控真空干燥箱-强光稳定性试验箱 | 上海祝融起重机械有限公司-德国耶鲁手拉葫芦|耶鲁手拉葫芦|耶鲁手扳葫芦|耶鲁电动葫芦经销代理 | 自恢复保险丝_贴片保险丝_插件保险丝_力特保险丝_力特经销商_SMD贴片保险丝_一次性保险丝厂家—深圳市集电通实业有限公司 | 机械智能停车设备_智能机械式立体停车库_立体车库停车设备租赁_山东科博机械车库 | 精密机械加工_零件加工_机械零部件加工厂_高精密零件加工定制—深圳精密机械加工厂 | 同步分流马达_液压泵维修_派克多路阀-济南富诚液压设备有限公司 通用变频器|国产变频器|深圳变频器厂家-深圳市英捷思技术有限公司 | 外圆/圆管抛光机_方管抛光机/除锈机_活塞杆抛光机-不锈钢管抛光机-邢台欧邦机械 | 免费的PPT幻灯片演示制作软件,动画视频及课件制作软件 - Focusky万彩演示大师官网 | 围墙护栏,护栏网,围栏,锌钢栅栏,护栏网厂家--安平县沃达金属丝网制造有限公司 | 重庆监控安装_监控系统工程_高清监控摄像头-重庆监控系统安装公司 | 深圳浪琴维修服务中心_浪琴售后保养服务网点_地址 | 中深世纪广告公司 深圳标志设计,深圳logo设计公司,包装设计公司,深圳商标设计,深圳画册设计公司 中商信息网-商务数据网-中文商务数据网 | 苏州拆除公司_太仓拆除公司_常熟拆除公司_昆山拆除公司--苏州伊诺尔拆除工程有限公司 | 易众拍卖行-事故车拍卖,残值车拍卖,水淹车拍卖,全损车拍卖,修复车拍卖,碰橦车拍卖,瑕疵车拍卖,报废车拍卖,泡水车拍卖,拆车件拍卖,配件拍卖,火烧车拍卖,二手车拍卖专业线上平台 | 专注欧美工业控制自动化设备-MRO工业品采购服务-科电远扬 | 王者荣耀/和平精英扫码上号登录器_微信安卓苹果扫码上号登录软件 - 上号宝扫码登录器 | 亚洲一区日韩一区欧美一区a,中文字幕乱妇无码AV在线,欧美日韩免费在线观看,国产精品一区二区三区免费,日韩精品免费一线在线观看,日韩一本在线,国产呦精品一区二区三区下载,国产日韩精品一区二区在线观看,欧美日韩高清一区二区三区,日韩在线免费观看视频,欧美日韩一区在线观看 | 联动机-钻井转盘-滑动游车-河南思达瑞石油机械制造有限公司 | 昆山开曼流体系统科技有限公司 | 随车挖生产厂家_山东精久工程机械有限公司| 拉力试验机|电子万能试验机|液压万能试验机|摩擦磨损试验机|济南试验机厂家-济南思达测试技术有限公司 | 宣城安安橡塑有限责任公司 | 锌铝合金压铸-深圳压铸加工-铝挤压拉伸-压铸模具厂-广东誉格精密技术有限公司 | 生物安全柜检测,GMP设备确认,仪器性能确认,洁净厂房检测,仓储温湿度检测-上海熙迈 | 江苏圣博莱自动化科技有限公司| 气象站_校园气象站_自动气象站_光伏气象站-山东万象环境科技有限公司 |