[TOC]
## 4.1 协同工作
多数情况下,一个团队多人同时参与同一个小程序项目,每个角色所承担的工作或者权限不一样。
### 4.1.1 人员组织结构和权限分配
![虚拟小程序项目组](https://box.kancloud.cn/31960612215aabcafc3f24bc01ba08cf_783x235.png)
:-: 图5-1 虚拟小程序项目组
* **项目管理**成员,负责统筹整个项目的进展和风险、把控小程序对外发布的节奏,
* **产品组**,提出需求,
* **设计组**,与产品讨论并对需求进行抽象,设计出可视化流程与图形,输出设计方案。
* **开发组**,依据设计方案,进行程序代码的编写。代码编写完成后,产品组与设计组体验小程序的整体流程。
* **测试组**,编写测试用例并对小程序进行各种边界测试。
![提需求到发布小程序的流程](https://box.kancloud.cn/0db4748606290e1cd067b65ea00cbe47_907x124.png)
:-: 图5-2 提需求到发布小程序的流程
:-: 表5-1 小程序平台的7种权限
| 权限 | 说明 |
| --- | --- |
| 开发者权限 | 可使用小程序开发者工具及开发版小程序进行开发 |
| 体验者权限 | 可使用体验版小程序 |
| 登录 | 可登录小程序管理后台,无需管理员确认 |
| 数据分析 | 使用小程序数据分析功能查看小程序数据 |
| 开发管理 | 小程序提交审核、发布、回退 |
| 开发设置 | 设置小程序服务器域名、消息推送及扫描普通链接二维码打开小程序 |
| 暂停服务设置 | 暂停小程序线上服务
:-: 表5-2 虚拟组织成员的权限分配
| 成员 | 权限分配 |
| --- | --- |
| 项目管理组成员 | 拥有所有权限 |
| 开发组成员 | 开发者权限 / 体验者权限 / 数据分析 |
| 产品组成员 | 体验者权限 / 数据分析 |
| 测试组成员 | 体验者权限 |
>[warning] 项目管理者控制整个小程序的发布、回退、下架等敏感操作,不应把敏感操作的权限分配给不相关人员。
### 4.1.2 小程序的版本
一般的软件开发流程,开发者编写代码自测开发版程序,直到程序达到一个稳定可体验的状态时,开发者会把这个体验版本给到产品经理和测试人员进行体验测试,最后修复完程序的Bug后发布供外部用户正式使用。小程序的版本根据这个流程设计了小程序版本的概念,如表5-2所示。
:-: 表5-3 小程序的版本
| 权限 | 说明 |
| --- | --- |
| 开发版本 | 使用开发者工具,可将代码上传到开发版本中。 开发版本只保留每人最新的一份上传的代码。点击提交审核,可将代码提交审核。开发版本可删除,不影响线上版本和审核中版本的代码。|
| 体验版本 | 可以选择某个开发版本作为体验版,并且选取一份体验版。|
| 审核中版本 | 只能有一份代码处于审核中。有审核结果后可以发布到线上,也可直接重新提交审核,覆盖原审核版本。 |
| 线上版本 | 线上所有用户使用的代码版本,该版本代码在新版本代码发布后被覆盖更新。|
项目是协同开发的模式,一个小程序可能同时由多个开发者进行开发,往往开发者在小程序开发者工具上编写完代码后需要到手机进行真机体验,所以每个开发者拥有自己对应的一个开发版本。因为处于开发中的版本是不稳定的,开发者随时会修改代码覆盖开发版。
为了让测试和产品经理有一个完整稳定的版本可以体验测试,小程序平台允许把其中一个开发版本设置成体验版。
因此建议在项目开发阶段特殊分配一个开发角色,用于上传稳定可供体验测试的代码,并把他上传的开发版本设置成体验版。
开发者需要真机调试开发版本时,可以点击开发者工具的`预览`按钮,此时开发者工具会打包当前项目,并上传到微信服务器生成一个二维码,开发者使用当前开发身份的微信扫描二维码就可以在手机上体验对应的开发版本,如图5-3所示。
![](https://box.kancloud.cn/de64f7092f19a31e844fee630d0e8906_773x567.png)
:-: 图5-3 预览小程序开发版
在小程序管理平台上可以选取某个开发版作为体验版本,操作成功之后可以得到一个体验版的二维码,当前项目有权限的体验者均可用其对应的微信号进行扫码体验。
- 微信
- 小程序
- 1. 代码组成
- 1.1 JSON配置--'*.json'文件
- 1.2 WXML模板--'*.wxml'文件
- 1.3 WXSS样式--'*.wxss'文件
- 1.4 JavaScript脚本--'*.js'文件
- 2. 客户端运行
- 2.1 逻辑层和渲染层
- 2.1.1 逻辑层--App Service
- 2.1.2 渲染层/视图层--View
- 2.1.3 通信模型
- 2.1.4 数据驱动
- 2.1.5 双线程下的界面渲染
- 2.2 程序与页面
- 2.3 组件
- 2.4 API
- 2.5 事件
- 2.6 兼容
- 3. 应用设计
- 3.1 Flex布局
- 3.2 界面常见的交互反馈
- 3.3 发起HTTPS网络通信--wx.request
- 3.4 微信登录
- 3.5 本地数据缓存
- 3.6 设备能力
- 4. 小程序的协同工作和发布
- 4.1 协同工作
- 4.2 用户体验审视
- 4.3 发布
- 4.4 运营
- 5. 底层框架
- 5.1 双线程模型
- 5.2 组件系统--Exparser框架
- 5.3 原生组件
- 5.4 小程序与客户端通信原理
- 6. 运行和性能优化
- 6.1 启动--代码加载
- 6.2 页面准备
- 6.3 数据通信
- 6.4 视图层渲染
- 6.5 原生组件通信
- 7. 小程序基础库的更新迭代
- 8. 微信开发者工具
- 腾讯云支持
- wafer
- Wafer2 快速开发 Demo - PHP
- WXAPI
- api列表