成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊我最近使用的uniCloud是個(gè)什么玩意?

開發(fā) 前端
通過(guò)最近使用uniCloud的情況來(lái)說(shuō),如果你是一個(gè)前端人員,還是挺爽的。相對(duì)于以往的小程序需要接入后臺(tái)項(xiàng)目,后臺(tái)項(xiàng)目又需要和微信服務(wù)器交互模式來(lái)說(shuō),uniCloud算是一次質(zhì)的飛躍。免費(fèi)代表著還在推廣階段,所以很多功能需要完善,當(dāng)然天下沒有免費(fèi)的午餐,收費(fèi)時(shí)代早晚會(huì)到來(lái),別被套牢就行。

[[401331]]

前言

Hi,大家好,我是麥洛,今天帶大家來(lái)了解一下我最近使用的uniCloud,簡(jiǎn)單談一談我的一些理解,這篇文章主要向大家介紹一下以下內(nèi)容

什么是Serverless

在介紹什么是Serverless的時(shí)候,希望通過(guò)回答一些問(wèn)題幫助大家了解什么是Serverless。一個(gè)最好的問(wèn)題就是——Serverless是不是就是FaaS?

  • “"功能即服務(wù)"(或稱為 FaaS)是一種在無(wú)狀態(tài)容器中運(yùn)行的事件驅(qū)動(dòng)型計(jì)算執(zhí)行模型,這些功能將利用服務(wù)來(lái)管理服務(wù)器端邏輯和狀態(tài)

下面是維基百科對(duì)“Serverless”的中文和英文的解釋:

中文解釋為Serverless就是FaaS;英文解釋就比較豐富了,它把Serverless分成Runtime和Databases,F(xiàn)aaS相當(dāng)于是Runtime類別的產(chǎn)品,所以這方面的誤解還是挺多的。

現(xiàn)在市面上的一些Serverless服務(wù),比如騰訊云和阿里云:

騰訊云 Serverless服務(wù):

阿里云Serverless服務(wù):

到這里就可以發(fā)現(xiàn)FaaS和Serverless有些區(qū)別了,整體來(lái)看FaaS服務(wù),是Serverless計(jì)算服務(wù)的一部分。

目前來(lái)講,提供無(wú)需關(guān)注底層基礎(chǔ)設(shè)施的服務(wù)可以稱為Serverless,那么無(wú)需關(guān)注底層基礎(chǔ)設(shè)施可以怎么理解呢?

首先是我們不去維護(hù)這下面的底層基礎(chǔ)設(shè)施;其次是不關(guān)心它的資源的擴(kuò)展情況,就像DB,我們知道它是可能運(yùn)行在K8S集群上,也知道它有內(nèi)存有CPU有磁盤,但我們并不需要關(guān)心這些資源的情況。

什么是uniCloud

uniCloud 是 DCloud 聯(lián)合阿里云、騰訊云,為開發(fā)者提供的基于 serverless 模式和 js 編程的云開發(fā)平臺(tái)。

到底是怎么一回事?聽我給你簡(jiǎn)單說(shuō)一下

對(duì)架構(gòu)演進(jìn)有了解的同學(xué)都知道,很早之前一般是單體架構(gòu),前后端代碼寫在一起,一般一個(gè)人單甩一個(gè)項(xiàng)目。后來(lái)隨著技術(shù)的演進(jìn),工種演化為前端開發(fā)人員和后端開發(fā)人員,前后端分離架構(gòu)應(yīng)運(yùn)而生。

近幾年,隨著云計(jì)算的流行,國(guó)外有人就提出了Serverless思想。既然后端這么重,那我直接不要你了,我js編程直接搞定。前端收集到的數(shù)據(jù)不用往后端傳,直接js操作入庫(kù),前端要展示數(shù)據(jù),直接js查詢數(shù)據(jù)庫(kù)獲取數(shù)據(jù)。聽起來(lái)都很牛逼!

uniCloud就是這樣的一個(gè)平臺(tái),如何實(shí)現(xiàn)我們上面所說(shuō)的操作,就需要談一談uniCloud的基本概念。

“更多介紹,可以看這里什么是uniCloud - uni-app官網(wǎng) (dcloud.io)

uniCloud的基本概念

服務(wù)空間

一個(gè)服務(wù)空間對(duì)應(yīng)一整套獨(dú)立的云開發(fā)資源,包括數(shù)據(jù)庫(kù)、存儲(chǔ)空間、云函數(shù)等資源。服務(wù)空間之間彼此隔離。

每個(gè)服務(wù)空間都有一個(gè)全局唯一的space ID,至于在云服務(wù)器怎么隔離的,我們就不需要關(guān)注了

目前阿里云和騰訊云都是免費(fèi)開通,騰訊云有些功能已經(jīng)收費(fèi),不用多想,未來(lái)一定收費(fèi)。

云數(shù)據(jù)

uniCloud同時(shí)支持阿里云和騰訊云,它們的數(shù)據(jù)庫(kù)大體相同,有細(xì)微差異。阿里云的數(shù)據(jù)庫(kù)是mongoDB4.0,騰訊云則使用自研的文檔型數(shù)據(jù)庫(kù)(兼容mongoDB 4.0版本)。uniCloud基本抹平了不同云廠商的差異,有差異的部分會(huì)在文檔中單獨(dú)標(biāo)注。所以熟悉mongoDB的同學(xué)就很容易上手了!

那么如何操作數(shù)據(jù)庫(kù)?

云函數(shù)操作數(shù)據(jù)庫(kù)是較為傳統(tǒng)的開發(fā)方式,使用nodejs寫云函數(shù)、使用傳統(tǒng)的MongoDB的API操作云數(shù)據(jù)庫(kù)。

客戶端訪問(wèn)云數(shù)據(jù)庫(kù),稱為clientDB。這種開發(fā)方式可大幅提升開發(fā)效率,避免開發(fā)者開發(fā)服務(wù)器代碼,并且支持更易用的jql語(yǔ)法操作數(shù)據(jù)庫(kù),是更為推薦的開發(fā)方式。clientDB有單獨(dú)一套權(quán)限和字段值控制系統(tǒng),無(wú)需單獨(dú)數(shù)據(jù)庫(kù)安全。其實(shí)就是把MongoDB的API封裝了一層,待會(huì)給大家演示

云函數(shù)

云函數(shù)是運(yùn)行在云端的 JavaScript 代碼,和普通的Node.js開發(fā)一樣,熟悉Node.js的開發(fā)者可以直接上手。

就是這一部分直接代替了后端,讓不熟悉后端的前端人員直接可以上手,降低了學(xué)習(xí)了成本。那后端人員干嘛去?如果真有那么一天,可能會(huì)去搞云計(jì)算開發(fā)吧,只是對(duì)業(yè)務(wù)的關(guān)注度會(huì)降低吧!

uniCloud的開發(fā)模式

通過(guò)上面的介紹,我們大致了解了什么是uniCloud,接下來(lái)我們通過(guò)一些代碼片段來(lái)直觀的看一看在前端如何直接和數(shù)據(jù)庫(kù)交互。

  1. //首先我們要獲取db對(duì)象,用它來(lái)操作云數(shù)據(jù)庫(kù) 
  2. const db = uniCloud.database(); 

新增數(shù)據(jù)

  1. //數(shù)據(jù)對(duì)象 
  2. formData: { 
  3.     "colony_house_name"""
  4.         "colony_house_area"""
  5.             "describe""" 
  6.  
  7. db.collection('table_name').add(formdata).then((res) => { 
  8.     uni.showToast({ 
  9.         icon: 'none'
  10.         title: '新增成功' 
  11.     }) 
  12.     // 處理數(shù)據(jù) 
  13.      
  14. }).catch((err) => { 
  15.     uni.showModal({ 
  16.         content: err.message || '請(qǐng)求服務(wù)失敗'
  17.         showCancel: false 
  18.     }) 
  19. }).finally(() => { 
  20.     uni.hideLoading() 
  21. }) 

修改數(shù)據(jù)

  1. db.collection(dbCollectionName).doc("5f79fdb337d16d0001899566").update(formdata).then((res) => { 
  2.   uni.showToast({ 
  3.    icon: 'none'
  4.    title: '修改成功' 
  5.   }) 
  6.   // 處理數(shù)據(jù) 
  7.  
  8.  }).catch((err) => { 
  9.   uni.showModal({ 
  10.    content: err.message || '請(qǐng)求服務(wù)失敗'
  11.    showCancel: false 
  12.   }) 
  13.  }).finally(() => { 
  14.   uni.hideLoading() 
  15.  }) 

刪除數(shù)據(jù)

  1. const db = uniCloud.database(); 
  2. db.collection("table1").doc("5f79fdb337d16d0001899566").remove() 

查詢數(shù)據(jù)

單表查詢

  1. db.collection('list'
  2.   .where('name == "hello-uni-app"'
  3.   .get() 
  4.   .then((res)=>{ 
  5.     // res 為數(shù)據(jù)庫(kù)查詢結(jié)果 
  6.   }).catch((err)=>{ 
  7.     // err.message 錯(cuò)誤信息 
  8.     // err.code 錯(cuò)誤碼 
  9.   }) 

聯(lián)表查詢

table_name_a是主表,table_name_b是副表,關(guān)聯(lián)查詢時(shí)候,需要將主表放到第一位。需要在主表的主鍵字段增加映射關(guān)系,就是下面的foreignKey,表示這個(gè)字段映射到table_name_b表的_id字段

  1. "plant_breed_classify_code": { 
  2.    "bsonType""string"
  3.    "description""養(yǎng)殖類型編碼"
  4.    "trim""both"
  5.    "foreignKey""table_name_b._id" // 使用foreignKey表示,此字段關(guān)聯(lián)s-plant-breed-classify表的_id。 
  6.   }, 

  1. db.collection('table_name_a,table_name_b'
  2.  .where({ 
  3.   create_by:userId 
  4.  }) 
  5.  .field('plant_breed_classify_code{classify_name}'
  6.  .groupBy('plant_breed_classify_code'
  7.  .groupField('count(*) as total'
  8.  .get() 
  9.  .then((res) => { 
  10.      const data = res.result.data; 
  11.      if (data) { 
  12.          //處理數(shù)據(jù) 
  13.      } 
  14.  }).catch((err) => { 
  15.      uni.showModal({ 
  16.          content: err.message || '請(qǐng)求服務(wù)失敗'
  17.          showCancel: false 
  18.      }) 
  19.  }).finally(() => { 
  20.      uni.hideLoading() 
  21.  }) 

 uniCloud的優(yōu)缺點(diǎn)

結(jié)合我最近使用的情況,來(lái)談?wù)勎艺J(rèn)為的uniCloud的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • 簡(jiǎn)化了傳統(tǒng)開發(fā)模式,提高了輕應(yīng)用的開發(fā)效率
  • 一定程度上降低了企業(yè)的人工成本,后端可以少招人....
  • 降低了前端人員學(xué)習(xí)壓力,實(shí)現(xiàn)某一部分的全棧夢(mèng)
  • 由于目前serverless處于免費(fèi)階段,可以為企業(yè)剩下服務(wù)器和運(yùn)維方面的成本

缺點(diǎn)

  • 官方文檔太亂,案例太少,不利于快速上手
  • 多表關(guān)聯(lián)查詢場(chǎng)景下不理想,尤其你正在開發(fā)一個(gè)統(tǒng)計(jì)頁(yè)面
  • 云數(shù)據(jù)目前不支持刪除數(shù)據(jù),需要api調(diào)用才可以
  • 假如你習(xí)慣了關(guān)系型數(shù)據(jù)庫(kù),習(xí)慣了navicat,你會(huì)發(fā)現(xiàn)在這里搞數(shù)據(jù)會(huì)非常別扭
  • 沒有類似MySQL的分析器,不太容易發(fā)現(xiàn)你的查詢語(yǔ)句哪里出錯(cuò)

總結(jié)

通過(guò)最近使用uniCloud的情況來(lái)說(shuō),如果你是一個(gè)前端人員,還是挺爽的。相對(duì)于以往的小程序需要接入后臺(tái)項(xiàng)目,后臺(tái)項(xiàng)目又需要和微信服務(wù)器交互模式來(lái)說(shuō),uniCloud算是一次質(zhì)的飛躍。免費(fèi)代表著還在推廣階段,所以很多功能需要完善,當(dāng)然天下沒有免費(fèi)的午餐,收費(fèi)時(shí)代早晚會(huì)到來(lái),別被套牢就行。

 

責(zé)任編輯:姜華 來(lái)源: 愛寫B(tài)ug的麥洛
相關(guān)推薦

2021-08-26 09:31:40

Nacos配置注冊(cè)

2023-03-05 18:40:39

iptables防火墻軟件

2021-06-29 08:45:55

邏輯變量法函數(shù)

2024-04-16 08:20:01

React屬性鉆取狀態(tài)管理

2021-08-26 05:01:40

0x3f 數(shù)組算法

2022-11-09 08:05:15

JavaScriptsuper()

2021-12-29 07:18:20

重構(gòu)工具資源

2020-09-08 06:54:29

Java Gradle語(yǔ)言

2023-07-06 13:56:14

微軟Skype

2022-05-18 16:35:43

Redis內(nèi)存運(yùn)維

2020-10-23 07:00:00

C++函數(shù)

2018-04-27 09:22:21

數(shù)據(jù)存儲(chǔ)技巧

2022-08-25 10:37:00

CIOIT領(lǐng)導(dǎo)者

2022-06-27 07:50:16

鏈表節(jié)點(diǎn)測(cè)試

2022-10-19 15:20:58

pandas數(shù)據(jù)處理庫(kù)技巧

2018-06-07 13:17:12

契約測(cè)試單元測(cè)試API測(cè)試

2012-08-22 13:57:24

HybridHybrid開發(fā)

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久久久久久了 | 欧美日韩亚洲一区 | 国产毛片久久久久久久久春天 | 在线观看成年人视频 | 欧美一级免费看 | 久久精品a| 紧缚调教一区二区三区视频 | 免费毛片网站在线观看 | 国产激情在线播放 | 日韩精品一区二区三区在线观看 | 欧美区日韩区 | 中国一级大毛片 | 精品久久久久久红码专区 | 国产永久免费 | 超碰免费在 | 天堂精品 | 亚洲欧洲一区 | 日韩午夜网站 | 久久精品一区二区三区四区 | 国产在线播放一区二区三区 | 美女黄色在线观看 | 国产精品一二三区 | 色偷偷噜噜噜亚洲男人 | 精品1区2区3区4区 | 自拍偷拍第一页 | av官网在线 | 91网站视频在线观看 | 日韩色综合 | 真人女人一级毛片免费播放 | 韩国精品在线观看 | 99热精品国产 | 日本精品久久久久久久 | 亚洲精品女人久久久 | 国产视频精品在线观看 | 黄色三级免费 | 久久久九九九九 | 精品视频网 | 成人一区二区在线 | 亚洲a视频 | 老司机67194精品线观看 | 狠狠爱视频 |