# 晓实战 \| 2 周开发一个小程序，提升开发效率的秘密是？

- 作者：知晓程序
- 发布时间：2017-10-28 12:00
- 原文：https://www.ifanr.com/minapp/925033

![](https://s3.ifanr.com/wp-content/uploads/2017/10/Artboard-2-1-1024x640.jpg)

**知晓程序注：**

「晓实战」是知晓程序推出的全新栏目。

我们会定期邀请优秀的开发者，从实践的角度，亲自分享他们使用知晓云（cloud.minaapp.com）开发的实战经验，如果你也想分享你的小程序实战经验，欢迎加入「晓实战」，添加客服晓小云（ID：minsupport）投稿即可。

---

文 \| 八哥

大家好，我是「Scrum 番茄闹钟」小程序开发者。基于知晓云 BaaS 服务，用 2 周的时间，开发了一个简易的番茄闹钟。

### 开发小程序简单吗？

**虽然腾讯提供了小程序解决方案，但是对于普通开发者、小企业的开发人员来说依然很麻烦**，光是后端就包括购买域名，网站备案、部署 SSL 证书，安装会话服务器的操作。

业务逻辑上要使用数据库，缓存服务器；而购买、搭建和配置这些内容需要花费不少时间和成本。

以下列出当前开发小程序遇到瓶颈：

- 要编写后台代码实现业务逻辑，最简单的 CRUD 也要写不少代码
- 要连接数据库，还要熟悉 SQL 语句，增加学习成本
- 会话服务和文件上传保存，配置和编写代码复杂，而且安全性不高
- 原生的微信小程序 API 开发，效率低下。
- 用户登录和微信支付，编写和调试代码复杂

但我要在这里说，**开发小程序，其实很简单**！

小程序开发要趁早，知晓云（cloud.minapp.com）帮你无烦恼。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/WX20171018-100833.jpg)

没错，**知晓云对于初级开发者来说，门槛的确很低**，它提供五大核心功能，接入知晓云 SDK，可以大幅度提高开发效率，同时能满足业务数据增删改查，用户登录，用户支付、内容展现等功能。

同时，它本身是一款 BaaS（Backend as a Service）服务，管理平台提供可视化界面管理数据、用户和文件等内容。![](https://s3.ifanr.com/wp-content/uploads/2017/10/image4.jpg)

![](https://s3.ifanr.com/wp-content/uploads/2017/10/image-5-1.jpg)

基于知晓云的这些功能，我做了一个简易的小程序—— 「Scrum 番茄闹钟」。

> Scrum 番茄闹钟介绍：Scrum 强调番茄工作法，就是在设定工作时长完成某项任务，完成之后可以休息几分钟，并且完成任务之后，可以获得一枚番茄。
> 
> 每天通过积累番茄，达到敏捷自我提升。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/28938eccgrdkwvctzr4eq2hqvy80ojx3.png)

「Scrum 番茄闹钟」小程序使用链接  
<https://minapp.com/miniapp/4487/>

在 Scrum 番茄闹钟开发过程中，我主要用到数据和用户两大模块。

接下来，我将通过实例，介绍知晓云数据和用户模块，如何提升开发和发布效率。比如，在 2 周以内开发出这款小程序。😁

### 实例演示

#### 1. 用户功能

应用需要用户授权之后才能使用。**通过以下几行代码，就可以完成知晓云 SDK 引入和初始化工作，以及静默登录功能**。

当然，在此之前，我们首先要去文档下载对应版本的 SDK 文件。

```
// 引入 BaaS SDK
require('./utils/sdk-v1.0.11.js')
  // 从 BaaS 后台获取 ClientID
let clientId = '应用的ClientID'
let userId = this.getUserId();
wx.BaaS.init(clientId)
if (!userId) {
  wx.BaaS.login().then(res => {
    console.log('BaaS is logined!')
  }).catch(err => {
    console.dir(err)
  })
}
```

在知晓云后台中，我们可以在「应用」-「设置」-「小程序设置」中，找到 ClientID。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/image6.jpg)

相比原生的 API ，知晓云简单明了、代码操作少。

用户登录成功之后，就获取到了用户信息列表。可以根据自己的业务需求，对用户分组和设置不同的权限。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/image7.jpg)

#### 2. 数据功能

获取列表数据，因为写入的时候，数据已经保存到知晓云后台，所以我们通过 SDK 中的方法获取数据列表。代码如下：

```
var that = this;
let userId = app.getUserId();
let tableID = 1318;
let objects = {
  tableID,
  userId: userId,
    order_by: "-created_by"
}
wx.BaaS.getRecordList(objects).then((res) => {
  // success
  for (var i = 0; i < res.data.objects.length; i++) { res.data.objects[i].endTime = new Date(res.data.objects[i].endTime).toLocaleDateString() + " " + new Date(res.data.objects[i].endTime).toLocaleTimeString(); } that.setData({ records: res.data.objects }); }, (err) => {
  // err
})
```

![](https://s3.ifanr.com/wp-content/uploads/2017/10/image-8-1.jpg)

**知晓云支持通过 `limit` 和 `offset` 来进行分页、也支持精确查询和模糊查询，通过设置 `order_by` 排序功能**。关于更多数据操作，可以到知晓云的官方文档进行查询。

关注「知晓程序」微信公众号，回复「知晓云」，获取知晓云开发文档地址。

### 总结

通过这 2 周的开发，在接入知晓云之后，我只要更多地关注小程序开发的业务逻辑，知晓云本身提供的 5 大模块就可以满足一般的小程序开发。

期待后续知晓云支持 WebSocket 等特性，到那时候，知晓云的应用场景就更广了。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/gouzi1018.jpg)

**关注「知晓程序」公众号 👇**

- 在微信后台回复「**开发**」，获取小程序开发全套经验。
- 在微信后台回复「**666**」，加入知晓开发联盟，有机会与作者同群交流噢。

![](https://s3.ifanr.com/wp-content/uploads/2017/09/minapp-qrcode.gif)
