<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 專家分享:注釋嵌入式軟件的十大技巧

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

          作者: 時間:2014-10-31 來源:網絡 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/264705.htm

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

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

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

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

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

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

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

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

            

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

           

            圖1:映射數組。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          關鍵詞: 嵌入式 注釋 Doxygen

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();