1. 程式人生 > 其它 >小程式容器是什麼?

小程式容器是什麼?

隨著小程式應用越來越廣,我們需要更深度的瞭解這項技術,分享的第一篇,就從科普小程式容器開始吧!

一、小程式容器是什麼

1、如何理解容器

“容器”一詞來源於英文單詞 Container ,翻譯過來也是“集裝箱”,那為什麼要把容器比作集裝箱呢?

首先,單從外形上來看,整整齊齊的集裝箱不管是尺寸還是材質都是一樣的(連我的強迫症都被治癒了),就像是工廠有一臺大型機器,只需放入製造集裝箱的原材料就能快速的批量生產完全一致的集裝箱。

其次,集裝箱的作用是對商家的貨物進行打包隔離,一般會將不同商家的貨物打包裝到不同的集裝箱內,這樣不管是裝載還是卸貨都不容易混淆。

另外,集裝箱還有一個更重要的功能:保護箱內的貨物。不管海運過程中遇到強風暴雨還是烈日暴晒,我們對箱內的貨物都能放心。

其實我們也希望容器能達到同樣的效果,只要我們提供的原材料(映象)一樣,得到的結果(執行例項)都是一樣的,並且還能實現打包隔離和輕鬆運輸。

2、前端容器的優勢

如果把容器類比成集裝箱的話,可以很清晰的彙總容器的優勢:“提供的原材料(映象)一樣,得到的結果(執行例項)一樣”、“打包隔離”、“輕鬆運輸” 等。

容器內執行的服務或服務對應的多個程序就應該是集裝箱裡對應的貨物了,可以很自然地想到,容器的目的就是為程序集合提供一個獨立的執行環境

那我們具體應該怎麼實現 “獨立的執行環境” 呢?

2.1 檔案系統隔離

  • 每個容器都具有獨立的檔案系統,單個容器內對檔案系統進行增刪改查不會影響到其他容器
  • 參考 Linux 下的 chroot 命令,可以將子目錄變為根目錄

2.2資源隔離

  • 利用 namespace 隔離程序之間的相互可見及通訊
  • 使用 Cgroup 限制資源使用率,設定其能夠使用的 CPU 以及記憶體量的大小

所以容器的本質就是一個檢視隔離、資源可限制、獨立檔案系統的程序集合,它將系統的其他資源隔離開來,具有自己獨立的資源檢視。“檢視隔離”,指的是能夠看到部分程序、有獨立的主機名,“資源可限制”,指的是可以限制記憶體大小、CPU 使用個數等。

3、小程式容器相較於h5、原生的優勢

在國內,時代的攪局者非小程式莫屬。

隨著微信、支付寶、百度、抖音等小程式平臺的推出,小程式生態獲得空前的成功,那有沒有一種可能,小程式生態和容器相結合,形成小程式容器呢?

小程式容器顧名思義,是一個承載小程式的執行環境,可主動干預並進行功能擴充套件,達到豐富能力、優化效能、提升體驗的目的。

可能大家也會想,H5也能實現為啥非要搞小程式,如果用小程式和我們更常接觸和使用的“H5 移動應用”與“移動原生應用”作比較,我們會發現小程式的又具有非常明顯的幾大優勢。

  • 具備跨平臺的能力,一套程式碼可以在 iOS 與 Android 等多個平臺中執行;
  • 遠超過 H5 的體驗(支援本地快取,Webview,有豐富的元件與支援庫);
  • 能獲取更多系統許可權,完成更加豐富的產品設計;
  • 可以避免 DOM 洩露(不使用常用的 window 物件與 document 物件);
  • 包尺寸有效減少,節省流量和儲存
  • 服務不再受發版所限制,支援熱更新

二、小程式容器可以發揮的價值

總而言之小程式容器可以幫助開發者快速優化釋出包大小,節省流量和儲存。同時,App 服務迭代不再受發版限制,快速釋出,快速迭代。甚至,基於統一的開發標準,小程式僅需開發一次,便可快速投放至多端。

1、多端投放上架

因為語法的規範性和相容性,在開發工作中只需要開發一次小程式,就能在不同的應用開啟,天然解決跨端痛點。同時,通過IDE工具除錯適配後可將小程式投放至例如微信、阿里、百度、位元組等開放平臺,連線各大流量平臺,觸及海量使用者,滿足多端引流的需求。

2、迭代更敏捷

對於例如金融、社交、電商等複雜的業務本身會有頻繁迭代的需求,其實較好的方式是將這部分業務剝離改造為小程式,繼而通過上下架的形式到 App 中,可以做到熱更新,不再需要等待主版發版和頻繁的提交App Store稽核,滿足複雜業務多變的場景。

3、打造開放生態平臺

對於有生態建設的企業來說,同樣可以通過小程式上下架形式引入第三方商戶,在 App 內打造一個自有輕應用集散中心(應用商店),快速覆蓋衣食住行、辦公協同等各類高頻小程式場景,像微信、支付寶一樣形成自己的開放生態平臺。

三、怎樣引入小程式容器

小程式容器很好,很多公司也都是內部在自研,不過僅限於有實力的公司,研發出來也是自己內部在用。例如,騰訊、阿里、位元組、百度等大廠都有自己的小程式平臺,但他們幾乎也都是僅限於內部使用。

更普遍的現實是更多的公司想用但沒這個實力搞,如果確實需要一個小程式容器該用怎樣的正確姿勢獲得呢?做商用的比較好的小程式容器其實目前市場上就3家。

  1. Finclip小程式開放平臺
  2. 阿里mpaas移動開發平臺
  3. UniSDK

個人推薦FinClip,也是我司在用的方案。只需要在你的 App 裡面,引入它的 SDK,就能載入執行外部小程式了。除了 SDK,它還提供一個後臺管理系統,統一管理小程式的上架和下架,以及收集和分析小程式資料。

使用下來,想談下對FinClip的體驗:

  • 遵循微信小程式的開發標準與規範,開發輕鬆很多

也就是說,現有的微信小程式可以不改一行程式碼,直接放進你的 App 裡面,執行效果保持不變,不必額外二次開發和改造,大大節省了人力成本。

  • 開發者的福音,支援多終端執行

除了移動端的 iOS 與 Android,看到還支援了包括 Linux、Windows、MacOS、麒麟等作業系統。相當於PC 端、車載裝置、智慧電視都能使用小程式了,看得出來做產品確實很用心。

  • 提供IDE 與文件,上手的學習成本低

提供小程式 IDE 開發工具,介面與微信小程式的開發工具類似,自帶除錯和真機預覽,簡單易上手。可以在這個 IDE 裡面,對現有專案進行二次開發,擴充套件功能和介面,或者從零開始寫出一個小程式。

總體來說搭建成本比較低,寄生型的容器,對自有的app和已經研發好的小程式不需要太多改動,直接就能用,感興趣的也可以去試試,目前社群版是免費的。