通过“分布式系统的8大谬误”反思APP的设计 第六篇 谬误6:只有一个管理者

来源:互联网 发布:淘宝里的旺旺号是什么 编辑:程序博客网 时间:2024/04/30 14:12

我们再回顾一下著名的分布式系统的8大谬论,以及如何在开发应用是避免这些问题。

1,网络是可靠的;

2,网络不存在时延;

3,网络带宽是无限的;

4,网络是安全的;

5,网络拓扑结构是不会变化的;

6,只有一个管理员;

7,网络传输是不需要任何代价;

8,网络是同构的。

谬误6:只有一个管理者。

作为一个开发者,你可以控制在什么时候发布新的APP或新的服务器版本,但任何人都控制不了到底有多少类型的设备在运行你的APP。用户们可以在按自己意愿更新应用,也许更本不会再更新。导致你不得不同时处理各种版本。对于基于网络的应用,这是个大麻烦,你得不得同时处理不同版本的不同API接口请求。我认为,非常有必要在一开始就引入API版本管理。也许不会马上就需要支持多个api版本,但是这样一个策略存在,比方当你需要修改现有api调用是,可将接口从api.example.com/1/迁移到api.example.com/2,这使得新app的发布更加简单。

此外,为了支持不同版本的api,APP需要能进行本地版本的升级。如果应用升级的原因,修改了数据的格式(数据可能是保存在硬盘,coredata,keychain),你需要有个迁移之前用户数据的计划(至少升级后的应用不能在读取老数据时抛出异常)。你需要考虑从版本1.0直接升级到3.0的情况,而从中跳过了版本2.0。

用户就是他们设备的管理员,他们可以任意设置设备的限制,而你的APP就运行在这些设备上。比方,只有部分人会容许你获取地理位置信息,只有部分人会容许推送消息。有些会使用家长控制功能禁止孩子使用Safari,应用市场,或其他应用。

原文链接:http://blog.carbonfive.com/2010/12/03/iphone-distributed-computing-fallacy-6-there-is-one-administrator/

译者的总结:

1,作者主要说的是,你虽然是应用的开发者,但你其实无法掌握什么时候更新应用,包括应用运行的环境;这就是作者说,不止一个管理者。实际上,每个用户都是你的应用的管理者。

2,作者说的本地更新,我是深有体会。之前做个一个即使通信工具,会将数据保存在本地;后来不但需要支持文本还需要支持语音,图片。。。。之前的数据结构需要扩展,所以新版运行是需要先把之前的数据格式进行迁移。教训啊,教训。。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被电动车撞了人跑了怎么办 车被电动车撞了对方跑了怎么办 房子卖了户口没地方迁怎么办 酷派大神f2开不开机怎么办 酷派手机玩游戏竖屏怎么办 身上起红疙瘩很痒怎么办越挠越多 苹果6s指纹解锁坏了怎么办 案子结了网上追逃的怎么办 贷款买的手机不还了会怎么办 支付宝手机号没用了登陆不了怎么办 支付宝绑定的手机号注销了怎么办 考勤机进水了不能识别指纹怎么办? 网商银行人脸识别失败怎么办 电脑网页上的字变小了怎么办 把光驱换成固态硬盘后不识别怎么办 相机内存卡电脑读不出来怎么办 sd卡在电脑上无法格式化怎么办 内存卡突然读不出来了怎么办 怀孕两个月胎儿死在腹中怎么办 香港公司在大陆卖地皮资金怎么办 结婚证上的身份证号码错了怎么办 身份证快过期了人在外地怎么办 邮政电话银行登录密码忘记了怎么办 如果欠了3w不敢和家里说怎么办 大四学生欠了3w该怎么办 房子付了首付贷款贷不下来怎么办 浙江嵊泗人在金华丢了身份证怎么办 一证5号够了怎么办新卡 微信号被盗实名认证是自己的怎么办 苹果微信登录显示被盗风险怎么办 在诈骗公司上班被公安抓了怎么办 在国外护照不小心撕坏了怎么办 在俄罗斯护照超期拉黑应该怎么办 俄罗斯五年定居护照丢了怎么办 百家号文章质量分一直在下降怎么办 如果在韩国把护照弄丢了怎么办 坐亲戚的车出了车祸受伤怎么办 出了车祸受伤对方不拿医药费怎么办 如果找你买保险的不在了保单怎么办 赴美生子父母一方是绿卡怎么办 农保报销需要居住证过期了怎么办