歡迎來到深圳市來科信科技有限公司網站!
        您當前的位置:深圳APP開發 > 新聞資訊 > APP開發資訊 >

        已閱讀

        APP開發如何選擇合適的技術架構?

        來源:www.bqtao.cn ?? ?? 發布時間:2017-08-24
        找一家外包公司做APP開發,除了要考慮團隊實力,價格等因素外,還應該注意APP的技術架構選擇。深圳APP開發公司有的是銷售型的公司,技術能力不怎么樣,銷售吹得天花亂墜,有的是技術型的公司,技術實力很強,但經常接不到單,公司隨時會關門。在客戶不懂技術的情況下,項目做得一團糟。今天,小編就跟大家介紹一下,開發一款APP,應該如何選擇合適的技術架構。

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