1. 程式人生 > 實用技巧 >校友會小程式開發筆記一:背景與技術方案的選型

校友會小程式開發筆記一:背景與技術方案的選型

一 業務背景介紹

小女子畢業於湖南長沙某985二梯隊大學,在深圳某廠工作,鑑於本校在深圳校友眾多(大概4w+), 急切需要一個校友交流的平臺,傳統的網站形式以及沒落且無人問津,故打算開發

一個小程式+公眾號的社交平臺,供木訥的工科師兄師弟師姐師妹交流,初步計劃的模組有資訊,交友,互助,捐贈,個人中心,代言母校,聚會活動,校友供需,後續會陸續來落實。

二 前端技術方案選型

  • 原生:對效能特別苛刻 or 追求穩定 or 要用最新功能,請記住任何時刻原生都是最穩定效能最好的選擇!!!!

  • KBone:kbone 是一個致力於微信小程式和 Web 端同構的解決方案,微信小程式的底層模型和 Web 端不同,我們想直接把 Web 端的程式碼挪到小程式環境內執行是不可能的。kbone 的誕生就是為了解決這個問題,它實現了一個介面卡,在適配層裡模擬出了瀏覽器環境,讓 Web 端的程式碼可以不做什麼改動便可執行在小程式裡。

  • MPVue:是美團點評開源的一個使用 Vue.js 開發小程式的前端框架。框架基於 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 實現,使其可以執行在小程式環境中,從而為小程式開發引入了整套 Vue.js 開發體驗。

  • WePY:騰訊團隊開源的一款類vue語法規範的小程式框架,借鑑了Vue的語法風格和功能特性,支援了Vue的諸多特徵,比如父子元件、元件之間的通訊、computed屬性計算、wathcer監聽器、props傳值、slot槽分發,還有很多高階的特徵支援:Mixin混合、攔截器等;

  • Taro:京東凹凸實驗室開源的一款使用 React.js 開發微信小程式的前端框架。它採用與 React 一致的元件化思想,元件生命週期與 React 保持一致,同時支援使用 JSX 語法,讓程式碼具有更豐富的表現力,使用Taro進行開發可以獲得和 React 一致的開發體驗。,同時因為使用了react的原因所以除了能編譯h5, 小程式外還可以編譯為ReactNative;

  • Uni-app:使用 Vue.js 開發小程式、H5、App的統一前端框架。開發者使用 Vue 語法編寫程式碼,uni-app 框架將其編譯到 小程式(微信/支付寶/百度/位元組跳動/QQ/釘釘)、App(iOS/Android)、H5等多個平臺,保證其正確執行並達到優秀體驗。

  • Chameleon:滴滴跨端解決方案。不是很瞭解,歡迎大家補充

  • 選擇結論:校友會小程式功能點不多(大概100個左右功能點),沒有複雜的業務關係,且沒有跨端的需求,要求是簡單高效,這裡的簡單高效既是開發的簡單高效,也是管理髮布的簡單高效,

所以選擇了原生框架作為前端方案,當然,小程式在非常快速的更新迭代,就算是原生框架也還是有一些坑的。

三 前端UI技術方案選型

  • 原生:基於WXML,WXSS,元件,模板構建,基本也就是寫view的彈性佈局啦!!!

  • WeUI:騰訊官方UI元件庫WeUI的小程式版,提供了跟微信介面風格一致的使用者體驗,感覺比較死板,中庸,沒有視覺衝擊力

  • ColorUI:一個Css類的UI元件庫!不是一個Js框架。相比於同類小程式元件庫,ColorUI更注重於視覺互動!其元件在美觀性方面比較突出。

  • iView WeApp: TalkingData釋出的一款高質量的基於Vue.js元件庫,而iView weapp則是它們的小程式版本

  • ZanUI WeApp:是有贊移動 Web UI 規範ZanUI的小程式實現版本,結合了微信的視覺規範,為使用者提供更加統一的使用感受

  • MinUI :蘑菇街前端開發團隊開發的基於微信小程式自定義元件特性開發而成的一套簡潔、易用、高效的元件庫,適用場景廣,覆蓋小程式原生框架,各種小程式元件主流框架等,並且提供了專門的命令列工具。

  • 選擇結論:WeUI過於平庸,和微信原生元件差不多,而iView,ZanUI, MinUI學習曲線較高,所以選擇了原生+ColorUI作為UI框架

四 後端框架技術方案選型

  • ThinkPHP(PHP):國人最引以為自豪的PHP框架,大概從200X年就開始流行,繁衍了N個版本,因為其自身包含了底層架構、相容處理、基類庫、資料庫訪問層、模板引擎、快取機制、外掛機制、角色認證、表單處理等常用的元件,並且對於跨版本、跨平臺和跨資料庫移植都比較方便。

  • Laravel(PHP): 號稱宇宙中最簡潔、最優雅的PHP Web開發框架。它可以讓你從麵條一樣雜亂的程式碼中解脫出來;它可以幫你構建一個完美的網路APP,而且每行程式碼都可以簡潔、富於表達力。

  • .NET Core WebAPI:微軟為了通吃Linux/Win平臺的得意之作,長期以來C#+SQLServer組合只活躍於企業級應用,或者古董應用中,無法飛入尋常百姓家(程式設計師家),為此推出了了.NET Core, 目標是跨平臺

  • Java SpringBoot:設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置

  • 小程式雲開發:雲開發為開發者提供完整的原生雲端支援和微信服務支援,弱化後端和運維概念,無需搭建伺服器,使用平臺提供的 API 進行核心業務開發,即可實現快速上線和迭代,同時這一能力,同開發者已經使用的雲服務相互相容,並不互斥。

  • 選擇結論:小程式雲開發可以提供前後端的免鑑權使用者身份獲取,同時可以直接提供雲函式呼叫,也提供了IO儲存空間,Json資料庫,同時還可以和公眾號資料互通,且避免繁瑣的認證授權,所以Selected IT

五 資料庫方案選型

  • MySQL:移動網際網路創業大軍的首選,免費,高效,適中

  • PostgreSQL:是一種特性非常齊全的自由軟體的物件-關係型資料庫管理系統(ORDBMS),是以加州大學計算機系開發的POSTGRES,4.2版本為基礎的物件關係型資料庫管理系統。

  • 小程式Json資料庫:與小程式雲開發緊密結合,而且基礎版是免費的,當然選擇她啊!!!

六 綜合結論

小程式原生+ColorUI+雲函式+雲開發+Json資料庫

不管選用那種框架,對微信小程式的基礎知識,基礎概念還是要花時間去學習的(看官方文件或者微信小程式全面實戰,架構設計 && 躲坑攻略),因為很多問題,採用原生的去解決更好,元件也是。