这将是我的第一个具有任何复杂性的iOS应用程序。在尝试之前,我想概述一下组件和结构,以获得一些反馈。
从用户的角度来看,该应用程序监视当地湖泊的水位,并在水位改变用户指定的数量时收到推送通知。我认为使用Parse将是管理用户数据的最容易的方法,我将在Nodester上尝试一个Node.js服务器端组件(我知道一些基本的JS,并认为它是一种很好的、即将到来的熟悉的语言)。我是这么看的.
lakeLevelChange
金额。用户的数据被推送到Parse的数据mgt。服务器端组件将每天运行此程序3-6次:lakeLevelChange
currentLakeLevel
拉到用户指定的,差异是=> lakeLevelChange
,发送推送通知HTTP请求,每个用户的指定条件为met
server
实际上,当它被打印出来时,听起来并不是很复杂。这是构造此功能的正确方式吗?我有遗漏什么吗?非常感谢您的建议!
发布于 2012-04-03 20:39:27
有点逻辑问题:
服务器端组件
将每天运行该程序3至6次:
通过HTTP请求提取currentLakeLevel。
从分析中提取用户数据
将currentLakeLevel与用户指定的lakeLevelChange进行比较
如果差异为=> lakeLevelChange,则向满足其指定条件的用户发送推送通知HTTP请求
实际上,您也需要为每个用户存储最后的警报级别。否则,增量更改可能会悄悄超出用户的阈值,永远不会触发警报。
想象一下,如果我说我想被警告时,水平已经改变了6英寸。然后,您将记录七个事件,在这些事件中,每一次都会上升一英寸。你从来没有观察到超过6英寸的变化,但总变化超过了我的通知门槛,我可能打算让你通知我。
因此,当您触发警报时,您需要存储当前级别,然后在每个更改事件上,将其与您通知他们的最后级别进行比较。
发布于 2012-04-03 20:36:00
你错过了不幸的道路。这是程序员从不旅行的路径,而程序总是旅行。任何事情都没有按我们计划的方式进行,所以我们必须计划失败。问自己这样的问题:“当服务器关机进行维护或中断,错过一次或全部3-6计划运行时,会发生什么?”“错过的执行是否应该排队并发送一堆遗漏的通知?”“当用户更改他们指定为lakeLevelChange的内容,但广播中断和/或服务器请求无法完成时,会发生什么情况?”“当Parse获取垃圾数据或生成垃圾日期时会发生什么情况?”只问其中的几个就会引导你走向一个优化的设计。
https://stackoverflow.com/questions/10000774
复制相似问题