iOS 開(kāi)發(fā)技術(shù)棧與進(jìn)階

iOS開(kāi)發(fā)技術(shù)棧及相應(yīng)資料總結(jié)

iOS技術(shù)棧

這里按我的理解給 iOS 相關(guān)技術(shù)分個(gè)類(lèi),以工程實(shí)現(xiàn)的角度,分成了基礎(chǔ)、需求、效率、質(zhì)量四個(gè)類(lèi)別。基礎(chǔ)指程序開(kāi)發(fā)和 iOS 開(kāi)發(fā)的基礎(chǔ)知識(shí)和技能,需求就是產(chǎn)品的需求,有了基礎(chǔ)技能,實(shí)現(xiàn)了產(chǎn)品需求后,剩下的事情就都是為了提高項(xiàng)目質(zhì)量和提升開(kāi)發(fā)效率。
大致的思維導(dǎo)圖

iOS技術(shù)棧.png

基礎(chǔ)

基礎(chǔ)包括語(yǔ)言、框架、內(nèi)存、網(wǎng)絡(luò)、存儲(chǔ)、渲染、線(xiàn)程。

語(yǔ)言目前 iOS 開(kāi)發(fā)就是 OC 和 Swift,國(guó)內(nèi)仍以 OC 為主,對(duì)于 OC 除了語(yǔ)法外,最好了解它的對(duì)象模型,動(dòng)態(tài)機(jī)制等特性。Swift 方面若要在團(tuán)隊(duì)里使用,目前還是風(fēng)險(xiǎn)大收益小的,但個(gè)人最好保持對(duì)它的關(guān)注。

  • 語(yǔ)言
    • 對(duì)象模型

    • 動(dòng)態(tài)機(jī)制

  • 內(nèi)存
  • 網(wǎng)絡(luò)
  • 存儲(chǔ)
  • 渲染
  • 線(xiàn)程

需求

  • 普通需求
  • 特殊需求
  • 運(yùn)營(yíng)需求

質(zhì)量

效率

進(jìn)階

在實(shí)踐中學(xué)習(xí),具體來(lái)說(shuō)就是在平時(shí)開(kāi)發(fā)過(guò)程中不斷地發(fā)現(xiàn)問(wèn)題 -> 解決問(wèn)題。

  • 發(fā)現(xiàn)問(wèn)題
    首先你最好處在一個(gè)有很多工程上的問(wèn)題急需解決的環(huán)境里,這樣發(fā)現(xiàn)問(wèn)題就很容易,最好的是處于這幾類(lèi)項(xiàng)目里:
  • 處于高速發(fā)展期的項(xiàng)目。增長(zhǎng)會(huì)帶來(lái)很多問(wèn)題,一切又未成熟,解決這些問(wèn)題是非常自然又有價(jià)值的。
  • 龐大的項(xiàng)目,超級(jí)APP會(huì)帶來(lái)很多中小型APP沒(méi)有遇到過(guò)的問(wèn)題,又因?yàn)轶w量大,就算只有千分之一的人遇到也會(huì)影響幾十萬(wàn)人,很有解決的價(jià)值,會(huì)有很多細(xì)致的問(wèn)題。
  • 像上面提到的有“特殊需求”一類(lèi)的項(xiàng)目,需要在一個(gè)領(lǐng)域里深入研究,也會(huì)自然碰到很多問(wèn)題。

如果恰巧沒(méi)有在這三種類(lèi)型的項(xiàng)目里,也沒(méi)關(guān)系,只要是健康發(fā)展的項(xiàng)目,總會(huì)存在問(wèn)題和優(yōu)化空間,只是要培養(yǎng)發(fā)現(xiàn)問(wèn)題的意識(shí),很多時(shí)候問(wèn)題就在那里,但沒(méi)人發(fā)現(xiàn)它,沒(méi)人覺(jué)得它可以/應(yīng)該解決??梢园瓷鲜隽械狞c(diǎn),在相關(guān)點(diǎn)上多問(wèn)自己能不能提高效率和質(zhì)量,例如能不能提高前后臺(tái)聯(lián)調(diào)效率,重復(fù)寫(xiě)的代碼能不能自動(dòng)生成,啟動(dòng)耗時(shí)能不能短一點(diǎn),線(xiàn)上問(wèn)題發(fā)現(xiàn)和排查的效率能不能提高等等。各種問(wèn)題會(huì)涵蓋上述提到的所有知識(shí)點(diǎn)。
如果不幸你的項(xiàng)目沒(méi)有健康發(fā)展,實(shí)在沒(méi)碰到什么問(wèn)題或者問(wèn)題不值得解決,或者你還沒(méi)畢業(yè),那這里還有一個(gè)萬(wàn)能問(wèn)題可供參考:那些知名的開(kāi)源項(xiàng)目具體是怎樣實(shí)現(xiàn)的?剖析開(kāi)源項(xiàng)目源碼可以學(xué)到很多東西,各種各樣的開(kāi)源項(xiàng)目也覆蓋了很多知識(shí)面,只要深入去研究它們,學(xué)習(xí)它的架構(gòu)和編碼,不懂的地方再去補(bǔ)齊知識(shí),也是個(gè)很好的學(xué)習(xí)方式,如果學(xué)習(xí)后能輸出文章效果會(huì)更好,相當(dāng)于動(dòng)手實(shí)踐了。

  • 解決問(wèn)題
    不同的解決問(wèn)題的方式差別很大,有一些常見(jiàn)的套路可供參考:

  • 業(yè)界是怎樣解決這個(gè)問(wèn)題的?他們的方案有什么不足?我怎樣可以做得更好?
    業(yè)界有各種各樣的開(kāi)源庫(kù)和技術(shù)分享,只要問(wèn)題不是太偏門(mén),大多會(huì)有人已經(jīng)提出解決方案,多對(duì)比和研究這些已有的方案,看它們是否能滿(mǎn)足需求,找出它們的優(yōu)點(diǎn)和不足,看看能不能做得比它們更好或更適合解決碰到的問(wèn)題。

  • 解決方案能否通用化,封裝成開(kāi)源庫(kù)供其他項(xiàng)目使用?
    開(kāi)源項(xiàng)目都是這樣來(lái)的,如果遇到一個(gè)別人沒(méi)解決好的問(wèn)題,別錯(cuò)過(guò)封裝成開(kāi)源庫(kù)造福社會(huì)。

  • 有沒(méi)有辦法防止以后出現(xiàn)類(lèi)似的問(wèn)題?
    有些問(wèn)題可能會(huì)反復(fù)出現(xiàn),能不能防止,或者能不能在出現(xiàn)問(wèn)題的時(shí)候能及時(shí)發(fā)現(xiàn)和修復(fù),這可能涉及到開(kāi)發(fā)流程、自動(dòng)化和監(jiān)控體系等方面的完善。

  • 總結(jié)沉淀
    能不能總結(jié)出解決這類(lèi)問(wèn)題的方法論(套路)?最好能輸出文章或分享,寫(xiě)的過(guò)程是很好的學(xué)習(xí)過(guò)程,因?yàn)橐言灸:南敕ǘ记逦乇磉_(dá)出來(lái),迫使自己去整理思路。

總結(jié)

這里按我的理解列了 iOS 相關(guān)技術(shù)點(diǎn),以及在實(shí)踐中提升能力的一點(diǎn)小建議,可能無(wú)法各方面都覆蓋到,只是作為一個(gè)參考。另外這里只局限在 iOS 開(kāi)發(fā)上,實(shí)際上作為程序員不應(yīng)該限制自己學(xué)習(xí)的范圍,有時(shí)間多去了解后端/前端/運(yùn)維也會(huì)很有利于自身開(kāi)發(fā)能力的提高。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容