云開發(fā)是啥?看看它在編程導(dǎo)航項(xiàng)目的實(shí)踐
大家好,我是魚皮,近幾年騰訊云開發(fā)技術(shù)持續(xù)發(fā)力,更新升級(jí)速度非常迅猛,功能也是越來越強(qiáng)大易用,公司最近也搞了場云開發(fā)應(yīng)用競賽,見證云開發(fā)的破繭化蝶。
還不了解云開發(fā)的同學(xué),可以閱讀這篇文章:感謝,我升高啦!
我的作品【編程導(dǎo)航】也有幸拿到了一等獎(jiǎng)!我盲猜很大一部分原因是該網(wǎng)站的實(shí)現(xiàn)幾乎用到了云開發(fā)所有的主流功能,應(yīng)用大賽不就講究個(gè)技術(shù)應(yīng)用么?合理應(yīng)用技術(shù)去解決系統(tǒng)中的問題。
下面就給大家分享下云開發(fā)在編程導(dǎo)航中的應(yīng)用吧。
P.S 編程導(dǎo)航是一個(gè)幫大家發(fā)現(xiàn)優(yōu)質(zhì)編程資源的網(wǎng)站,https://www.code-nav.cn
云開發(fā)在編程導(dǎo)航中的應(yīng)用
該項(xiàng)目已開源,對(duì)想學(xué)習(xí)云開發(fā)的朋友有實(shí)踐意義。
地址:https://github.com/liyupi/code-nav
先放一張全部功能的思維導(dǎo)圖:

基礎(chǔ)能力
云數(shù)據(jù)庫
存儲(chǔ)編程導(dǎo)航網(wǎng)站的業(yè)務(wù)數(shù)據(jù),比如用戶、資源等。通過在云開發(fā)網(wǎng)頁控制臺(tái)配置索引來加速查詢。

登錄鑒權(quán)
用戶未登錄時(shí),使用云開發(fā) 匿名登錄 訪問云開發(fā)資源;當(dāng)用戶輸入動(dòng)態(tài)碼登錄后,使用 自定義登錄 實(shí)現(xiàn)用戶登錄態(tài)的前后端 token 存儲(chǔ)和交互。
云函數(shù)
編程導(dǎo)航業(yè)務(wù)后臺(tái)采用 serverless 架構(gòu),把后端打碎,每個(gè)接口都是一個(gè)云函數(shù),獨(dú)立部署。用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的增刪改查、用戶登錄等功能。
通過云函數(shù) 定時(shí)觸發(fā)器 實(shí)現(xiàn)用戶排行周榜、月榜。

云存儲(chǔ)
存儲(chǔ)用戶頭像、資源圖片等文件。

靜態(tài)網(wǎng)站托管
一鍵部署編程導(dǎo)航靜態(tài)網(wǎng)站,通過云開發(fā)提供的 CDN 加速網(wǎng)站的訪問。

HTTP 訪問服務(wù)
暴露云函數(shù),使其可供其他服務(wù)器調(diào)用,并通過配置多個(gè)域名實(shí)現(xiàn)網(wǎng)站域名重定向。

云托管
以 Docker 容器集群的方式部署網(wǎng)站前端、微信公眾號(hào)后臺(tái)等服務(wù)。
安全規(guī)則
控制云開發(fā)資源的默認(rèn)訪問權(quán)限,保護(hù)數(shù)據(jù)安全,防止小賊偷家。

日志管理
云開發(fā)默認(rèn)提供了日志記錄,并且通過在云函數(shù)中使用日志 SDK 實(shí)現(xiàn)自定義分級(jí)日志??梢酝ㄟ^這些日志,定位故障、分析異常流量來源。

監(jiān)控告警
通過在云開發(fā)網(wǎng)頁控制臺(tái)配置云函數(shù)等資源的監(jiān)控告警規(guī)則,即時(shí)發(fā)現(xiàn)問題,保護(hù)業(yè)務(wù)。

API 能力
服務(wù)端 SDK 訪問云函數(shù)
讓多個(gè)零散的云函數(shù)能夠互相調(diào)用,可用于訪問公共云函數(shù),比如發(fā)送系統(tǒng)消息、增加用戶積分等。(類似微服務(wù)架構(gòu)的公共服務(wù))
數(shù)據(jù)庫事務(wù)
支持提交和回滾,用于保證數(shù)據(jù)庫一致性,防止用戶發(fā)布資源后沒有增加積分等問題。
聚合查詢
云開發(fā)的數(shù)據(jù)庫聚合查詢能力非常強(qiáng)大,通過隨機(jī)查詢實(shí)現(xiàn)對(duì)資源的隨機(jī)推薦;并通過流水線、關(guān)聯(lián)查詢提高查詢的靈活性和效率,比如查詢評(píng)論列表的同時(shí)關(guān)聯(lián)查詢用戶頭像、昵稱等信息。

數(shù)據(jù)庫實(shí)時(shí)推送
這是大家經(jīng)常好奇的 socket 長連接解決方案,云開發(fā)允許用戶實(shí)時(shí)監(jiān)聽數(shù)據(jù)庫字段的變化,透明化底層 socket,從而實(shí)現(xiàn)網(wǎng)站實(shí)時(shí)公告、實(shí)時(shí)聊天室等功能。

擴(kuò)展能力
云 CMS 內(nèi)容管理系統(tǒng)
提供了集中式可視化數(shù)據(jù)管理功能,便于管理員定義數(shù)據(jù)模型、全局管理數(shù)據(jù),非常方便!

云 Redis
云開發(fā)支持內(nèi)網(wǎng)訪問 Redis 中間件,非常安全。我們編寫了 Redis 內(nèi)部公共服務(wù),通過 setnx 等方式對(duì)接口進(jìn)行限流,保證接口安全。
工具插件
CloudBase CLI
直接在本地一行命令就能快捷發(fā)布靜態(tài)網(wǎng)站、部署云函數(shù)、觸發(fā)器等。
CloudBase Framework
和 CLI 類似,使用 CloudBase Framework 命令工具,一鍵部署云開發(fā)完整應(yīng)用,比如靜態(tài)網(wǎng)站、云托管容器等。
其他能力
云環(huán)境共享
最開始編程導(dǎo)航只有網(wǎng)站,后來開發(fā)了小程序??偛荒茉賳为?dú)給小程序開發(fā)一套接口(也就幾十個(gè))、提供一套數(shù)據(jù)吧?

所以我們通過云環(huán)境共享能力,直接復(fù)用 web 項(xiàng)目的接口、數(shù)據(jù)等資源。
以上就是本期分享。最后給大家分享一些免費(fèi)的云開發(fā)和小程序教程,真心好學(xué)好用~
指路:跑了,留下 6T 的資源!(https://t.1yb.co/qOJG)
我是如何從零開始通過自學(xué),拿到騰訊、字節(jié)等大廠 offer 的,可以看這篇文章,不再迷茫!
我學(xué)計(jì)算機(jī)的四年,共勉?。?span id="s0sssss00s" class="font-size-16">https://t.1yb.co/q0mS)
最后還請朋友們給本文 點(diǎn)贊 + 收藏 支持下啦 ??
