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