您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Serverless Frist的漸進式應用開發框架 Malagu是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Malagu 是基于 TypeScript 的 Serverless First、組件化的漸進式應用開發框架。使用同一套編程語言和 IoC 設計,用于開發前端、后端和前后端一體化應用。并且結合了 OOP(面向對象編程)、AOP(面向切面編程)等元素,借鑒了很多 Spring Boot 設計思想。
?在后端,Malagu 抽象一套接口,方便適配任意的平臺和基礎框架,是一個平臺或基礎框架無關的上層框架。平臺如阿里云函數計算、騰訊云云函數、Vercel 等,基礎框架如 Express、Koa、Fastify 等。
?在 Serverless 場景,Malagu 是以應用為單位開發項目,一個應用一般包含多個 API 接口。如果我們的應用很大,我們應該將大應用拆解成一個個小的微應用或者微服務。就像微服務架構的粒度拆分原則一樣,合理的粒度拆分,對我們的應用管理是有很多好處的。框架會保證一個應用在一個函數中的運行性能。?
Serverless 是云計算新一代計算引擎,為取代傳統云服務器架構而生。Serverless 核心理念是讓開發者不用關心服務器的存在,專注于業務代碼。
?現在,所有云廠商和社區都在大力推廣和布道 Serverless 理念,通過 Serverless 可以低成本高質量快速落地商業方案。目前,大家普遍認為 Serverless = FaaS + BaaS,未來也可能是其他的形態,不管形態如何變化,Serverless 的核心理論是不變的。所有 Serverless 的開發體驗關鍵在 FaaS 的開發體驗,而 FaaS 目前開發體驗不是很理想,存在著很多的疼點,短時間內在 FaaS 底層上很難解決,比如冷啟動、數據庫訪問、本地開發調試運行、平臺無關等等。?
?我們可以換一個思路,從開發框架層面嘗試解決這些問題(事實證明,可以通過開發框架來解決這些問題)。那么,我們面臨新的抉擇是采用傳統框架,還是需要一個全新的框架?如果選擇做一個新框架,那么,我們是選擇特定編程語言,還是通用編程語言?
?傳統框架在開發體驗上,大家肯定是接受的,畢竟已經使用了這么多年。但是傳統框架開發的應用在遷移到 Serverless 環境時,往往會遇到各種各樣難以解決的問題,這些問題往往是與框架底層設計密切相關。雖然我們可以通過框架擴展能力去解決或者緩解部分問題,實踐下來的結果是框架改造門檻很高、效果不太理想、需要 Hack,不夠優雅。當您在 Serverless 采用傳統框架時,您往往會感覺雖然應用可以跑起來,但是真正應用到生產級別您會有顧慮。所有我們需要一個全新的、Serverless Fisrt 的開發框架。只有這樣才能極大發揮 Serverless 優勢,并讓 Serverless 開發體驗超越傳統開發體驗。
?目前,開源社區也存在不少語言無關的 Serverless 工具或框架,比如 Funcraft、Serverless Framework、Vercel 等等。這類通用語言型 Serverless 工具在運維層面確實可以做到不錯的體驗,也可以形成通用的標準。但是,在應用代碼開發、調試、運行等開發體驗上不那么理想。每種編程語言在開發、調試和運行等方面都有自己獨特的地方,通用語言型 Serverless 工具很難做到統一,且開發體驗還能做到很好。只有選擇特定的編程語言,才能讓開發、調試和運行等方面的體驗達到極致。
Serverless 讓后端開發門檻變得極低,前端開發者基于 Serverless 開發后端應用學習成本也極低。未來越來越多的前端開發者成為全棧開發者。Typescript 既可以開發前端,又可以開發后端,對于前端或者全棧的開發者來說十分友好。?
前端架構其實就是一種類 Serverless 架構,比如前端瀏覽器需要加載前端代碼來執行,而 Serverless 場景也需要加載用戶的代碼來執行。因此,前端的很多解決方案天然適合 Serverless 場景,比如前端通過打包、壓縮、Tree Shaking 來減少代碼體積,減少代碼部署和冷啟動時間。同樣,該優化方案也適用與 Serverless 場景,所以選擇 Typescript,則相當于直接擁有了經過無數真實場景打磨的現成解決方案。
另外,Typescript 和 Java 很接近,Java 開發者也能很方便切換到 Typescript 技術棧。
?Malagu 是基于 TypeScript 的 Serverless First、可擴展和組件化的漸進式應用開發框架。Malagu 屏蔽掉不同 Serverless 平臺底層細節和 Serverless 場景存在的大部分痛點。Malagu 基于真實業務場景打磨,提供生產級別可用的解決方案。提供多云解決方案,云廠商不鎖定。
Malagu 框架是由一系列組件組成,每一個組件其實就是一個 node 模塊,根據您的業務場景選擇合適的組件,您也可以基于組件機制開發屬于自己的組件。為了快速開發,Malagu 提供了一個命令行工具,命令行工具內置不同場景的開箱即用的模板,通過命令行工具可以快速創建您的應用。首先,我們需要安裝相關命令行工具:
$ npm install -g yarm # 框架默認推薦使用 Yarn 工具,您也可以使用 Npm $ npm install -g @malagu/cli # 安裝 Malagu 命令行工具 $ malagu init project-name # 使用命令行工具 malagu init 命令,選擇一個模板,初始化一個模板應用 $ cd project-name # 進入到應用的根目錄 $ malagu serve # 啟動應用,默認端口為 3000
打開瀏覽器并導航到 http://localhost:3000/。
以上就是Serverless Frist的漸進式應用開發框架 Malagu是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。