01. 互联网公司的必备知识
01. 互联网公司的必备知识
目标
- 能说出项目上线发布的策略
- 能说出互联网公司开发使用什么模型及原因
互联网应用(京东)与传统行业应用(个税APP)更新速度一样吗?
- 迭代速度不同:开发模型不一样
- 传统行业:瀑布模型
- 互联网行业:敏捷模型
1. 开发模型
拓展阅读:
1. 瀑布模型
- 瀑布模型:
- 将一个项目作为一个整体,下一个环节依赖上一个环节的完成。
- 敏捷模型:
- 将一个项目拆分成多个子项目,每一个迭代周期完成一个子项目
2. 敏捷开发(scrum)模型
1.Scrum中的名词
scrum:是一个敏捷开发框架,是一个增量的,迭代的开发过程
迭代(sprint):项目开发过程中最小周期,每个sprint周期建议为2-4周。在scrum框架中,整个开发周期包括若干个小的迭代周期**(迭代周期:2-4周)**
产品功能列表(Backlog):在Scrum中,将产品Backlog按商业价值排出需求列表
2. Scrum三种角色
- Product Owner(产品负责人)
- 定义需求,进行需求排期
- Scrum Master(项目经理)
- 管理项目,确保Scrum顺利执行
- Dev Team(开发团队)
- 职责:实现客户需求
- 成员:开发、测试、UI
- 团队人数:一般5人到9人
- 开发测试比:一般为:3:1 ~ 5:1
3. 开发流程
- 产品规划需求 –> 开迭代计划会 –> 迭代开发需求 –> 发布评审会、反思会
产品规划产品功能列表(Backlog) -> 产品组织迭代计划会(拆分需求、确定迭代周期)
->
迭代开发(需求评审\开发\测试) -> 发布评审会(反思会)
2. 项目上线发布策略
100台服务器,发布新版本时,1次性更新100台服务器好,还是先更新几台验证一段时间好?
1. 项目上线发布策略
开发环境 -> 测试环境 -> (预发布环境) -> 灰度发布 -> 生产环境
- 灰度发布:部分用户可用,若有异常则回滚
- 线上发布:所有用户可用
2. 灰度发布
由于一个项目,一般线上部署时有多台服务器运行,所以灰度1台至3台, 看看新功能是否OK,如果失败则只需要回滚几台,比较方便。(让一部分人先用,没什么问题再全量发布)
- 注意点
- 预发布环境过后,正式发布生产环境之前, 一般会进行灰度发布
3. APP软件包类型
APP开发完成后,相应的开发人员会打出应用程序包,由测试人员安装测试
- Android:
.apk
格式测试包 - iOS:
.ipa
格式测试包 - harmonyOS:
.hap
格式测试包
注意:iOS APP和Android APP在界面上的功能一样,但实际上是两个完全独立的项目。
- 使用不同的语言
- 由不同的项目组成员进行开发
4. APP客户端(内部)发布平台
在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些应用内测分发平台。如:蒲公英、Testlink 等
操作步骤:
开发将应用测试包上传到这些平台上
平台可以生成对应的二维码
测试直接扫码进行应用安装
5. APP客户端(线上)发布平台
产品测试完成后要在线上进行发布,让用户进行下载使用。下面是安卓和IOS应用常用的发布平台和渠道
安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等;
iOS应用: 主要有 App Store、iTools
操作步骤:
开发者账号注册,申请在发布平台(各种应用商店)上架
针对不同的发布平台,在软件包中加入对应的平台ID(渠道ID),上传到发布平台
平台审核通过后,用户即可在应用商店中下载
注意事项:
一般线上发布过程,由开发人员负责。
在软件包加入平台ID后,上传到发布平台时,需要测试人员验证核心的业务功能
6. App版本格式
- 格式
- 主版本号.次版本号.修订号
- 版本号递增规则如下
- 主版本号:做了不兼容的 API 修改
- 次版本号:做了向下兼容的功能性新增
- 修订号:做了向下兼容的问题修正