在Axe
看来, 移动应用的架构中,一个极其重要的部分就是 DevOps
的思想, 所以我们的Axe
系统需要不断地去优化开发流程,提高开发效率,而不是固步自封在一个通信组件上。
完成整个系统的第一个版本的开发
- 自动化测试: 为测试功能提供一些
mocker
方法, 同时构建脚本添加上自动化测试的内容, 对于业务模块,测试模块接口,mock
依赖接口, 同时设定截图实际,整理截图和测试输出,制作测试报告。
- 强类型检测 : 虽然我们是基于URL的方案,参数多以
Key-Value
的形式声明和设置,但是我们也要进行强类型的检测,将问题在编译阶段暴露出来。 主要的思路是: 使用一种简单的方式声明业务组件接口,然后自动化生成相应的头文件,以声明每一个接口的入参和返回值 - 更好的去管理接口 : 尝试在管理平台上,以一种更人性化的方式去展示接口,并记录接口历史
- 动态化支持:
h5
模块和rn
模块接入到管理系统,制作两者打离线包的脚本,最关键的是API
文件问题,自动化转换js
和oc
的头文件,并自动化的制作一个cocoapods
依赖和提交一个npm
包。 - 优化js桥接中, 大型数据的传递效率。
一些近期的优化和BUG,直接放到这个仓库的issue中记录 ,以激励解决效率,而一直遗留的坑,才放文档里记录。
- Android支持 (发布v1.0版本)
- 单元测试扩展, 自动化测试时,添加 Instruments 中常用的一些检测。
- js模块的多页面应用支持
- payload数据的 不可变, 是复制的对象。
- Ground 项目也有API文件,以记录一些公共的事件、路由和数据, 公共的
Model
类型。 - 资源文件的管理示例与规范。
- 项目结构优化,在
Axe
文件夹下,将自动产生内容放到一个文件夹里,不然axe文件夹 docker
优化: 提供文档修改支持,将文档复制到/axe
目录,以支持自定义文档。- 优化APP接入业务组件的流程,添加 开发阶段与发布阶段的切换,以使开发阶段已有模块使用prd版本,发布阶段所有模块使用dev版本。
- 考虑在某个阶段清理 组件的开发版本,只保留发布版本。
- Data : 尝试对数据提供监听。
- Data : 考虑对传输文件的优化, 小型文件使用
base64
传输,大型文件使用 本地文件 ? - �fastlane工具 : 支持动态库和静态库两种组件模式,处理动态库的dSYM文件。
- 组件模版 : 优化单独运行, 单独运行时,不使用 pod管理,而是使用Xcode的联编,以避免文件增删时,需要重新执行
pod install
- fastlane工具: 优化代码, 当前代码已经有些臃肿,考虑拆分成多个Action.
- fastlane相应命令执行前,要完整的检测依赖程序的安装情况,同时要在文档中明确记录所有的依赖程序的安装。
- 自动化测试文档中要简单介绍一下Appium ,以及iOS上的真机测试情况。
- 自动化测试 : 考虑更进一步的assert机制,即在测试报告中,显示assert的内容。
- 全部js模块 : 使用ES6 , 使用 typescript, 优化代码。
- 自动化测试 : 考虑 一个用例完成后,是否要使应用恢复到初始状态,去除本次测试的影响。
- 自动化测试 : 多设备、多server的处理;权限弹窗处理 ;BDD优化
- 自动化测试 : 电量消耗的监控
- 自动化测试 : Leaks测试的稳定性问题。
- Service : 考虑在组件化交互中,引入一种新的模式,叫做service , 即一个请求以获取不定数量的返回值。
- Axe: 接入Service后,要考虑提供一个组件管理模块,不能只依赖动态路由来处理。
- 管理平台 : 添加消息机制, 一些打包或者变更时,通过消息去通知依赖方。
- Axe-js : Map 类型,Model类型区分后,考虑支持嵌套。
- 自动化测试 : traceUtil 的安装优化。
- axe-react : closePage, 支持传入参数 ,支持一次关闭多层页面。
- react-native 和 h5 跳转时, 支持title参数,以提前设置标题,避免标题为空。
- axe-js、axe-react:
data
提供 changeModel接口, 设置与修改有不同,设置必须全key
值,而修改只需要修改单独的内容。