海外各地区版本管理方法总结

这篇文章是自己尝试第一次写博客。

每一个开发海外的同学都经过的的痛。也许是海外开发很单调简单,导致很少看到有介绍海外版本如何管理的文章。但这一块的内容其实很有借鉴性。如果没有一个好的开端,后续的维护工作只能是借助人丁兴旺来了。所以我就想抛砖引玉一把,看是否能够有更多好的管理思路和想法来给于分享。海外版本管理的方法总结一般都是经验之谈。很少有有经验的人来管理。不要问我为什么,我只想说做完第一遍还能坚持做第二遍的是真爱。

圆规正传那么海外版本管理,到底都需要经历些什么,提炼出什么?这个过程也许是漫长的积累总结,也许是顿悟,也许是经验。无论哪种最后都绕不开各个地区差异这一核心问题。

差异内容大致可以分为三大块。

1.UI 相关

  • 语言

  · 语言的处理绕不开的一定是配置化,各个地区维护统一的key,加入中文备注。为了避免key的冲突,需要提前划分好区段,或者命名前缀。

  • 界面

   界面多语言抽取,这个最好在项目是刚开始的时候留有接口,后续扩展起来也就简单了,如果没有只能人工配置LanguageKey 或者通过写工具抽取配置文件的中的中文,并动态生成LangaugeKey。  

   登录,充值等界面的差异是必然的。每个代理都有自己的界面设计要求,所以针对这个只能老老实实的差异化。

  • 语法,数字,时间格式,文字长度可以归为一类

   这类差异处理,只能通过代码层面封装。针对各个地区提炼一套完整的差异化处理工具类。

2.底层相关

  • SDK

   SDK 是所有里面最复杂的部分,我们项目这一块也是在纠集了很多个部门一起来完成的。当然如果项目人员配置够,可以考虑自己来做。这一块的核心思路就是封装,抽象。提供给上层的接口不动。无论切换何种代理,登录都是调用统一接

  • 多语言

android 底层自带多语言处理功能,使用Strings.xml 配置到各个地区文件下就好。

  • 各代理配置

代理提供的参数配置,我们是配置在统一sdk后台系统中,在通过加壳打包的时候,把这些参数附带到对应的问价中。

  • 签名,icon, 等一些无法调和的矛盾。这类问题只能保持差异

3.地区分支管理策略

  • 地区管理,我们项目采用的是按版本为tag,每个版本统一管理策略。针对所有地区采用同一套代码,资源、表根据配置读取不同地区的,通俗的将就是1.2 1.5 1.8 这种的版本tag 为各个主干,每次版本升级都是 直接拿下一版本的tag 进行资源替换就能搞定。
  • 分支管理,分支我们分为主干,分布,备份三个分支。开发合并新内容在主干,发布时合并到发布分支,进行出包处理,每次发包之前备份一次。

文采有限,每一个内容都只是介绍了思路,具体的实现方案,还得各个项目根据实际情况进行提炼总结。

今天就介绍到这吧。下次再写些偏技术性的。

原文地址:https://www.cnblogs.com/canyuexueying/p/9183495.html

时间: 2024-10-11 05:34:39

海外各地区版本管理方法总结的相关文章

Nodejs版本管理方法

简介 我以前写过关于Nodejs的版本管理那个时候使用的是n来管理,但是n会在home目录下创建的安装目录不是隐藏的,所以对于我这个强迫症来说就很烦,所以现在就来说说nvm这个nodejs的版本管理工具 安装 安装很简单,一个命令搞定 使用curl安装: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash 使用wget安装: wget -qO- https://raw.github

【数据库运维】数据库(服务器)的时区设置及世界主要地区的时区

[时区设置不当会有什么问题] 当进行海外项目运维的时候,经常会遇到时区设置的问题,如果时区设置不当 或者 相同项目的服务器之间的时区不一致,都会有导致项目的数据异常的风险. 如果数据表的字段使用了date类型的字段,字段的默认值是sysdate,并且程序插入记录的时候使用了字段的默认值,那么就有可能导致数据异常.在修改数据库服务器的时区时,也是需要谨慎操作的. [服务器时间同步的方法] # 时间同步服务器请修改为要求的地址(建议使用Windows的地址,因为世界上大部分个人电脑使用的是Windo

String方法总结

一.字符方法 charAt:返回在指定位置的字符. var str="abcdefg"; //undefined str[0] //"a",因为ie67不支持这种写法 str.charAt(0) //"a" charCodeAt:返回在指定的位置的字符的 Unicode 编码. 二.字符串操作方法,不会影响原字符串,返回新字符串 concat:字符串拼接->返回新字符串,不影响原字符串.更多时候用“+” slice:提取字符串的片断->

String类型的属性和方法

× 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已经介绍过字符串String类型的基本知识,本文将介绍String类型的属性和方法 属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不可变的,所以字符串的长度也不可变 字符串的length属性不会在for/in循环中枚举,也不能通过delete操作符

腾讯技术工程 |腾讯海外计费系统架构演进

作者简介:abllen,2008年加入腾讯,一直专注于腾讯计费平台建设,主导参与了腾讯充值中心.计费开放平台.统一计费米大师等项目,见证了米大师从0到1,业务营收从PC到移动多终端再到全球化的跨越过程.20+篇支付专利主撰写人.目前专注于跟团队一起为腾讯业务提供稳定高效安全的全球化个人和企业市场计费服务. 经过海外3年建设,腾讯Midas(米大师)计费逐步构建起了一个分布式的全球计费系统,来助力公司及业内产品计费扬帆出海,走向深蓝.在刚过去的北京全球架构师峰会上,腾讯计费平台部架构师陈宁国分享了

报表工具中动态参数的使用方法和场景

报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ${参数名} 的方式来达到我们想要的效果. 那么,什么是动态参数呢? 动态参数一般是依赖于普通参数的具有计算能力的参数,在报表中动态参数我们可以看做是一个占位符,在报表运算之前,系统会全面搜索整张报表定义,将所有 ${参数名} 中的参数名替换成参数值即 动态参数表达式的结果. 下面我们举几个例子,看

地区级联参数传递注解式解决方案

需求 地区数据往往是存在强上下级关系的一种数据结构,在电商系统中是比较常应用到的,比如北京的下级地区只有海淀区.通州区……,而不会是太原市,而且在开发人员传递地区值的时候往往要传递很多的值,比如省.市.区.镇.省Id,市id.区id.镇id,这样影响了代码的美观性及校验强上下级关系代码的复杂性.基于这样的问题要求我们必须要实现一种可以简洁传递参数并且可以实现地区格式化的一种格式化器.这样衍生出了我们基于Spring Formatter地区自动化格式的一种格式化器. 预期效果 常规做法的地区参数传

U-Mail邮件系统详解邮件收发延迟原因及解决方案

邮件是现代社会办公最常见.最频繁的通联工具,但使用邮件系统时,用户普遍最关心两个安全,一个是安全性,邮件会不会被窃密?自己的邮箱账号会不会被盗取被攻占呢?保存的数据会不会丢失呢?关于这个问题,国内知名通联解决方案提供商U-Mail资深专家马工已反复阐述过很多次. 另一个问题是关于邮件传输的,邮件传输能不能及时.快捷地抵达对方邮箱呢?毕竟商场如战场,讲究的是快人一步,后来者要重新赢得市场,显然付出代价更多,也许你的一封洽谈商务的邮件仅仅先到了一天,对方就拍板定下你了,最可恨的是写得诱惑十足非常动人

Android 应用内多语言切换

p.p1 { margin: 0.0px 0.0px 12.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #000000 } p.p3 { margin: 0.0px 0.0px 13.9px 0.0px; line-height: 18.0px; font: 16.8px "PT Sans"; color: #000000 } p.p4 { margin: 0.0px 0.0