標籤:
當我們進入到新的公司的第一天,看到以前老員工編寫的代碼,找個東西累死人咧,那個抓耳撓腮的啊,一般情況下都有想揍人的趕腳。 哈哈,不忙,先想一下自己的代碼!想一下自己寫的代碼怎麼才能新來的人一眼就能看懂,想找什麼,在幾秒之內就能找到?這個就要在前期建立項目的時候留神 了, 要保證項目的易讀性、易維護性以及易擴充性等。
在我看來,作為一個項目開發的領頭人,你可以從兩個方面著手:
今 天就先介紹我在做新項目的時候項目架構(代碼規範我會在下一篇文章以總結的形式羅列出來),搞理論這個我不擅長,只好整個例子說一說。考慮到很多人在剛學 OC的時候都用“新浪微博”來練手,所以這裡就拿新浪微博的iPhone用戶端來說事,也正好對比一下,這樣更能看出問題所在。(其實,目前市場上基本所 有的應用都適用,本文說的就是一個思想,不論平台,不論語言,只要能理解,就可以應用到實際的應用開發中。)
為了為項目代碼建立一個易讀性、易維護性、易擴充性都相當不錯的代碼模板,現在要求項目代碼的搭建者按照如下的步驟進行:
1、所有建立項目最好是「Single View Application」:
2、填好各個項目,這裡注意,項目名稱最好使用英文:
3、項目建立好之後,第一件事就是修改最低部署系統的Target版本:
4、接下來就是源檔案管理,我們看左側的導航地區:
非代碼源檔案全部移動到「Supporting Files」中;
選 中Appdelegate和ViewController的.h和.m,右鍵「Show In Finder」,然後把Appdelegate和ViewController的.h和.m移到廢紙簍,回到Xcode,刪除紅色的剛才我們刪除的檔案 (也可以直接在Xcode中右鍵->delete->movetotrash, 但是有時候會刪除地不乾淨)。
5、 匯入我們已經準備好的項目結構檔案(就是項目結構的檔案夾和檔案的集合在這下載查看)到與項目名稱相同的目錄之下,:
結果是這樣的:
6、 其中檔案夾`QLClasses`中是該項目中的所有原始碼,`QLResources`中存放的是所有的非代碼資源檔,下面就這兩個檔案夾的結構就新浪微博目前的結構進行詳細的說明。整體的架構圖如下(這才是重點):
需 要注意的是圖片的處理,在`QLResources`中有個`QLImages`檔案夾,這個檔案夾是供特殊的圖片檔案而設立的,你不能把所有的圖片都塞 到這裡,這個不科學。最好還是放在Assets.xcassets中,那麼到底是哪些圖片呢?在有些項目中,大量使用了全屏的背景圖片,這樣的圖片我們一 定不能使用[UIImage imageNamed:@"imageName"]的方式載入,因為這個方法會把圖片直接緩衝到記憶體中,試想一下,如果很多張圖片都塞進記憶體是什麼情況? 那就只能使用[UIImage imageWithContentsOfFile:@"imagePath"]的方式,但是我們知道Assets.xcassets中的圖片在產生ipa 後會被打包成一個壓縮檔,以減少記憶體的佔用,這個`imagePath`從哪裡來呢,所以問題就解決了。把這些圖片放到這個檔案夾下面,載入的時候直接 用NSBundle解決path的問題,ok!
項目中肯定會遇到多個介面使用同一個資料模型的問題,最好還是在`QLMain`檔案夾中建立兩個檔案夾`QLCommonModel`和`QLCommonView`兩個檔案夾,以便統一管理。
在Xcode左側導航中看到的結構中的每一個檔案夾(除卻Supporting Files),必須映射到Finder中的檔案夾中,這樣在不開啟項目的情況下,我們就可以迅速的定位出以前寫過的工具類的位置,也方便在Finder中查看當前項目的結構。
iOS建立專案檔管理規範