移動互聯(lián)時(shí)代,很多企業(yè)或者個(gè)人都想要一個(gè)能屬于自己掌控的APP平臺,進(jìn)行產(chǎn)品銷售或者信息交流。據(jù)此,深圳APP開發(fā)公司結(jié)合多年經(jīng)驗(yàn),就如何制作APP后臺管理端,幫助網(wǎng)友理清App后臺和傳統(tǒng)網(wǎng)站后端的區(qū)別,幫助開發(fā)者進(jìn)行技術(shù)選型,并描述企業(yè)中App開發(fā)的整體流程,使開發(fā)者能對App后臺的工作有初步的認(rèn)識。
1.1 App后臺的功能App后臺,也稱為App后端,稱呼不一樣,但指的是同一個(gè)東西。博納網(wǎng)絡(luò)一直都以為App后臺的功能不用解釋,但在網(wǎng)絡(luò)上,準(zhǔn)備用App創(chuàng)業(yè)的網(wǎng)友(是從傳統(tǒng)行業(yè)過來的)問過這個(gè)問題,博納網(wǎng)絡(luò)就以App后臺的兩個(gè)主要功能簡單地介紹一下。注意:App后臺沒有明確的定義,所涉及的范圍也廣,所以博納網(wǎng)絡(luò)解釋的時(shí)候只選取App后臺的兩個(gè)主要的功能解析。為了保證通俗易懂,相關(guān)的概念會犧牲一定程度的準(zhǔn)確性。如果已經(jīng)了解App后臺功能的網(wǎng)友,可跳過本節(jié)。
場景一:用戶a平時(shí)喜歡用音樂App聽歌,音樂App保存了他平時(shí)最喜歡聽的歌曲列表。如果歌曲列表只保存在手機(jī)上,萬一其手機(jī)被盜,就算買了一部新的手機(jī)回來,那歌曲列表也會丟失。為了解決這個(gè)問題,其中一個(gè)辦法就是音樂App把歌曲列表的數(shù)據(jù)放在遠(yuǎn)處的一臺機(jī)器上,當(dāng)用戶a買了新手機(jī)后,把放在遠(yuǎn)處的機(jī)器上的歌曲列表重新下載到音樂App上就行。
場景二:相信很多網(wǎng)友都有寄快遞的經(jīng)歷。假設(shè)有兩個(gè)用戶a和b,當(dāng)a向b寄一樣?xùn)|西的時(shí)候,會找快遞員,把東西寄給b。用戶a查看物流可以看到類似這樣的描述“到達(dá)xx中轉(zhuǎn)站”。通過中轉(zhuǎn)站,東西就到達(dá)b的手上。兩個(gè)App之前傳輸信息的流程也相似:假設(shè)App上的用戶a需要向用戶b發(fā)信息,這條信息也需要經(jīng)過App后臺這個(gè)中轉(zhuǎn)站,才能到達(dá)用戶b??偨Y(jié):從以上的場景1和場景2可總結(jié)App后臺的兩個(gè)重要作用。遠(yuǎn)程存儲數(shù)據(jù)。消息中轉(zhuǎn)。
1.2 App后臺架構(gòu)App后臺架構(gòu),一個(gè)聽起來“高大尚”的名字,很多網(wǎng)友聽到這個(gè)詞語感覺很迷茫,不明白架構(gòu)具體是指什么?“App后臺應(yīng)該怎樣架構(gòu)”這個(gè)問題博納網(wǎng)絡(luò)在QQ群被問了無數(shù)次。通過閱讀本節(jié),根據(jù)博納網(wǎng)絡(luò)提出的一個(gè)初級的通用架構(gòu)設(shè)計(jì)框架,幫網(wǎng)友踏入架構(gòu)的大門!在百度百科中對架構(gòu)的定義是:網(wǎng)站架構(gòu),一般認(rèn)為是根據(jù)客戶需求分析的結(jié)果,準(zhǔn)確定位網(wǎng)站目標(biāo)群體,設(shè)定網(wǎng)站整體架構(gòu),規(guī)劃、設(shè)計(jì)網(wǎng)站欄目及其內(nèi)容,制定網(wǎng)站開發(fā)流程及順序,以最大限度地進(jìn)行高效資源分配與管理的設(shè)計(jì)。新手看到上面對架構(gòu)的解析會被搞暈。博納網(wǎng)絡(luò)根據(jù)自身的開發(fā)經(jīng)驗(yàn),為了幫助新手快速入門,特地提煉出一個(gè)初級的通用架構(gòu)設(shè)計(jì)框架。有什么業(yè)務(wù)?遇到什么問題?有什么可行的技術(shù)解決方案?掌握了以上的架構(gòu)設(shè)計(jì)的框架,有什么好處?1.不怕被別人的架構(gòu)文章搞暈當(dāng)在網(wǎng)絡(luò)上看到別人分享的架構(gòu)文章時(shí),套用這個(gè)架構(gòu)的框架,問自己這3個(gè)問題:作者是在什么業(yè)務(wù)邏輯遇到哪些問題,采用了哪些技術(shù)解決方案。通過這個(gè)框架,能幫助網(wǎng)友快速提煉出別人架構(gòu)的核心點(diǎn),掌握這個(gè)架構(gòu)的精髓。2.能快速地整理合適的架構(gòu)當(dāng)設(shè)計(jì)App后臺的架構(gòu)時(shí),根據(jù)以上的架構(gòu)框架,采用下面4點(diǎn)設(shè)計(jì)App架構(gòu)。
(1)根據(jù)App的設(shè)計(jì),梳理出App的業(yè)務(wù)流程,把每個(gè)業(yè)務(wù)流程列出。
(2)把每個(gè)業(yè)務(wù)流程可能會遇到的問題整理出來。
(3)根據(jù)整理出的問題,探討可行的技術(shù)解決方案。
(4)把(3)中的所有技術(shù)解決方案有機(jī)融合,就是一個(gè)App后臺的初步架構(gòu)。另外,從建立架構(gòu)的流程可得知,架構(gòu)設(shè)計(jì)有以下特點(diǎn)。
1.架構(gòu)是和業(yè)務(wù)緊密相關(guān)每個(gè)App都有獨(dú)自的業(yè)務(wù)邏輯,遇到的問題也不會一樣,解決方案也不一樣,因此架構(gòu)也不盡相同。博納網(wǎng)絡(luò)經(jīng)常在QQ上被網(wǎng)友提問:“App后臺應(yīng)該采用什么架構(gòu)?”博納網(wǎng)絡(luò)不了解相關(guān)的業(yè)務(wù)邏輯,不知道會遇到哪些問題,不能幫助網(wǎng)友確定其所需的技術(shù)方案,架構(gòu)也根本無從談起。
2.架構(gòu)的演變是由業(yè)務(wù)驅(qū)動當(dāng)App處于不同的發(fā)展階段,架構(gòu)上也需要做變化。例如,App剛上線的時(shí)候?yàn)榱丝焖匍_發(fā),查詢用戶的數(shù)據(jù)這個(gè)功能是每次查詢數(shù)據(jù)庫,隨著用戶量的增大,數(shù)據(jù)庫的查詢壓力也隨之增大,可能就要考慮緩存,或者把數(shù)據(jù)的查詢遷移到NoSQL數(shù)據(jù)庫。但同時(shí)要考慮一個(gè)問題,如果初期架構(gòu)不合理,到了后期因?yàn)闃I(yè)務(wù)的發(fā)展需要改變架構(gòu)是很困難的。但是初期要弄一個(gè)好的架構(gòu),又可能耽誤后臺的研發(fā)進(jìn)度,使App的上架時(shí)間推遲,這時(shí)又要面對巨大的資金和時(shí)間壓力,具體怎么取舍,需要認(rèn)真考慮,馬虎不得。
3.架構(gòu)不是為了炫耀技術(shù)架構(gòu)是為了滿足業(yè)務(wù)的需求而設(shè)計(jì)的,技術(shù)人員不該過度設(shè)計(jì),如學(xué)了一堆最新、最炫的技術(shù)并將其放進(jìn)架構(gòu),而不是根據(jù)實(shí)際的需求來做。技術(shù)是為了滿足業(yè)務(wù)而存在的。過度設(shè)計(jì)不但延誤了App的研發(fā)周期,也可能給運(yùn)維帶來很多不必要的麻煩??偨Y(jié):在App成長的過程中,后臺的架構(gòu)也需要不斷成長,技術(shù)人員也需要一起成長。深圳網(wǎng)站建設(shè)博納網(wǎng)絡(luò)編輯整理。