作者:臧其龍鏈接:http://www.zhihu.com/question/33268551/answer/56377034來源:知乎著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)缘揪,非商業(yè)轉(zhuǎn)載請注明出處。這個問題真的想要講清楚至少也得幾千字.試著講一講.iOS開發(fā)可以分為這么幾大類.1.UI的實現(xiàn)2.網(wǎng)絡(luò),本地策略(包括緩存,持久化,ORM等等)3.架構(gòu)層面的設(shè)計然后其他都是虛的.包括我很擅長的交互.因為設(shè)計優(yōu)美,交互華麗的app只存在于app完全不以盈利為目的的公司中,例如,國家地理雜志.所以我們需要抽絲剝繭,看看到底什么才是一個iOS開發(fā)的內(nèi)核.我總結(jié)為以下三點.
1.對于設(shè)計的快速實現(xiàn)和實現(xiàn)質(zhì)量的把控.
2.對于圍繞model的一系列的有關(guān)業(yè)務(wù)邏輯reaction的設(shè)計.model層的核心就是bind.
3.對于后續(xù)版本迭代的架構(gòu)上的思考..這才是核心,其他都只是奇巧淫技而已.
1.UI層面技能的掌握很簡單,就是模仿.模仿各種各樣的app,從基礎(chǔ)的控件,到一些常見的輪子,再到復(fù)雜的動畫.只有模仿優(yōu)秀app的設(shè)計才能熟門熟路的開發(fā)各種界面义桂。沒什么別的方法.但是UI層面是比較容易掌握的技術(shù),熟手和新手的區(qū)別就是實現(xiàn)的速度和質(zhì)量.我們的眼光需要更高一點.
2.圍繞model層的設(shè)計.寫client,代碼一般就是東一錘子,西一榔頭.因為實現(xiàn)業(yè)務(wù)邏輯的主要方法就是判斷,你的代碼充斥著if和else.更關(guān)鍵的是同樣一個條件,可能因為場景的不同,會牽扯到其他類的其他條件.這就是所謂的耦合.出bug的一般場景是什么?需要的效果和真正的效果不符合->找到邏輯A->check,發(fā)現(xiàn)邏輯A沒有問題,問題在邏輯A里的邏輯B -> 去邏輯B里找, ->.....就算你本著一個function只實現(xiàn)一個功能等等設(shè)計原則,這種情況你也是無法完全避免的.所以我建議大家去學(xué)習(xí)RAC.
3.架構(gòu)層面的設(shè)計這個東西和上面最不同的一點就是你只能找人帶,你自己瞎琢磨只能琢磨出錯的東西.但是有一個東西可以開開眼界.
叫做YapDatabase.對自己有要求的開發(fā)可以去看看實現(xiàn).相信會有幫助.
說了這么多,其實然并卵.懂得多不如寫得多.就這樣.