- 为什么离线应用开发如此困难
构建分布式系统是计算机科学中最严峻的挑战之一。一个离线应用本质上也是一个分布式系统,数据存储在本地设备上,也在服务器上。由于数据在任何一个位置都可以独立更改,因此设备和服务器上的数据版本直接可能产生冲突。这看似是个简单的问题,但那是在应用开发中很难解决冲突。
当面临解决数据冲突这一艰巨的复杂问题时, 开发人员往往做出很多让步。有些人会简单化他们的做法, 拒绝来自设备的数据改变或只关注处理错误。这通常意味着用户将会面临糟糕的用户体验和意想不到的结果。其他开发人员尝试从头开发一套离线系统,也许会成功。
开发人员和工程经理都经常低估离线优先的开发工作,大量的开发者时间浪费在尝试一些离线用例上。构建一个可靠的离线系统,优雅的处理数据流,解决数据冲突,提供异常应对方案,这会造成减缓开发速度,分散开发的产品关注。
发送和接收数据正如冰山一角,网络请求可能失败,由于各种原因都会造成失控的情况。
不仅需要花费更长的时间来构建应用程序, 还是编写出臃肿的代码,这需要更多的时间来调试,维护和改进。