當(dāng)你從一個懵懂不知的初學(xué)者剛剛步入了一家公司,而你接手到的正好是多年迭代開發(fā)的項(xiàng)目龄恋,我該如何下手疙驾??郭毕?我又改怎么去修改它碎?看著一大堆不懂得方法和屬性已經(jīng)是懵了。如果你想把代碼完全搞懂显押,那恐怕你需要好久(是你想不到的時(shí)間和付出)扳肛。所以開始進(jìn)入一個項(xiàng)目,特別是已經(jīng)做了很多年的項(xiàng)目乘碑,一開始你只要摸清楚項(xiàng)目的整體架構(gòu)和風(fēng)格就好了挖息。
在我有限的經(jīng)驗(yàn)里面,通常進(jìn)入一個老的項(xiàng)目是從改 bug 和界面改造開始的兽肤。然后慢慢的就熟悉了項(xiàng)目一些大體的設(shè)計(jì)套腹,以及編程風(fēng)格。
以下個人習(xí)慣僅供參考:
1.首先應(yīng)該瀏覽項(xiàng)目的目錄結(jié)構(gòu)(了解編程風(fēng)格)资铡,熟悉項(xiàng)目文件組織的習(xí)慣和項(xiàng)目的一些配置文件电禀,以及定義的宏,了解設(shè)計(jì)模式笤休,比如是mvc ?還是mvvm....尖飞。
2.找到 delegate 看 app 怎么完成初始化的,看看做了哪些 SDK 的配置順著 root vc 走下去看幾個常見界面的 vc宛官,搞清楚項(xiàng)目使用的設(shè)計(jì)模式
3.搞清楚項(xiàng)目在幾個常見組件上面的解決方案葫松,比如網(wǎng)絡(luò)請求、數(shù)據(jù)存儲底洗、圖片緩存 等等
3.看看項(xiàng)目用了哪些三方的庫腋么,比如 AF 和 sdweb ?等等 這種常見的類庫
4.看看項(xiàng)目有哪些約定俗成的東西,比如一些常用的工具類和擴(kuò)展方法
5.看看編譯腳本搞了些什么亥揖,以及在公司是如何集成編譯的
6.看看項(xiàng)目有沒有哪些地方有潛在的坑珊擂,比如做了 swizzling 的地方