码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-07-28 23:09:06      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:app   分布式系统   网络   设计   结构   

我们再回顾一下著名的分布式系统的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,作者说的本地更新,我是深有体会。之前做个一个即使通信工具,会将数据保存在本地;后来不但需要支持文本还需要支持语音,图片。。。。之前的数据结构需要扩展,所以新版运行是需要先把之前的数据格式进行迁移。教训啊,教训。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:app   分布式系统   网络   设计   结构   

原文地址:http://blog.csdn.net/smallhorse87/article/details/47113063

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!