善用#waring,#pragma mark 標記


  在項目開發中,我們不可能對着需求一口氣將代碼都寫好。開發過程中肯定遇到諸如需求變動,業務邏輯溝通,運行環境的切換等這些問題。當項目大的時候,如果木有形成統一的代碼規范,在項目交接和開發人員溝通上將會帶來很大的麻煩。

  #pragma mark -

  這個標記在iOS開發中用得最多了。其實最主要的是用來進行標記的,當然也有注釋的作用在里面。當然我們也可以用//,/* */等常用注釋來說明。但是用#pragma mark -不同的是可以將整個文件的函數以類似分組的形式展現。當我們點擊Xcode 導航欄上面的文件后面的列表時將會得到如圖所示的界面:

這樣當其他開發者查看此文件時,可以清晰的看到整個函數分布,也清晰的知道各個功能相關的函數。如果鼠標點擊其中的標記可以直接跳到此標記的位置,非常的方便。當進行業務上溝通和調用時非常省時省力。用#pragma mark -還有一個好處就是在開發中我們經常會實現其他類的delegate,datasource,protocol等,如果我們#pragma mark - UITableViewDelegate,當我們用鼠標加上command點擊UITableViewDelegate會直接跳到這個delegate定義的地方,可以方便的查看相關方法。個人對#pragma mark - 作用的理解是便於開發者之間相互交流。特別是多人的大項目時,如果大家都按各自喜好隨便使用#pragma mark - 那么對於項目開發和維護來說是非常災難性的。不僅開發者自己不清楚自己的整個文件的結構,當其他開發者進行接手開發時將是件非常頭大的事情。由於objc函數命名時具有口語化的特點,函數一看名字就知道其要實現的功能,所以平常開發中只寫一些關鍵性說明的注釋,如bool變量的說明,業務處理的邏輯等。結合#pragma mark - 可以很方便的讓其他開發者理解。

#waring 

  這個更加建議大家使用,Xcode默認支持了將#waring標記以編譯警告的形式顯示出來。在軟件開發中,大家都會用TODO,FIXME,XXX等特殊注釋。這些關鍵字也被很多IDE所支持。如果在代碼中加入#warning 此處需要修改 by james,在Xcode的編譯警告窗口中看到:

在開發中,我們苦逼程序員的思維不斷的被打斷,不斷的來回切換。比如業務邏輯未定,網絡請求地址切換,寫死代碼進行本地測試,項目聯調等操作。最蛋疼的時項目上線后突然發現請求地址不對,本地含有寫死的測試數據或者我們需要用到其他項目模塊代碼時,臨時改動了別人代碼,但木有改回去。這種情況就屬於重大項目事故了。一兩個不確定改動,苦逼程序員或許會記住,但是多了之后,那直接是百分之一萬會被遺漏的。所以最好的方法是在你不確定的業務,測試數據等地方標上編譯警告。以#waring 開頭寫下原因,標記人,時間等說明信息。這樣在項目開發結束后,會有一個專門的時間去消除這些警告,以確保沒有遺漏的地方。

  對於依然喜歡用TODO,FIXME,XXX的開發者來說可以,設置下工程的"Build Phases",然后添加New Run Script Build Phase,添加以下代碼

KEYWORDS="TODO:|FIXME:|XXX:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"

這樣xocde就可以將這些特殊標記以#waring的形式展現出來。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM