人
已閱讀
已閱讀
APP開發(fā)如何選擇合適的技術(shù)架構(gòu)?
來源:lexintech.com ?? ?? 發(fā)布時間:2017-08-24
找一家外包公司做APP開發(fā),除了要考慮團隊實力,價格等因素外,還應(yīng)該注意APP的技術(shù)架構(gòu)選擇。深圳APP開發(fā)公司有的是銷售型的公司,技術(shù)能力不怎么樣,銷售吹得天花亂墜,有的是技術(shù)型的公司,技術(shù)實力很強,但經(jīng)常接不到單,公司隨時會關(guān)門。在客戶不懂技術(shù)的情況下,項目做得一團糟。今天,小編就跟大家介紹一下,開發(fā)一款A(yù)PP,應(yīng)該如何選擇合適的技術(shù)架構(gòu)。
在APP進入開發(fā)階段之前,技術(shù)選型是必須要完成的一項重要工作。它是對產(chǎn)品非功能需求、架構(gòu)設(shè)計中的各種要素及約束的綜合評估以及體現(xiàn)。也許你找的開發(fā)公司已經(jīng)提供了統(tǒng)一的技術(shù)開發(fā)框架,也許開發(fā)公司以前產(chǎn)品的技術(shù)選型恰好可以滿足新項目的要求,但是即便如此,了解一個產(chǎn)品技術(shù)選型的過程也有助于我們?nèi)募夹g(shù)方案角度審視產(chǎn)品的各種非功能性約束。
技術(shù)選型是各個方面各種因素的綜合抉擇的結(jié)果,因此這項工作格外考驗選型者對產(chǎn)品、架構(gòu)的把握以及對各項技術(shù)框架的熟悉程度。
通過下面的示意圖,我們看一下技術(shù)選型涉及的各個方面:
從上圖可以看到,技術(shù)選型實際上是從不同維度對產(chǎn)品進行分解的過程。通過分析,合理分解出各項技術(shù)需求,然后對各項技術(shù)需求進行綜合評估并最終選擇合適的框架。
首先,所有產(chǎn)品都可以從架構(gòu)上大體上劃分為幾類,具體到每一類都有相似的架構(gòu)風格,它們通常在各種架構(gòu)要素的具體要求上有很大的相似性。因此確定產(chǎn)品類型和架構(gòu)風格有助于我們參照現(xiàn)有的產(chǎn)品來做技術(shù)選型,這樣可以大大節(jié)省技術(shù)選型的工作量并降低由于技術(shù)選型不合適而帶來的后期的開發(fā)維護風險。
圖中只是對產(chǎn)品做了一個最抽象的類型劃分,隨著后續(xù)選型內(nèi)容的講解,你就會發(fā)現(xiàn)實際上上述的每種類型又會細分為不同類型。如WEB應(yīng)用,信息展現(xiàn)類和社交類選型顯然是不同的。除此之外,每種產(chǎn)品類型的選型也會存在重疊,如RCP和RIA應(yīng)用,盡管UI層的選型完全不同,但是并不妨礙兩者后端選型的相似性,如兩者都是數(shù)據(jù)展現(xiàn)及交互復(fù)雜的企業(yè)應(yīng)用。
總之,產(chǎn)品類型就如程序設(shè)計上的設(shè)計模式一樣,便于我們快速將產(chǎn)品分解為幾個重要的架構(gòu)要素并且對應(yīng)到其常見的解決方案,為我們的技術(shù)選型工作發(fā)揮很大的指導(dǎo)作用。
其次,架構(gòu)分層可以幫助我們以“分而治之”的思路來進行技術(shù)選型。這既包括“邏輯分層”,也包括“物理分層”。邏輯分層使得我們將技術(shù)選型分為展現(xiàn)層選型、業(yè)務(wù)層選型、持久層選型以及數(shù)據(jù)資源層選型等,然后我們再按步完成選型工作,每一步除了要考慮其對應(yīng)的架構(gòu)要素外,還要考慮上下層的集成方案。如方案的復(fù)雜度、健壯性、性能等。而“物理分層”則確定了各層之間的通信框架選型,同樣我們需要考慮通信的性能、安全性、有效性等。
最后,無論是產(chǎn)品類型還是架構(gòu)分層,這兩者的結(jié)合都是便于我們將技術(shù)架構(gòu)選型進行合理的分解,將關(guān)注點充分聚焦,從而在各框架間做有效取舍。但是除了各項技術(shù)要素及指標外,還有很重要的一方面對技術(shù)選型有非常大的影響,那就是學習成本、社區(qū)活躍度和技術(shù)成熟度。
對于兩個技術(shù)框架的各項技術(shù)指標相近的情況,我們自然要選擇學習成本更低、社區(qū)活躍度更高以及技術(shù)成熟度更高的一個。
對于一些新出現(xiàn)的框架,雖然理念非常好、社區(qū)非常活躍,但是其框架可能并不夠健壯,需要更多的時間在生產(chǎn)環(huán)境中去完善。此時縱使其有更好的性能等的表現(xiàn),我們也要審慎的來選擇,或者在一些非核心的模塊局部進行引入試驗,或者不引入該框架,而是合理設(shè)計系統(tǒng)的集成方案,以便在其足夠完善時能夠輕易的進行框架遷移替換。
換句話說,當我們認為一款新框架有足夠好的性能、可擴展性、可伸縮性時,我們更需要冷靜的考慮以下它是否足夠健壯,它的這些特性是否是我們所必須的。有時候你會發(fā)現(xiàn),它很快、很靈活,但是卻并不是你必須要擁有的,你引入它帶來的系統(tǒng)質(zhì)量的提升遠遠抵消不了因為維護它增加的成本。
總之,選擇一款最合適你的產(chǎn)品的框架,而不需要對各項架構(gòu)要素進行極限追求。這也是為什么各種新框架滿天飛的當下,很多十幾年前的框架仍保持旺盛的生命力的原因。