1、 基礎設施
程序最基本的處理就是數據IO以及為了并行計算所做的操作,它們通常會(huì )作為程序的底層框架,供上層使用。
2 、交互
從PC到現在的移動(dòng)設備還有VR,人機交互中的輸入設備在不斷自然化,可是展示界面的元素仍然還是這幾種:靜態(tài)文本、按鈕、列表、輸入框、選擇菜單、進(jìn)度提示、滾動(dòng)條、標簽頁(yè)。每種UI框架都提供這些基本組件,可以說(shuō)掌握它們就等于對這個(gè)框架入門(mén)了。高級的交互會(huì )跨越窗口、跨越程序,并能更智能化地響應輸入。
3 、硬件設備
PC上的硬件大都需要通過(guò)統一的接口來(lái)操作,開(kāi)發(fā)者需要做好繁復的參數設置才能正確使用。移動(dòng)系統則對很多硬件做了封裝,為開(kāi)發(fā)者提供定制的簡(jiǎn)單API。有時(shí)候開(kāi)發(fā)者并不需要直接操控硬件,但需要獲取硬件的信息,根據可用的資源數來(lái)執行不同的策略。
4、 程序設計
現在的程序流行快速迭代,沒(méi)過(guò)幾天就發(fā)布一個(gè)新版本。新的app還要越快上線(xiàn)越好,盡早占據制高點(diǎn)。如此匆忙的節奏,讓傳統軟件的架構設計退居二線(xiàn),程序往往都是技術(shù)債務(wù)多到影響開(kāi)發(fā)速度或新功能才執行大的重構優(yōu)化。不過(guò)我們至少可以提前根據功能分出一些模塊,讓后面的重構稍微輕松些。
5 、后勤
如果說(shuō)需求開(kāi)發(fā)是前線(xiàn),那么產(chǎn)品經(jīng)理無(wú)暇關(guān)心的東西都算后勤了。這部分工作需要技術(shù)經(jīng)理主導來(lái)開(kāi)展。對程序員來(lái)說(shuō)這部分工作可能沒(méi)那么刺激,但卻是深入學(xué)習系統和各種工具原理的好機會(huì )。
客戶(hù)端開(kāi)發(fā)有界面,能圖形化反饋編程結果,所以比服務(wù)器端開(kāi)發(fā)更“刺激”一些。因為和操作系統緊密結合,知識具有針對性,所以即使是做UI也比做前端的難度大些。
現在做移動(dòng)開(kāi)發(fā)其實(shí)和當年做Windows程序沒(méi)有差別,只是系統比較新且更新快,文檔多數是英文的,又少有中文圖書(shū)積累,所以門(mén)檻稍高。再過(guò)幾年當供過(guò)于求,應該會(huì )回歸編程平臺這一基礎屬性,不再帶有什么光環(huán)。
客戶(hù)端開(kāi)發(fā)的盡頭就是熟悉了所有的API。然而API在演變,還得繼續跟隨。Windows的API多到?jīng)]人能完全記住或用過(guò),但三年前的iOS是可以的,現在也不行了,蘋(píng)果在不斷地添加??碅ndroid,到現在已經(jīng)演化了24個(gè)版本,很難去跟蹤了。
無(wú)論哪種系統,不斷有API被標記為Deprecated,也有部分在新操作系統上不可用,需要在代碼里判斷操作系統版本或SDK的版本。這些歷史,對新手來(lái)說(shuō)直接就是不知道。隨著(zhù)人員也跟著(zhù)更新?lián)Q代,更多人就忘了,于是文檔成了這種混亂的救命稻草,會(huì )查文檔真的非常重要。
如果讓我編制一個(gè)學(xué)習路徑,應該是這樣的:
- UI框架,學(xué)會(huì )查SDK文檔,掌握文檔的整體結構
- 網(wǎng)絡(luò )、磁盤(pán)等IO