文章目录
前言
一、APP应用架构
(1)APP应用架构
(2)app和wb应用框架的区别:
1.相同点:
- APP和web使用的后端服务器是相同的
- 前后端都使用HTTP协议进行交互(也有部分APP用socket来交互)
2.不同点:
- APP是C/S结构,web浏览器是B/S结构
- APP前后端交互的数据格式以json为主,web前后端交互的数据格式以HTML为主
解析:C/S结构和B/S结构
C/S结构是一种软件系统体系结构,这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。
B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。在手机或电脑上用浏览器上百度搜索、看新闻等就是在使用"B/S"结构进行数据交互。这种"B/S"结构的好处:维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以。
二、APP项目环境
2.1 后端项目环境
一般公司内部开发、测试人员会使用不同的环境,以隔离工作过程中彼此之间的干扰。同时,上线给用户使用的产品也会单独部署环境。
后端项目环境的几种环境
(1)开发环境
指开发人员进行开发时调试运行的环境
(2)测试环境
提供测试人员使用,用于测试人员执行测试,回归缺陷。
(3)预发布环境
1.定义:
这个环境中,一般会连接生产环境的数据库,使用生产环境的数据来进行测试。
2.目的:
测试最新的代码,对于线上复杂数据的处理情况
3.注意点:
- 预发布环境中只针对基本的业务进行测试
- 测试写的业务操作时,只能使用自己构造的数据
- 升级涉及到表结构变更时,可以将生产环境数据库数据备份到测试库中,升级并测试
(4)生产环境
指正式提供对外服务的环境,产品的实际用户使用的环境
注意:
预发布环境过后,正式发布生产环境之前,一般会进行灰度发布。灰度发布定义:
由于一个项目,一般线上部署时有多台机器运行,所以灰度1台至三台,看看新功能是否oK,如果失败则只需要回滚几台,比较方便。
灰度发布注意点:
- 一般情况下切一小部分流量
- 验证时间一周至一个月之间
- 如果运行无问题,在某个流量少的时刻,不停机更新服务器环境
- 如果运行有问题,尽快定位问题,并修复问题;如果问题比较严重,需要回滚代码,保障线上用户正常使用
2.2 前端项目环境
(1)前台发布测试环境
1.打包提测:
- IOS:IPA测试包
- Android:APK测试包
2.内测发布平台(例如):
- 蒲公英
- fir.im
(2)前台发布生产环境
1.线上发布平台:
IOS: appstore、itools
Android:豌豆荚、360、各大手机厂商的发布平台等。
2.线上发布流程:
- Apk/ipa测试完成
- 提交应用市场审核
- 添加渠道号
- 渠道包测试
- 正式上线
三、Scrum敏捷开发模型
3.1 Scrum敏捷模型基础介绍
敏捷开发模型定义:
是用户的需求进化为核心,采取迭代、循序渐进的方式来进行软件项目的开发。
- 即将项目切分为多个子项目,每个子项目单独发布,保证软件较早可用
- 及时收集用户反馈,调整未发布的项目,满足用户的实际需要
- 代表性的敏捷开发模型:scrum
Scrum的关键概念和三种角色
关键概念:
- sprint:一个最小的开发周期(一个迭代周期),需求分析-设计-编写-测试-发布
- backlog:产品功能列表。
scrum相关的3个角色:
- ProductManager产品负责人:收集需求,转化为产品功能列表,并进行优先级的排序
- Scrum Master项目经理:保障项目的稳定运行,排除干扰
- 项目组:
- 开发人员
- 测试人员
- UI设计人员
3.2 Scrum敏捷开发流程
scrum敏捷开发流程:
1、产品负责人收集需求,转化为产品功能列表
2、启动迭代的计划会,评审产品功能列表,挑选优先级高的需求作为迭代任务
3、项目组成员完成迭代任务的开发、测试工作
4、迭代结束后,开评审会,评估当前迭代任务的完成情况
5、开反思会。总结迭代过程中的好的与不好的地方。
下一迭代,循环2-5步