大家好,我是鱼皮,近几年腾讯云开发技术持续发力,更新升级速度非常迅猛,功能也是越来越强大易用,公司最近也搞了场云开发应用竞赛,见证云开发的破茧化蝶。
还不了解云开发的同学,可以阅读这篇文章:感谢,我升高啦!
我的作品【编程导航】也有幸拿到了一等奖!我盲猜很大一部分原因是该网站的实现几乎用到了云开发所有的主流功能,应用大赛不就讲究个技术应用么?合理应用技术去解决系统中的问题。
下面就给大家分享下云开发在编程导航中的应用吧。
P.S 编程导航是一个帮大家发现优质编程资源的网站,https://www.code-nav.cn
云开发在编程导航中的应用
该项目已开源,对想学习云开发的朋友有实践意义。
地址:https://github.com/liyupi/code-nav
先放一张全部功能的思维导图:
基础能力
云数据库
存储编程导航网站的业务数据,比如用户、资源等。通过在云开发网页控制台配置索引来加速查询。
登录鉴权
用户未登录时,使用云开发 匿名登录 访问云开发资源;当用户输入动态码登录后,使用 自定义登录 实现用户登录态的前后端 token 存储和交互。
云函数
编程导航业务后台采用 serverless 架构,把后端打碎,每个接口都是一个云函数,独立部署。用于实现对数据库的增删改查、用户登录等功能。
通过云函数 定时触发器 实现用户排行周榜、月榜。
云存储
存储用户头像、资源图片等文件。
静态网站托管
一键部署编程导航静态网站,通过云开发提供的 CDN 加速网站的访问。
HTTP 访问服务
暴露云函数,使其可供其他服务器调用,并通过配置多个域名实现网站域名重定向。
云托管
以 Docker 容器集群的方式部署网站前端、微信公众号后台等服务。
安全规则
控制云开发资源的默认访问权限,保护数据安全,防止小贼偷家。
日志管理
云开发默认提供了日志记录,并且通过在云函数中使用日志 SDK 实现自定义分级日志。可以通过这些日志,定位故障、分析异常流量来源。
监控告警
通过在云开发网页控制台配置云函数等资源的监控告警规则,即时发现问题,保护业务。
API 能力
服务端 SDK 访问云函数
让多个零散的云函数能够互相调用,可用于访问公共云函数,比如发送系统消息、增加用户积分等。(类似微服务架构的公共服务)
数据库事务
支持提交和回滚,用于保证数据库一致性,防止用户发布资源后没有增加积分等问题。
聚合查询
云开发的数据库聚合查询能力非常强大,通过随机查询实现对资源的随机推荐;并通过流水线、关联查询提高查询的灵活性和效率,比如查询评论列表的同时关联查询用户头像、昵称等信息。
数据库实时推送
这是大家经常好奇的 socket 长连接解决方案,云开发允许用户实时监听数据库字段的变化,透明化底层 socket,从而实现网站实时公告、实时聊天室等功能。
扩展能力
云 CMS 内容管理系统
提供了集中式可视化数据管理功能,便于管理员定义数据模型、全局管理数据,非常方便!
云 Redis
云开发支持内网访问 Redis 中间件,非常安全。我们编写了 Redis 内部公共服务,通过 setnx 等方式对接口进行限流,保证接口安全。
工具插件
CloudBase CLI
直接在本地一行命令就能快捷发布静态网站、部署云函数、触发器等。
CloudBase Framework
和 CLI 类似,使用 CloudBase Framework 命令工具,一键部署云开发完整应用,比如静态网站、云托管容器等。
其他能力
云环境共享
最开始编程导航只有网站,后来开发了小程序。总不能再单独给小程序开发一套接口(也就几十个)、提供一套数据吧?
所以我们通过云环境共享能力,直接复用 web 项目的接口、数据等资源。
以上就是本期分享。最后给大家分享一些免费的云开发和小程序教程,真心好学好用~
指路:跑了,留下 6T 的资源!
我是如何从零开始通过自学,拿到腾讯、字节等大厂 offer 的,可以看这篇文章,不再迷茫!
我学计算机的四年,共勉!
最后还请朋友们给本文 点赞 + 收藏 支持下啦 ❤️