淺談iOS架構的技能棧

前言

這里筑夢師,是一名正在努力學習的iOS開發(fā)工程師,目前致力于全棧方向的學習,希望可以和大家一起交流技術,共同進步,用簡書記錄下自己的學習歷程.

個人學習方法分享
iOS開發(fā)學習路線
淺談iOS進階路線

本文閱讀建議
1.一定要辯證的看待本文.
2.本文僅代表個人片面觀點,如有不同觀點,還往及時指出.
3.本文只闡述學習路線和學習當中的重點問題.需要讀者自己使用百度進行拓展學習.
4.本文所表達觀點并不是最終觀點,還會更新,因為本人還在學習過程中,有什么遺漏或錯誤還望各位指出.
5.覺得哪里不妥請在評論留下建議~
6.覺得還行的話就點個小心心鼓勵下我吧~

目錄
1.技能棧路線
2.iOS架構說
3.大、中、小公司的區(qū)別
4.架構師思想

為什么我又會開一篇文章,而且又是大致一樣的標題,因為我覺得這是不同層面的問題,不同層面的文章,上一篇可以說是我掌握的一些知識的分享,而這篇章完全是在閱讀了APP架構師實踐指南這本書有感而發(fā)的.

上篇文章只是單純自己想要提升自己的一個路線總結,而當我看到這本書以后,它徹底改變了我對iOS開發(fā)的看法,我突然發(fā)現(xiàn)有很多我本該掌握必備的技術棧,我并不會,甚至很是陌生,深感自己還有許多東西要進行學習.

這篇文章單純的技術交流篇,本人深感自己水平尚且不夠,還需長時間的努力學習,希望本文可以對各個iOS開發(fā)工程師有所幫助,迅速找到自己的定位和不足,及時提升自己.


推薦書籍

本文推薦書籍,均參考于APP架構師實踐指南一文.

架構之美
人月神話
精益創(chuàng)業(yè)實戰(zhàn)
架構師技能矩陣
軟件架構設計
Swifter:100個Swift開發(fā)必備Tip
Java8新特性
Java動態(tài)代理機制分析及擴展

技能棧路線

語言語法

Objective-C
Swift

工具使用

IDE
編譯調(diào)試
版本管理
產(chǎn)品設計
SDK使用

常用模塊

基礎組件
常用業(yè)務模塊
編譯打包
版本適配
第三方SDK
網(wǎng)絡庫加密

安全逆向

逆向分析
安全測試
安全建議

混淆簽名
加固加殼
安全編碼

性能優(yōu)化

硬件性能
UI和CPU
內(nèi)存性能
網(wǎng)絡性能
包Size
啟動速度
代碼優(yōu)化

架構和重構

組件化和模塊化
UML基本功
設計模式
接口設計
架構模式選型
重構

質(zhì)量和穩(wěn)定

質(zhì)量穩(wěn)定性指標
CI和代碼監(jiān)控
Crash
測試

兼容性測試
自動化測試
性能安全測試
A/B Testing
代碼覆蓋率

上述架構路線從書上整理下來,方便各位查閱學習.

為了不對原書作者造成侵權,每個技能棧我都將以自己的理解進行描述,強烈建議各位讀者購買這本APP架構師實踐指南明確自己的定位,提升自己的思想,感受不一樣的iOS開發(fā)觀念.


自我定位

其實并不是因為看了APP架構師這本書以后,你就成為一個iOS架構師了,而是重點去學習它的觀念,一個架構的觀念.

本書第一章就可以確認自己定位,而僅僅只有7頁.就可以讓我受益匪淺,直接看清自己的不足,和所不會的技能棧.


基礎語法

如果你只會一門編程語言,無論多么精通,仍然顯得不夠優(yōu)秀

確實,即便你只精通一門編程語言,也要進行各種語言的了解,不能因為自己不從事相關的工作,就不進行了解學習,干坐井底之蛙.

例如Swift 和Java的區(qū)別和新特性,即便市面上普遍都是OC,但你至少要做到,和別人提及Swift語言,熟悉不陌生.

不同的語言雖然語法不同,但是其邏輯思想是通用的,也就是說,學會一門語言,再學習另一門語言就比較容易.從而快速提升自己.

關鍵詞:編程范式,反射、注解、泛型


APP開發(fā)工具系列

  • 編譯工具
  • 編譯調(diào)試
  • 版本管理

產(chǎn)品設計

  • 生命周期
  • UI設計
  • 存儲和網(wǎng)絡

常用模塊

常用模塊則是平常在快速搭建和開發(fā)App當中,會調(diào)用一些自己或別人歷史的積累和經(jīng)驗總結而成的第三方庫或者工具庫.

關鍵詞:圖片庫,網(wǎng)絡庫,啟動引導模塊,登錄注冊模塊,運營統(tǒng)計模塊, 編譯打包,版本適配.

組件化、模塊化、插件化

模塊:強調(diào)職責,可實現(xiàn)的單元,其核心是內(nèi)聚和分離

組件:也稱構件,強調(diào)復用.其依賴性比較高.

可以百度進行學習iOS開發(fā) 組件化,iOS開發(fā) 模塊化.

插件化則是另一種實現(xiàn)方式,其三種方式目的均是為了實現(xiàn)重用和解耦,而插件化則是更注重增量滿足其目的.

設計模式、接口設計、架構模式

設計模式是指,在實現(xiàn)業(yè)務邏輯時,代碼邏輯的目標和實現(xiàn)模式,例如:MVP,MVVM,MVC等.

接口設計的概念卻是主要體現(xiàn)在封裝的概念上,一個強大的庫,其封裝的接口越靈活,越成熟.

架構模式本人尚未參透,理解當中,還希望各位移步百度進行學習.

這三點,可謂是架構的重中之重,一個項目代碼是否高效,是否成熟,都和這三個有著密不可分的關系.

推薦書籍:

設計模式精解-GOF23種設計模式機械
設計模式:可復用面向對象軟件的基礎
大話設計模式

重構

重構分為兩種:代碼重構和架構重構,大家可以參考重構:改善既有代碼的設計進行學習.


代碼質(zhì)量、性能優(yōu)化、安全逆向

目前個人還在學習當中,就不在此為各位同行們班門弄斧,推薦作者書中推薦的一些好的書籍給大家進行學習.

推薦書籍:

iOS測試指南
大話App測試2.0
FaceBook iOS啟動時優(yōu)化
25 iOS App Performance Tips & Tricks.
逆向工程核心原理
iOS應用安全工方實戰(zhàn)
iOS應用逆向工程
iOS安全攻防(二十三):Objective-C代碼混淆
iOS簽名原理

iOS架構說

既然說到iOS開發(fā)架構,不得不再次提及Casa大的文章iOS架構談.

這篇文章屬實說,對我個人收益很大,他讓我養(yǎng)成了良好的代碼習慣,和架構目錄,在不同階段看都能在該文章學到不一樣的知識.

iOS架構,說遠不遠,有些iOS開發(fā)工程師,包括外包,產(chǎn)品,可能每天的任務都是一樣,經(jīng)理提出需求->完成需求.但小型公司,要求不嚴,需要極速開發(fā)App的那種甚至根本不會注重什么開發(fā)細節(jié).

即便你學習iOS架構,也在當前的工作沒有用武之地,也正如大家經(jīng)常說的"學他干嘛,工作中又用不到".

架構是一個成熟的概念,是每一個開發(fā)工程師都可以進行學習,提升自己的一條路徑,我不知道怎么說,怎么形容,會讓那些覺得無所謂的同僚們進行學習.

我之前并沒有怎么寫過文章,總覺得怎么寫都不能同時兼顧努力學習的程序員和程序員勸退師,總覺得和那些人格格不入,又無法改變他們的觀點,索性,還是盡自己努力,幫一些努力學習的程序員,共同進步吧.


大、中、小型公司的區(qū)別

你會發(fā)現(xiàn),隨著你就業(yè)的公司規(guī)模變化,你進入的公司越大越知名,其公司內(nèi)部的規(guī)范,要求,架構都會越來越成熟,邏輯性更明確,業(yè)務邏輯針對性更強.

其開發(fā)周期固定,效率和業(yè)務產(chǎn)出也都各不相同,但自己是否能夠真正適應其本身的工作強度,值得令人深思.

大公司的開發(fā)模式,和其內(nèi)部的代碼文化都是能夠讓程序員快速成長不可或缺的一部分.

就比如說我,讓我現(xiàn)在進入一家大公司就業(yè),我可能完全是個小白,什么是工程化,什么是加密,分布式存儲又是什么,異步處理高并發(fā)等等.

大型公司的架構模式,組件化,模塊化,團隊開發(fā)模式,迭代策略,一直都是我想學習的東西,所以我要努力學習,盡量讓自己配的上可以在大公司工作的機會.

如果自己不努力,即便這個機會擺在你的面前,恰巧你又面試進了大公司,你都會因為實力不足失去這份工作.

不要安于現(xiàn)狀,根本不會有上面的恰巧,每一個面試進BAT大公司的人都不是碰巧面試進去,而是精心準備的必然結果.

有機會,我一定要去大公司工作進行學習.


架構師思想

加入過一些群,交流過想法,很多人都調(diào)侃自己是碼農(nóng),另一個便是架構師的角色,我個人覺得從碼農(nóng)轉變?yōu)榧軜嫀?就是從用語言到理解語言、拓展語言的一個思想轉變.

如果你只是單純的使用語言完成業(yè)務需求,只思考自己的業(yè)務棧,那便是碼農(nóng).但如果你去思考,怎么用,為什么用,怎么組合更好,那便是架構師思想了.以整個項目的開發(fā)觀念去看待自己個人的業(yè)務邏輯如何實現(xiàn),怎么實現(xiàn)更高效,那么你就正在向架構師轉變.

很多人都說過我,想的真多,你這都是虛的.你終究是碼農(nóng).我不予評論,我心里只想默默努力,提升自己的水平,完成自己的轉換過程.

你是否有想過,你到底是在開發(fā)一款應用,還是在像一名流水線員工搬運代碼,完成績效?


總結

本文是讀APP架構師一書有感而發(fā),其本意希望各位同行的iOS開發(fā)工程師,一起學習共同進步.如果有什么錯誤,還請及時指出,我會及時修改.謝謝

結束語

如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點個喜歡鼓勵我哦.
如果您想和我一起學習,請毫不吝嗇的私信我吧~
介個是我的個人博客,歡迎參觀哦~

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