前言 這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡書記錄下自己的學(xué)習(xí)歷程.
本文閱讀建議 1.一定要辯證的看待本文. 2.本文僅代表個人片面觀點,如有不同觀點,還往及時指出. 3.本文只闡述學(xué)習(xí)路線和學(xué)習(xí)當(dāng)中的重點問題.需要讀者自己使用百度進(jìn)行拓展學(xué)習(xí). 4.本文所表達(dá)觀點并不是最終觀點,還會更新,因為本人還在學(xué)習(xí)過程中,有什么遺漏或錯誤還望各位指出. 5.覺得哪里不妥請在評論留下建議~ 6.覺得還行的話就點個小心心鼓勵下我吧~
為什么我又會開一篇文章,而且又是大致一樣的標(biāo)題,因為我覺得這是不同層面的問題,不同層面的文章,上一篇可以說是我掌握的一些知識的分享,而這篇章完全是在閱讀了APP架構(gòu)師實踐指南這本書有感而發(fā)的. 上篇文章只是單純自己想要提升自己的一個路線總結(jié),而當(dāng)我看到這本書以后,它徹底改變了我對iOS開發(fā)的看法,我突然發(fā)現(xiàn)有很多我本該掌握必備的技術(shù)棧,我并不會,甚至很是陌生,深感自己還有許多東西要進(jìn)行學(xué)習(xí). 這篇文章單純的技術(shù)交流篇,本人深感自己水平尚且不夠,還需長時間的努力學(xué)習(xí),希望本文可以對各個iOS開發(fā)工程師有所幫助,迅速找到自己的定位和不足,及時提升自己. 推薦書籍 本文推薦書籍,均參考于APP架構(gòu)師實踐指南一文.
技能棧路線 語言語法 Objective-C Swift 工具使用 IDE 編譯調(diào)試 版本管理 產(chǎn)品設(shè)計 SDK使用 常用模塊 基礎(chǔ)組件 常用業(yè)務(wù)模塊 編譯打包 版本適配 第三方SDK 網(wǎng)絡(luò)庫加密 安全逆向 逆向分析 安全測試 安全建議
性能優(yōu)化 硬件性能 UI和CPU 內(nèi)存性能 網(wǎng)絡(luò)性能 包Size 啟動速度 代碼優(yōu)化 架構(gòu)和重構(gòu) 組件化和模塊化 UML基本功 設(shè)計模式 接口設(shè)計 架構(gòu)模式選型 重構(gòu) 質(zhì)量和穩(wěn)定 質(zhì)量穩(wěn)定性指標(biāo) CI和代碼監(jiān)控 Crash 測試
上述架構(gòu)路線從書上整理下來,方便各位查閱學(xué)習(xí). 為了不對原書作者造成侵權(quán),每個技能棧我都將以自己的理解進(jìn)行描述,強(qiáng)烈建議各位讀者購買這本APP架構(gòu)師實踐指南明確自己的定位,提升自己的思想,感受不一樣的iOS開發(fā)觀念. 自我定位 其實并不是因為看了APP架構(gòu)師這本書以后,你就成為一個iOS架構(gòu)師了,而是重點去學(xué)習(xí)它的觀念,一個架構(gòu)的觀念. 本書第一章就可以確認(rèn)自己定位,而僅僅只有7頁.就可以讓我受益匪淺,直接看清自己的不足,和所不會的技能棧. 基礎(chǔ)語法 如果你只會一門編程語言,無論多么精通,仍然顯得不夠優(yōu)秀 確實,即便你只精通一門編程語言,也要進(jìn)行各種語言的了解,不能因為自己不從事相關(guān)的工作,就不進(jìn)行了解學(xué)習(xí),干坐井底之蛙. 例如Swift 和Java的區(qū)別和新特性,即便市面上普遍都是OC,但你至少要做到,和別人提及Swift語言,熟悉不陌生. 不同的語言雖然語法不同,但是其邏輯思想是通用的,也就是說,學(xué)會一門語言,再學(xué)習(xí)另一門語言就比較容易.從而快速提升自己. 關(guān)鍵詞:編程范式,反射、注解、泛型 APP開發(fā)工具系列
產(chǎn)品設(shè)計
常用模塊 常用模塊則是平常在快速搭建和開發(fā)App當(dāng)中,會調(diào)用一些自己或別人歷史的積累和經(jīng)驗總結(jié)而成的第三方庫或者工具庫. 關(guān)鍵詞:圖片庫,網(wǎng)絡(luò)庫,啟動引導(dǎo)模塊,登錄注冊模塊,運營統(tǒng)計模塊, 編譯打包,版本適配. 組件化、模塊化、插件化 模塊:強(qiáng)調(diào)職責(zé),可實現(xiàn)的單元,其核心是內(nèi)聚和分離 組件:也稱構(gòu)件,強(qiáng)調(diào)復(fù)用.其依賴性比較高. 可以百度進(jìn)行學(xué)習(xí)iOS開發(fā) 組件化,iOS開發(fā) 模塊化. 插件化則是另一種實現(xiàn)方式,其三種方式目的均是為了實現(xiàn)重用和解耦,而插件化則是更注重增量滿足其目的. 設(shè)計模式、接口設(shè)計、架構(gòu)模式 設(shè)計模式是指,在實現(xiàn)業(yè)務(wù)邏輯時,代碼邏輯的目標(biāo)和實現(xiàn)模式,例如:MVP,MVVM,MVC等. 接口設(shè)計的概念卻是主要體現(xiàn)在封裝的概念上,一個強(qiáng)大的庫,其封裝的接口越靈活,越成熟. 架構(gòu)模式本人尚未參透,理解當(dāng)中,還希望各位移步百度進(jìn)行學(xué)習(xí). 這三點,可謂是架構(gòu)的重中之重,一個項目代碼是否高效,是否成熟,都和這三個有著密不可分的關(guān)系. 推薦書籍:
重構(gòu) 重構(gòu)分為兩種:代碼重構(gòu)和架構(gòu)重構(gòu),大家可以參考重構(gòu):改善既有代碼的設(shè)計進(jìn)行學(xué)習(xí). 代碼質(zhì)量、性能優(yōu)化、安全逆向 目前個人還在學(xué)習(xí)當(dāng)中,就不在此為各位同行們班門弄斧,推薦作者書中推薦的一些好的書籍給大家進(jìn)行學(xué)習(xí). 推薦書籍:
iOS架構(gòu)說 既然說到iOS開發(fā)架構(gòu),不得不再次提及Casa大的文章iOS架構(gòu)談. 這篇文章屬實說,對我個人收益很大,他讓我養(yǎng)成了良好的代碼習(xí)慣,和架構(gòu)目錄,在不同階段看都能在該文章學(xué)到不一樣的知識. iOS架構(gòu),說遠(yuǎn)不遠(yuǎn),有些iOS開發(fā)工程師,包括外包,產(chǎn)品,可能每天的任務(wù)都是一樣,經(jīng)理提出需求->完成需求.但小型公司,要求不嚴(yán),需要極速開發(fā)App的那種甚至根本不會注重什么開發(fā)細(xì)節(jié). 即便你學(xué)習(xí)iOS架構(gòu),也在當(dāng)前的工作沒有用武之地,也正如大家經(jīng)常說的'學(xué)他干嘛,工作中又用不到'. 架構(gòu)是一個成熟的概念,是每一個開發(fā)工程師都可以進(jìn)行學(xué)習(xí),提升自己的一條路徑,我不知道怎么說,怎么形容,會讓那些覺得無所謂的同僚們進(jìn)行學(xué)習(xí). 我之前并沒有怎么寫過文章,總覺得怎么寫都不能同時兼顧努力學(xué)習(xí)的程序員和程序員勸退師,總覺得和那些人格格不入,又無法改變他們的觀點,索性,還是盡自己努力,幫一些努力學(xué)習(xí)的程序員,共同進(jìn)步吧. 大、中、小型公司的區(qū)別 你會發(fā)現(xiàn),隨著你就業(yè)的公司規(guī)模變化,你進(jìn)入的公司越大越知名,其公司內(nèi)部的規(guī)范,要求,架構(gòu)都會越來越成熟,邏輯性更明確,業(yè)務(wù)邏輯針對性更強(qiáng). 其開發(fā)周期固定,效率和業(yè)務(wù)產(chǎn)出也都各不相同,但自己是否能夠真正適應(yīng)其本身的工作強(qiáng)度,值得令人深思. 大公司的開發(fā)模式,和其內(nèi)部的代碼文化都是能夠讓程序員快速成長不可或缺的一部分. 就比如說我,讓我現(xiàn)在進(jìn)入一家大公司就業(yè),我可能完全是個小白,什么是工程化,什么是加密,分布式存儲又是什么,異步處理高并發(fā)等等. 大型公司的架構(gòu)模式,組件化,模塊化,團(tuán)隊開發(fā)模式,迭代策略,一直都是我想學(xué)習(xí)的東西,所以我要努力學(xué)習(xí),盡量讓自己配的上可以在大公司工作的機(jī)會. 如果自己不努力,即便這個機(jī)會擺在你的面前,恰巧你又面試進(jìn)了大公司,你都會因為實力不足失去這份工作. 不要安于現(xiàn)狀,根本不會有上面的恰巧,每一個面試進(jìn)BAT大公司的人都不是碰巧面試進(jìn)去,而是精心準(zhǔn)備的必然結(jié)果. 有機(jī)會,我一定要去大公司工作進(jìn)行學(xué)習(xí). 架構(gòu)師思想 加入過一些群,交流過想法,很多人都調(diào)侃自己是碼農(nóng),另一個便是架構(gòu)師的角色,我個人覺得從碼農(nóng)轉(zhuǎn)變?yōu)榧軜?gòu)師,就是從用語言到理解語言、拓展語言的一個思想轉(zhuǎn)變. 如果你只是單純的使用語言完成業(yè)務(wù)需求,只思考自己的業(yè)務(wù)棧,那便是碼農(nóng).但如果你去思考,怎么用,為什么用,怎么組合更好,那便是架構(gòu)師思想了.以整個項目的開發(fā)觀念去看待自己個人的業(yè)務(wù)邏輯如何實現(xiàn),怎么實現(xiàn)更高效,那么你就正在向架構(gòu)師轉(zhuǎn)變. 很多人都說過我,想的真多,你這都是虛的.你終究是碼農(nóng).我不予評論,我心里只想默默努力,提升自己的水平,完成自己的轉(zhuǎn)換過程. 你是否有想過,你到底是在開發(fā)一款應(yīng)用,還是在像一名流水線員工搬運代碼,完成績效? 總結(jié) 本文是讀APP架構(gòu)師一書有感而發(fā),其本意希望各位同行的iOS開發(fā)工程師,一起學(xué)習(xí)共同進(jìn)步.如果有什么錯誤,還請及時指出,我會及時修改.謝謝 結(jié)束語 如果您對這篇文章有什么意見或者建議,請評論與我討論. 如果您覺得還不錯的話~可以點個喜歡鼓勵我哦. 如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~ 介個是我的個人博客,歡迎參觀哦~ 作者:筑夢師Winston |
|