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