如何在Redux中处理复杂的副作用?

我一直在努力寻找解决这个问题的几个小时… 我正在开发一个在线记分牌游戏。 玩家可以随时login和注销。 游戏结束后,玩家将看到记分牌,并看到自己的排名,并自动提交分数。 记分牌显示玩家的排名和排行榜。 记分牌在用户完成游戏(提交分数)和用户只是想要查看他们的排名时都使用。 这是逻辑变得非常复杂的地方: 如果用户已经login,则分数将首先被提交。 新纪录保存后,记分板将被加载。 否则,记分牌将被立即加载。 玩家将有权selectlogin或注册。 之后,将提交比分,然后记分牌再次刷新。 但是,如果没有分数提交(只是查看高分表)。 在这种情况下,玩家现有的logging只需下载。 但是由于这个动作不会影响记分牌,记分牌和玩家的logging应该同时下载。 有无限的层次。 每个级别都有不同的记分牌。 当用户查看记分牌时,用户正在“观察”该记分牌。 closures时,用户停止观察。 用户可以随时login和注销。 如果用户注销,则用户的排名应该消失,如果用户以另一个帐户login,则应该获取并显示该帐户的排名信息。 …但是这只能获取用户当前正在观察的记分牌。 对于查看操作,结果应该caching在内存中,这样如果用户重新订阅相同的记分板,则不会有取回。 但是,如果提交了分数,则不应使用caching。 任何这些networking操作都可能失败,玩家必须能够重试。 这些操作应该是primefaces的。 所有的州应该一次更新(没有中间状态)。 目前,我能够使用Bacon.js(一个functionreact native编程库)来解决这个问题,因为它带有primefaces更新支持。 代码非常简洁,但现在却是一团乱七八糟的不可预知的意大利面代码。 我开始看Redux。 所以我试图构build商店,并提出了这样的事情(在YAMLish语法): user: (user information) record: level1: status: (loading / completed / error) data: (record data) error: (error / null) scoreboard: level1: status: (loading / […]

SQLFiddle是否被破坏? Oracle,SQL Server错误…?

我正在尝试在Oracle数据库的SQLFiddle中创build一个简单的表,并不断得到一个神秘的错误: 创build脚本错误。 这是一个简单的脚本失败: create table t1 (f1 number, f2 number, f3 number); 任何人都可以帮忙吗?

C#编译器是否删除了封装了debug.writeline的if

我有这样一段代码: if (state != "Ok") { Debug.WriteLine($"Error occured: {state}, {moreInfo}"); } 如果我发布版本,编译器是否优化了这一点? 还是评估停留,从而花费一些处理时间?

我怎样才能把一个HTML表格CSV?

问题 我在工作中使用了一个工具,可以让我查询信息并获取HTML表格。 我没有任何types的后端访问。 如果我可以把它放到一个电子表格中进行sorting,平均等,那么很多这种信息会更加有用。 如何将这些数据屏幕抓取到CSV文件? 我的第一个想法 因为我知道jQuery,所以我想我可以用它去掉屏幕上的表格格式,插入逗号和换行符,然后把整个文件复制到记事本中并保存为CSV。 任何更好的想法? 解决scheme 是的,伙计们,就像复制和粘贴一样简单。 我不觉得傻。 具体来说,当我粘贴到电子表格中时,我必须select“select性粘贴”并select格式“文本”。 否则,它会尝试将所有内容粘贴到一个单元格中,即使我突出显示了整个电子表格。

在C#中初始化一个结构数组

我怎样才能尽可能清楚地初始化const / static结构数组? class SomeClass { struct MyStruct { public string label; public int id; }; const MyStruct[] MyArray = { {"a", 1} {"b", 5} {"q", 29} }; };

为什么不能在.NET中定义generics索引器?

为什么不能在.NET中创build一个通用索引器? 下面的代码抛出一个编译器错误: public T this<T>[string key] { get { /* Return generic type T. */ } } 这是否意味着您不能为通用成员集合创build通用索引器?

那里有哪些RAD工具?

我们都知道演习:你有一个(小)模型,你需要坚持下去,你需要一个用户界面(networking,桌面,移动设备,一些前者,所有这些)。 这是一个重复的过程,我不禁要问,为什么我们仍然坚持使用POJO,或映射器,以及手工编写UI(因为大多数UI“devise师”甚至不知道inheritance,而且你需要构build每一个确定/取消对话框从头开始有多个字段)。 RAD工具/平台承诺解决,但我还没有看到任何真实的。 这个wiki的想法是收集所有的工具,让你在几分钟内充实一个想法,并从那里build立。 简单的事情(比如为你的模型创build一个简单的UI或者把它保存在数据库中)应该很简单。 将一个相当复杂的对象附加到对话框来编辑它应该占用一行或更less的代码;) 所以这里面临的挑战是:在哪里有哪些RAD工具可以在8小时内构build一个小应用程序。 为了让你知道它应该能做什么,这里是规范: 你有“知识”节点。 每个这样的节点都有名称和长的说明(单行和多行string) 每个知识节点可以有任意数量的知识节点作为子节点(1:*sorting父/子关系)。 子节点需要维护顺序(即使用列表而不是集合) 每个知识节点可以有任意数量的标签(1:*不同types之间的无序关系) 任何两个知识节点都可以连接任意数量的关系(n:m关系) 应该可以很轻松地从/以XML格式从数据库加载/保存模型 用户期望今天撤销/重做 UI应提供标准操作:创build,重新sorting和删除知识节点。 重新sorting应该使用drag'n'drop。 它应该允许从知识节点添加/删除标签。 应该有一个简单的方法来通过关系连接两个知识节点(比如通过在特殊模式下拖动一个节点)。 UI还应该允许search具有特定标签或关系的节点。 对于奖励积分,它应该提供一个简单的方法来导航关系图。 有什么挑战吗? 像往常一样, OSS首选。 背景:现在我正在开发超过25年的软件。 尽pipe如此,这个简单的应用程序,如果不是几个月,我需要花费几个星期的时间来编写我所遇到的任何语言: Groovy , Java , Python , Tcl / Tk , Grails , OpenOffice , MS Access , TreeLine ,[TurboGears] [10], [Enthought Traits] [11],.net。 一些对竞争者的反馈。 请注意,我试图用单个句子来突出要点,所以下一个部分用一点盐,好吗? Groovy很好的语言,紧凑的代码。 closures,但缺乏在UI部门。 他们正在努力,但不在那里。 […]

mercurial中是否存在忽略提交选项?

有什么办法可以忽略提交与mercurial一些文件的变化? 我有一个特定的情况,我们有一个默认的oracle tnsnames.ora文件指向127.0.0.1,但是一些开发者会修改它指向其他系统,但是我们不想改变默认文件。 在颠覆中,我简单地将它添加到忽略提交更改列表。 有没有办法做到这一点在mercurial?

git-svn clone checkouts错误的回购?

所以我想通过使用git-svn来切换到git。 我有一个名为myrepo的svn回购,我想从中克隆名为myproject的项目。 事情是通过运行以下命令: git svn clone path-to-repo/myrepo/myproject –stdlayout –prefix=svn myproject 整个回购myrepo被克隆,而不仅仅是我的项目。 我尝试使用-T,-t,-b以让git知道项目的布局,但是没有任何成功。 我总是得到以下输出: Using higher level of URL: path-to-repo/myrepo/myproject => path-to-repo/myrepo 并试图克隆那一个。 难道我做错了什么? 这可能是svn回购布局可能被破坏或git不兼容?

在Ruby中未定义variables

假设我正在使用irb ,并键入a = 5 。 如何删除a的定义,以便键入a返回一个NameError ? 一些背景:后来我想这样做: context = Proc.new{}.binding context.eval 'a = 5' context.eval 'undef a' # though this doesn't work.