通过“分布式系统的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,作者说的本地更新,我是深有体会。之前做个一个即使通信工具,会将数据保存在本地;后来不但需要支持文本还需要支持语音,图片。。。。之前的数据结构需要扩展,所以新版运行是需要先把之前的数据格式进行迁移。教训啊,教训。。
- 通过“分布式系统的8大谬误”反思APP的设计 第六篇 谬误6:只有一个管理者
- 通过“分布式系统的8大谬误”反思APP的设计 第八篇 谬误8:网络配置都是类似的
- 通过“分布式系统的8大谬误”反思APP的设计 第三篇 谬误3:带宽是无限的
- 通过“分布式系统的8大谬误”反思APP的设计 第四篇 谬误4:网络是安全的
- 通过“分布式系统的8大谬误”反思APP的设计 第二篇 谬误2:网络没有时延
- 通过“分布式系统的8大谬误”反思APP的设计 第七篇 谬误7:网络传输无需任何开销
- 通过“分布式系统的8大谬误”反思APP的设计
- 通过“分布式系统的8大谬误”反思APP的设计 第五篇 谬误5:网络拓扑结构是不会改变的
- 分布式计算的八个谬误
- 程序员的十大谬误
- 人类常见的十大思维谬误
- 研发绩效考核的谬误
- 企业(分布式)计算十大谬误
- 企业(分布式)计算十大谬误
- 软件工程的真实与谬误
- 软件工程的事实与谬误
- 软件工程的事实与谬误
- <软件工程的事实与谬误>
- SQL Incorrect syntax near 错误
- 常用SQL
- window基本知识
- android适配浅析
- 防火墙问题
- 通过“分布式系统的8大谬误”反思APP的设计 第六篇 谬误6:只有一个管理者
- 【搜索】 HDU 5323 Solve this interesting problem
- java学习笔记(六) collections--stack
- html基础2
- 55. Jump Game
- Volley学习笔记(二):使用Volley加载网络图片
- 七月日记
- Android核心基础-7.Android 网络通信-1.获取文本数据
- 在windows系统下修改hosts文件,使其可以修改