最新时时彩平台演示 中新时时彩要不要交税 新时时彩三星组六技巧 最新时时彩源码修改 新时时彩遗漏走势图 新时时彩预测方法 新时时彩计算器 新时时彩开奖皇冠网址 新时时彩组三怎么玩 最新时时彩后四稳赚 新时时彩官方开奖网站 新时时彩人工计划 新时时彩开奖漏洞 新时时彩最长遗漏 新时时彩中奖顺序 360新时时彩技巧-轴承资讯 新时时彩停售 最新时时彩杀号高手 新时时彩三星走势图 玩新时时彩有什么技巧 新时时彩3星和尾走势 新时时彩后一公式 重新时时彩网站 新时时彩遗漏统计软件 吉林新时时彩走势图 新时时彩中奖怎么查 新时时彩是什么地方 新时时彩中奖怎么查 新时时彩下载手机版下载 新时时彩贴吧 最新时时彩计划软件 大赢家新时时彩 新时时彩注册送彩金 新时时彩组选投注技巧 新时时彩走势图 新时时彩万能5码 新时时彩模拟 新疆新时时彩往期开奖号码 新时时彩的玩法 新时时彩稳赚计划 最新时时彩70注 新时时彩返奖率 新时时彩杀号定胆360 新时时彩后二杀号 新时时彩振幅走势 最新时时彩教程 新时时彩后台软件 新时时彩几点开始 新时时彩日赚几百 最新时时彩注册送20
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

小程序·云开发初级FAQ

Rolan 2019-1-3 00:29

之前参加过小程序·云开发相关的分享, 在团队内进行了推广, 感觉官方的宣传不够直接, 还是太玄乎了, 这是收集了猫眼娱乐前端工程师的问题, 和相关答疑, 部分问题是和小程序·云开发的同学沟通过的结论主要面向初级前 ...

之前参加过小程序·云开发相关的分享, 在团队内进行了推广, 感觉官方的宣传不够直接, 还是太玄乎了, 这是收集了猫眼娱乐前端工程师的问题, 和相关答疑, 部分问题是和小程序·云开发的同学沟通过的结论

主要面向初级前端工程师, 快速了解云开发是怎么回事, 不涉及复杂代码

  • 有小程序开发经验
  • 理解 server 端基础, 并有少量node.js server端经验

1. 小程序云开发是什么?

官方文档, 不用着急点, 下面FAQ未提及的可以进来看

主要提供两种能力

1.1 提供持?#20040;?#20648;

持?#20040;?#20648;是指删除微信或更换?#21482;?#21518;, 用户重新打开我们的小程序, 仍旧能让用户看到自己的信息

主要通过两种存储容器

  1. 类mangodb的 数据库存储 , 比如用户提交的文章
  2. 文件存储 , 比如用户上传的照片

1.2 提供简化的server端编程环境

云函数

简单解释: 在小程序端写上函数名 + 参数, 就能调用远端的一个函数

为什么不直接写到小程序端, 而要绕弯子要这样? 最常见的原因是:

  1. ?#34892;?#19994;务逻辑涉及 保密信息 , 不能写在小程序上, 比如: 价格计算, 交易流程
  2. ?#34892;?#25805;作需要 更高的权限 , 比如: 管理员可以删除所有用户的数据.
  3. 桥接到第三方接口, 小程序https接口域名数量超限, 或者第三方接口不是https接口.

2. 直接操作数据库会不会有安全问题

云开发的数据库和传统数据库?#34892;?#21306;别, 他会自动给每个数据表增加一个 创建人字段 + 表权限设置 , 后续的操作都会基于这些约束, 一般的策略是

  1. 每个用户只能修改自己创建的信息, 比如自己发的文章
  2. 每个用户只能读取其他用户的信息, 但不能修改, 比如其他人发的文章
  3. 每个用户只能读取公共信息, 但不能修改, 比如公告信息, 一般会允许通过管理端修改

3. 直接操作文件存储会不会有安全风险

类似上一个数据库的权限, 通过 文件创建人 + 文件夹权限设置

文件的操作使用服务端生成的唯一ID, 不会被穷举

4. 别人会不会调用我的云函数

不会, 云函数的网络协议是?#25509;?#30340;, 并且有加上数字签名验证

这套机制是在微信app内部实现的, 除非微信这套机制?#36824;?#30772;

5.云函数是用js写么, 运行环境是什么?

是js, 运行环境是nodejs 8.9, 支持async await关键字

目前还不支?#20013;?#25913;运行环境, 未来应?#27809;?#25903;持自选环境

6. 使用了云开发, 是不是就不能使用自己的服务端了

不是, 两个可以并存, 就当是看起来不一样的异步调用就好

// 云开发相关api
wx.cloud.xxxx()

// 自有服务
wx.request()
复制代码

由于是nodejs的运行环境, 所以云函数可以使用http tcp模块, 这样就能通过云函数转发请求到任意域名, 不受小程序端的请求域名限制

7. 典型的云函数是什么样的?

// 小程序端, 调用
wx.cloud.callFunction({
    name: 'foo',
    data: { a: 1, b: 2 },
    success: function(res) {
        console.log(res.result)
    }
)

// 云函数, 声明
// cloudfunctionRoot/functions/foo/index.js
exports.main = async function(e, ctx) {
    return e.a + e.b
}
复制代码

函数名和目录名?#26434;? 根路径在project.config.json中定义, 详细参考官方文档中的"我的第一个云函数"

8. 云函数还有什么特殊能力?

直接获取用户的openId

// index.js
exports.main = (event, context) => {
  return event.userInfo
}
复制代码

如要获取用户头像 昵称等信息, 还是需要在小程序端进行授权才行

9. 云函数需要我们考虑服务器运维的工作么

不需要, 只要开发好上传就行, 运行环境是独立 封闭的, 类 CentOS 7 的环境

10. 开发时和线上环境有隔离么

提供1个生产环境, 和1个开发环境, 存储和云函数都是独立的

这意味着多个开发者并行开发协作可能会?#34892;?#23567;麻烦, 同时只能有一套代码在开发环境, 这就只能通过一些工作流程?#32423;? 比如收敛上传权限, 每日自动部署. 应用类似git-flow的分支策略

11. 云开发是否提供有定位 地理信息 支付相关业务的支持

暂时没有, 这方面的需求还是很强的, 毕竟小程序是提倡线下扫码, 扫码后还是期望能够获取到附近的相关信息, 简单的比如城市 区划, 详细的比如商家

小程序云开发的同学目前还在收集这方面的需求

12. 什么版本的基础库支持云开发

基础库 2.2.3 之后开始支持, 但?#26434;?#26087;版本可以加个配置也能支持

app.json/game.json

{
  "cloud": true
}
复制代码

13. 费用呢

目前免费, 正在调研计费策略, 可能?#21069;?#29031;调用量, 存储量计费

结语

目前看云开发基?#22659;?#22411;, 典型的业务都能覆盖到了, 还有一些周边的东西需要完善

比如数据库存储这边的批量操作, 事务的支持, 存储容器还可以在增加一些, 比如消息队列, 其它的杂项如任务调度, 开发者环境隔离, 数据迁移升级

另一方面, 作为前端工程师, 技术能力边界的?#30001;? 并不完全意味着获益, 还包括背景知识成本, 只有学习好这些, 才能驾驭好新的能力, 比如领域建模, 设计模式, 封装和隔离.

大家好,我是猫眼娱乐前端技术专家-曹宇,我主要负责猫眼娱乐电影选座交易业务前端, 除了大家能看到的各种 Web 页面, 还有小程序端和供应链端. 同时负责猫眼内部的前端基础设施, 质量保证相关工作。

猫眼电影小程序从零发?#27807;?#31080;务类别第一, 主要关注点都集中在线上, 这次分享的是一个线上 线下联动的活动, 从开发到上线后遇到的一些有趣的事情, 除了小程序技术的深度应用, 还包括产品 运营层面的思考.

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: 曹宇 来自: 掘金
新时时彩软件