不使用任何后端代碼可以開發(fā)應(yīng)用程序嗎?
在一個一切都在加速的世界里,你需要快速迭代以避免被拋棄。
技術(shù)有很多,但你不可能掌握每一項。你可能會問自己:“我怎么能在不了解后端代碼的情況下構(gòu)建應(yīng)用程序呢?”
- 你需要快速、安全地進行迭代
- 不太了解后端代碼、主機或DevOps
- 專注于已經(jīng)很復(fù)雜的前端開發(fā)工作
那么,在沒有任何后端代碼的情況下,你能開發(fā)出一個可以工作的應(yīng)用程序嗎?
小芯告訴你:可以的。
下面我們就來一一介紹:
后端作為服務(wù)(BaaS)進行救援作為服務(wù)的后端是一個遠(yuǎn)程工具箱,不需要一行代碼,它就可以幫助你快速構(gòu)建通用的應(yīng)用程序功能,比如自動驗證、數(shù)據(jù)庫持久性、搜索和統(tǒng)計信息。
有很多工具提供了這樣的工具。
- Firebase可能是最知名的,它是由谷歌和谷歌云平臺支持的。它非常高效和酷,是作為一個云黑盒工具托管的。如果你需要本地工具,你可以使用自己的主機查看一些解決方案,比如
- Kuzzle,一個基于NodeJS、彈性搜索和Redis的特別強大的物聯(lián)網(wǎng)和高性能/流量應(yīng)用服務(wù)(BaaS)。
- FeatherJS,一個有各種連接器的NodeJS服務(wù)器,可用于MySQL, Postgres或MongoDB。
- Strapi,一個幫助你快速建立CMS的NodeJS服務(wù)器。
當(dāng)使用Baas時,你需要稍微改變主意。
來源:Pexels
與調(diào)用將根據(jù)自定義邏輯更改數(shù)據(jù)的自己的端點不同,與根據(jù)自定義邏輯調(diào)用端點來更改數(shù)據(jù)不同,你通常會直接使用前端的格式化數(shù)據(jù)查詢與數(shù)據(jù)庫交互的服務(wù)端點,因為這些數(shù)據(jù)必須出現(xiàn)在數(shù)據(jù)庫中。
因此,前端代碼被認(rèn)為是安全的,惟一要做的就是在后端應(yīng)用一些驗證策略來保證某些場景中的數(shù)據(jù)完整性。
請記住,當(dāng)談到“backendless”時,實際上它有一個正在運行的后端,只是你不需要為此編寫任何(或只編寫很少)代碼。幾乎一切都已為你準(zhǔn)備好了。
把后端作為服務(wù)的一個小例子
假設(shè)你需要創(chuàng)建一個博客帖子,如果沒有BaaS,你可能會調(diào)用一個名為post/blog/create的端點,并且可能會傳遞這樣的對象
- {
- "title": "My newpost",
- "content":"<h1>Some HTML…"
- }
然后在后端,你將添加一個postID、一個帶有創(chuàng)建日期的服務(wù)器時間戳,可能還添加了一個字段,作者使用的是使用會話令牌找到的當(dāng)前用戶。
使用BaaS,你可以像使用SDK這樣直接在集合上進行調(diào)用(我將在下面向你展示一個FirebaseFirestore示例,在其他工具中類似)。
- constarticleReference = db.collection("blog_posts").add({
- "title": "My newpost",
- "content":"<h1>Some HTML…",
- "owner":"<user_unique_id>"
- "creation_date": 1578855978
- })
- .then(success => console.log(success))
- .catch(error => console.warn(error));
并且在后端添加一些限制策略,例如通過驗證作者。
- match/blog_posts/{postId} {
- allow read if true,
- allow create, update: ifrequest.auth.uid == resource.data.owner;
- }
這樣,可以更快地編寫代碼,而且為安全策略定義自動化測試套件也比后端代碼更容易。默認(rèn)情況下,所有東西都是禁用的,可以一點一點地啟用它們。
這也可以定義一些后端函數(shù)來“掛鉤”某些事件,如文檔創(chuàng)建、編輯或刪除。這樣就可以定義一些副作用或額外驗證。
使用后端作為服務(wù)能創(chuàng)建什么?
這就是問題所在……你可以構(gòu)建的東西是沒有限制的,如果遇到了限制,可以用其他工具甚至自定義后端來擴展這些工具。
大多數(shù)情況下,在基于云的解決方案上有合理的免費層,所以開始構(gòu)建時沒有問題,當(dāng)應(yīng)用成功時你就要開始支付少量費用了。
那很昂貴嗎?
來源:Pexels
記住,任何幫助你更快、更安全的事情通常都有不利的一面。在使用內(nèi)部包時,成本是關(guān)于開發(fā)人員支持和協(xié)助許可的。
但是當(dāng)使用云BaaS時,當(dāng)它們擴展到一個非常大的數(shù)據(jù)集時,通常就很昂貴了,你還需要設(shè)計應(yīng)用程序來大規(guī)模地使用它們,但是工程師最大的問題是花時間優(yōu)化一些根本不應(yīng)該存在的東西。
使用BaaS進行快速迭代,如果你的產(chǎn)品獲得了一些成功,請考慮稍后對其進行優(yōu)化的方法,有可能的話切換到另一種技術(shù)。
BaaS很酷的一點是,你可以很容易地遷移到其他工具。
現(xiàn)在輪到你了,快來試試吧。