人
已閱讀
已閱讀
開發(fā)一款APP應該如何選擇技術架構?
來源:www.bqtao.cn ?? ?? 發(fā)布時間:2017-09-19
技術選型對于APP開發(fā)來說,是非常重要的一件事情。無論是自己組建開發(fā)團隊,還是找第三方APP開發(fā)公司外包。在技術選型上,都要重視。

技術選型實際上是從不同維度對產(chǎn)品進行分解的過程。通過分析,合理分解出各項技術需求,然后對各項技術需求進行綜合評估并最終選擇合適的框架。
首先,所有產(chǎn)品都可以從架構上大體上劃分為幾類,具體到每一類都有相似的架構風格,它們通常在各種架構要素的具體要求上有很大的相似性。因此確定產(chǎn)品類型和架構風格有助于我們參照現(xiàn)有的產(chǎn)品來做技術選型,這樣可以大大節(jié)省技術選型的工作量并降低由于技術選型不合適而帶來的后期的開發(fā)維護風險。
技術框架的類型很多,不同的類型還有更多的細分。如WEB應用,信息展現(xiàn)類和社交類選型顯然是不同的。除此之外,每種產(chǎn)品類型的選型也會存在重疊,如RCP和RIA應用,盡管UI層的選型完全不同,但是并不妨礙兩者后端選型的相似性,如兩者都是數(shù)據(jù)展現(xiàn)及交互復雜的企業(yè)應用。
總之,產(chǎn)品類型就如程序設計上的設計模式一樣,便于我們快速將產(chǎn)品分解為幾個重要的架構要素并且對應到其常見的解決方案,為我們的技術選型工作發(fā)揮很大的指導作用。
其次,架構分層可以幫助我們以“分而治之”的思路來進行技術選型。這既包括“邏輯分層”,也包括“物理分層”。邏輯分層使得我們將技術選型分為展現(xiàn)層選型、業(yè)務層選型、持久層選型以及數(shù)據(jù)資源層選型等,然后我們再按步完成選型工作,每一步除了要考慮其對應的架構要素外,還要考慮上下層的集成方案。如方案的復雜度、健壯性、性能等。而“物理分層”則確定了各層之間的通信框架選型,同樣我們需要考慮通信的性能、安全性、有效性等。
最后,無論是產(chǎn)品類型還是架構分層,這兩者的結(jié)合都是便于我們將技術架構選型進行合理的分解,將關注點充分聚焦,從而在各框架間做有效取舍。但是除了各項技術要素及指標外,還有很重要的一方面對技術選型有非常大的影響,那就是學習成本、社區(qū)活躍度和技術成熟度。
對于兩個技術框架的各項技術指標相近的情況,我們自然要選擇學習成本更低、社區(qū)活躍度更高以及技術成熟度更高的一個。
對于一些新出現(xiàn)的框架,雖然理念非常好、社區(qū)非常活躍,但是其框架可能并不夠健壯,需要更多的時間在生產(chǎn)環(huán)境中去完善。此時縱使其有更好的性能等的表現(xiàn),我們也要審慎的來選擇,或者在一些非核心的模塊局部進行引入試驗,或者不引入該框架,而是合理設計系統(tǒng)的集成方案,以便在其足夠完善時能夠輕易的進行框架遷移替換。
換句話說,當我們認為一款新框架有足夠好的性能、可擴展性、可伸縮性時,我們更需要冷靜的考慮以下它是否足夠健壯,它的這些特性是否是我們所必須的。有時候你會發(fā)現(xiàn),它很快、很靈活,但是卻并不是你必須要擁有的,你引入它帶來的系統(tǒng)質(zhì)量的提升遠遠抵消不了因為維護它增加的成本。
總之,選擇一款最合適你的產(chǎn)品的框架,而不需要對各項架構要素進行極限追求。這也是為什么各種新框架滿天飛的當下,很多十幾年前的框架仍保持旺盛的生命力的原因。