App内h5页面如何分版本?

周末和朋友喝酒聊天,聊着聊着就聊到了技术、代码、bug。工作中遇到什么问题,有什么压力,能一起聊聊挺好的,相互学习还能解压。

说起这个bug,我这朋友就很恼火。因为他一直都是保持着万2的bug率,这个指标从没打破。但是这次因为一次粗心,给打破了,太不应该了,话音刚落一杯扎啤进肚儿,常在河边走哪有不湿鞋呢。

我这哥们可是万2的bug率呀,能达到这水平已经是很厉害了。

那具体问题是什么呢?

他们司app的一个新版本的开发,新版本中原来h5页面改造成了native页面,需要在h5页面的入口上做版本判断,在新版上需要跳到native页面,否则还是跳转到h5页面。

  • 举个例子

新版本:10.1.0, 该版本中h5页面改造成了native页面。

伪代码如下

var version = getAppVerion()var verArr=version.split('.')if(verArr[0]>10 || (verArr[0]>=10 && verApp[1]>=1)){    //新版本会跳转到native页面    goNativePage('aaaPage')}

上面的逻辑没啥问题吧,但就是在自测的时候为了看下在低版本中是否正确,结果在后面忘记了把判断改回来。

if(verArr[0]>10 || (verArr[0]>=10 && verApp[1]>=0)){//测试低版本...}

虽然就是一个数字的差别,但是这影响还是很大的,直接导致测试流程走不下去了。

如果是你遇到了这个问题会采取怎样的方案,来避免这样问题呢?

  • 第一种

像这种特殊改动,将他记录下来,后面一定要想着改过来。

这种方法可能只对发生过这样问题的人才有用,没经历过的话很难有这个感触,而且后面还会有新人进来,他们也完全不了解这个方案的背景是什么,所以说这不算什么好方法,后面难免还会出现类似的问题。

即便不出现这样的问题,还会出现版本判断有误的问题。

  • 第二种

把版本判断的逻辑封装成一个通用的方法,避免多处重复写逻辑判断。

export function compareVersion(curver,targetver){    //比较逻辑}

这种方式确实可以减少出错的几率,但是你封装好了,还要通知大家都去用这个方法,大家还要记着有这个方法,有这个意识还好,但是新人呢?新人可能不知道有这个方法,还是会自己写逻辑,所以还是有可能出错。

  • 第三种

前面两种方案h5项目采用一套代码,不分版本

其实要想彻底避免这个问题,那就是不做版本判断,从规范和流程上来解决,也就是h5也分版本,跟app的版本走。

大概的说下实现思路:

app端内置一个版本配置文件,里面有h5页面地址配置

{    h5Url:'https://xxx.com/v10.1.0'}

然后定一个h5项目分支规范,上线分支必须按照这样的规范来定义

masterV10.1.0masterV10.0.0masterV9.0.0

最后h5项目在构建的时候会根据当前的分支名,获取到版本信息V10.1.0,然后在服务器创建该名称的文件夹,将所有内容打包到该文件夹内。

这样,h5项目也就彻底分了版本,再也不需要在代码中做版本判断了,然后落地成规范,形成文档,可以方便新人查看。

可能你觉得这样还不完美,比如重复资源、多版本如何维护等,当然在我看来这都不是什么问题,和这个隐患比起来那都可以忽略了。

当然我只是从我的角度来看的,所以不全面,也不完善,看到这里的老铁你对这个怎么看?留言聊聊吧。

如果不分版本你会怎么做,分版本你又会怎么做?

点赞是最大的支持 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz_jesse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值