解密|一文帶你看懂外掛技術
近年來,得益於技術的迅猛發展,具體體現之一就是外掛技術、分層技術等現代技術的快速進步。
在我們團隊開發小程式的過程中,我們得出了一些結論,淺淺揭示了“小程式+自定義外掛”的重要性。
什麼是外掛技術?
外掛技術指的是一種應用程式,遵循程式介面完成相應的編寫,再規範介面外掛,達到擴充程式功能的目的。現在許多軟體開發的過程中均包含了外掛結構。
當前軟體開發中運用到的外掛技術主要有以下兩種型別:
1、元件物件的模型外掛。該技術又被簡稱為COM,利用該模型可以直接定義程式介面,而不需瞭解外掛功能的整個實現過程,同時也能達到不同外掛間通訊的目的---此類外掛也是市面上使用最廣泛的外掛型別。
2、指令碼外掛。將外掛邏輯運用程式語言轉換為指令碼程式碼(這裡的程式語言可以是通用語言,也可以是自行開發)當前指令碼外掛的主要語言形式為XML,在利用過程中具有簡便、易於操作等優勢,同時也使得指令碼外掛具備一定的風險漏洞。
使用外掛技術在軟體設計中有什麼好處?
使用外掛技術能夠在分析、設計、開發、專案計劃、協作生產和產品擴充套件等很多方面帶來好處:
1、結構清晰、易於理解。由於借鑑了硬體匯流排的結構,而且各個外掛之間是相互獨立的,所以結構非常清晰也更容易理解。
2、易修改、可維護性強。由於外掛與宿主程式之間透過介面聯絡,就像硬體插卡一樣,可以被隨時刪除,插入和修改,所以結構很靈活,容易修改,方便軟體的升級和維護。
3、可移植性強、複用力度大。因為外掛本身就是由一系列小的功能結構組成,而且透過介面向外部提供自己的服務,所以複用力度更大,移植也更加方便。
4、結構容易調整。系統功能的增加或減少,只需相應的增刪外掛,而不影響整個體系結構,因此能方便的實現結構調整。
5、外掛之間的耦合度較低。由於外掛透過與宿主程式通訊來實現外掛與外掛,外掛與宿主程式間的通訊,所以外掛之間的耦合度更低。
6、可以在軟體開發的過程中修改應用程式。由於採用了外掛的結構,可以在軟體的開發過程中隨時修改外掛,也可以在應用程式發行之後,透過補丁包的形式增刪外掛,透過這種形式達到修改應用程式的目的。
7、靈活多變的軟體開發方式。可以根據資源的實際情況來調整開發的方式,資源充足可以開發所有的外掛,資源不充足可以選擇開發部分外掛,也可以請第三方的廠商開發,使用者也可以根據自己的需要進行開發。
App快速開發離不開「Hybird」混合開發模式
自從小程式容器技術被應用到微信中,整個微信的小程式生態便被帶火了。於是乎,就有企業開始研究,能不能將小程式容器技術開發出來,應用到別的App中呢?還真有,例如FinClip。
「Native+H5」和「Native+小程式」兩種混合式APP開發模式相比之下,「Native+小程式」的開發模式更優。 技術優勢包括:
- 具備跨平臺的能力,一套程式碼可以在 iOS 與 Android 兩個平臺中執行;
- 遠超過 H5 的體驗(支援本地快取,Webview,有豐富的元件與支援庫);
- 能獲取更多系統許可權,完成更加豐富的產品設計;
- 可以避免 DOM 洩露(不使用常用的 window 物件與 document 物件);
- 包尺寸有效減少,節省流量和儲存
- 服務不再受發版所限制,支援熱更新
小程式+外掛+App,高體驗的組裝式App誕生
如果從體驗上說,採用原生開發的App體驗上肯定是最好的。但市場上的使用者需求日新月異,業務發展也需要跟得上使用者的需求迭代速度,於是乎,「跨端」理念就開始映入了程式設計師的眼簾。從做程式設計師的第一天開始,就要接受跨端的“洗禮”,換句話說就是要快!而且質量好!
小程式這種介乎於H5和原生之間的語法便誕生了。
與此同時,軟體的快速開發,其本質是將重複的底層功能提取出來,已元件的形式嵌入到框架之中,力求最大程度的減少開發人員的開發難度,節省開發時間。一個企業要做到面面俱到,幾乎是不可能的,因為使用者的需求千差萬別,要想盡可能的做到盡善盡美,必須要在 開發技術選型上下足功夫,選擇一些具有一定開放性的開發平臺,對於這種“開放性”的理解,自定義外掛必不可少。
稍微調研了下 FinClip,他們有自己的小程式外掛市場, Finclip小程式應用市場可以瞭解一下。一些第三方原生外掛也有相當程度的自定義支援,例如
自定義外掛在快速開發平臺中的重要作用,以傳統開發方式為基礎,以敏捷思想作指導,這樣開發出來的產品可擴充性強,使用者滿意度也會很高。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024933/viewspace-2931775/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一文帶你瞭解HDFS技術
- 一文帶你看懂Spring事務!Spring
- 一文帶你搞懂 CDN 的技術原理
- 一文帶你看懂cookie,面試前端不用愁Cookie面試前端
- 一文帶你認識LPWA通訊技術
- 剖析外掛技術 (轉)
- 一文帶你讀懂網路視覺化技術視覺化
- 一文帶你看懂二叉樹的序列化二叉樹
- 外掛化技術:宿主訪問外掛資源
- 一文帶你看懂Springboot核心功能及優缺點Spring Boot
- 一文看懂牛叉的公鏈所擁有的技術
- 科普丨一文看懂語音識別的技術原理
- 遊戲反外掛技術揭祕遊戲
- 外掛輔助技術研究教程
- 跨瀏覽器外掛技術瀏覽器
- 一文帶你讀懂遊戲反外掛SDK測試,節省90%測試時間遊戲
- 技術乾貨 | 反外掛技術的革新:如何有效應對 FPS 外掛的威脅
- framework外掛化技術-類載入Framework
- 帶你看懂MySQL執行計劃MySql
- 外掛製作--------過NP技術漸漸
- 小白如何學習網路安全技術,一文帶你瞭解它得到它!
- 一文帶你看懂分散式軟匯流排在家庭場景的應用分散式
- 用 kubectl 外掛把你的想法帶到這個世界
- 帶你看懂Dictionary的內部實現
- 雲集技術學社|帶你瞭解DevOps技術原理dev
- 一文看懂 GithubGithub
- 一文帶你看懂Java中的Lock鎖底層AQS到底是如何實現的JavaAQS
- Android外掛化技術之旅 1 開篇 - 實現啟動外掛與呼叫外掛中的Activity和ServiceAndroid
- 一文帶你快速掌握AQSAQS
- 一文帶你搞懂RPCRPC
- 一文帶你認識DockerDocker
- 一文帶你入門 GolangGolang
- 一文教你看懂大資料的技術生態圈 Hadoop,hive,spark大資料HadoopHiveSpark
- 手把手帶你寫 Flutter 系統音量外掛(Android\iOS)FlutterAndroidiOS
- 手把手帶你自定義 Gradle 外掛 —— Gradle 系列(2)Gradle
- 騰訊萬億級 Elasticsearch 技術解密Elasticsearch解密
- ChatGPT軟體技術棧解密ChatGPT解密
- Oracle Flashback 技術大解密Oracle解密