草庐IT

event-driven-design

全部标签

design-patterns - 是否可以在 Flutter 中为不同的小部件使用带有抽象层的多态性?

我有一组大约8个小部件,它们都接受一个X类型的参数并以不同的方式显示X类型的内容。我试图创建的是一个定义此类小部件结构的抽象层。除了结构之外,抽象层还将定义一个工厂方法来根据ID决定使用哪个实现。不同的实现都是扩展Stateless-或StatefulWidget的小部件。抽象层如下所示:abstractclassAbstractWidget{finalXcontent;factoryAbstractWidget({@requiredintid,@requiredXcontent}){switch(id){case1:returnImplementation1(content);bre

design-patterns - 选择正确的 Flutter 设计模式

我创建了一个Flutter页面,其中包含大量输入。我认为这是一团糟,让我们重构它并为每个输入创建一个新的有状态小部件。这很好,除了数据需要在父小部件中,而且我很难理解如何将数据从新的子小部件传回给父小部件。我发现了一些hacky方法,你传入一个函数,每当有变化时,你就通过该函数将数据传递给父级。可行,但现在有多个变量,一个在子级中,一个在父级中.我已经阅读了有关bloc模式的信息,但我不确定这是否是我所需要的。我只想要一个单例样式对象,主要小部件及其子部件都可以读取,并且在有新输入时子部件可以更新。有人可以解释一下bloc模式是否可以帮助我解决这个问题,或者是否有另一种设计模式可以帮助

flutter - 如何将符合 Material Design 标准的填充应用于我的 Flutter 支架?

我编写了一个使用package:flutter/material.dart的Flutter应用程序。在iOS模拟器上运行应用程序如下所示。如您所见,一行中的组件之间没有填充,并且组件到达顶部,底部,左侧和右侧没有填充/边距/边框。我的问题是:应用符合Material的填充的推荐方法是什么,例如转换为和下拉按钮之间的标签组件间隙。我会把我的组件打包到容器中并在那里应用填充吗?非常感谢您。这是应用程序代码:import'package:flutter/material.dart';import'converter.dart';import'model.dart';const_appName

events - 连接 Redis 事件到 Lua 脚本执行和并发问题

我已经对键值对或使用Redisson库构建的数据结构进行了分组。设计是任何一组值的值变化都应作为事件发送到订阅Lua脚本。然后这些脚本进行计算并更新另一组的键值对。这个过程是作为一个链来实现的,一旦Lua脚本更新了一个键值,它就会生成一个事件,另一个Lua脚本会根据某些参数执行类似于第一个Lua脚本的工作。问题一:Lua脚本与事件如何关联?问题2:事件是流水线式的,但我的Lua脚本可能必须等待网络IO。在那种情况下,我假设处理了下一个事件并执行了订阅脚本。这对我来说是个问题,因为第一个脚本尚未完成更新所需的键值对,第二个脚本正在继续其工作。这会给我带来错误。有办法克服这个问题吗?问题3

database-design - 使用redis获取我的 friend 事件(redis JOIN替代方案)

我想通过使用redis来提高应用程序的性能。我成功地将它用于缓存和计数器,现在正尝试使用它来搜索我friend的事件。我们有2个表:事件(用户、事件、时间戳)friend(用户,friend)我需要能够让我friend的事件按时间戳排序。在sql中它可能看起来像:SELECTact.activity,act.timestampFROMactivitiesactJOINfriendsfrONfr.friend=act.userANDfr.user="{user}"WHEREact.timestampUPD要点:https://gist.github.com/nanvel/8725b9c7

database-design - 我可以在 Oracle 数据库中持久化 redis 数据吗?

我们正在尝试通过Redis实现缓存,我了解到它会将数据存储到自己格式的RDB文件中。但是我们已经有其他客户端使用的Oracle持久性。因此,我们不想将数据存储在RDB文件中,而是希望将数据持久保存在OracleDB中。 最佳答案 在这种情况下禁用文件写入,并将Redis用作纯内存缓存。为此,只需注释redis.conf中的所有“保存”行即可。在伪代码中,读取一个值应该像这样完成:result=getvaluefromredisif(resultisnull){result=getvaluefromOraclestoreresulti

database-design - Redis 数据库设计基础

我设计了我的第一个Redis数据库,希望得到一些反馈、建议或提示。概述:我的redis数据库存储文章,以后可以按喜欢、创建日期、更新日期、作者等排序......文章也包含“项目”,我还需要确定哪些文章中至少有1个项目。创作创建新文章时,我将其ID写入各种键ZADD'articles:created'时间戳ArticleIDZADD'articles:updated'时间戳ArticleIDZADD'articles:likes'0文章IDSADD'user:USERID:articles'文章ID每当文章更新时ZADD'articles:updated'时间戳ArticleID每当一个

java - Redis中的notify-keyspace-events是什么

我按照这个spring-bootarticle开始设置spring项目.但是突然应用程序无法成功启动,而是我得到以下堆栈跟踪:Exceptioninthread"main"org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'enableRedisKeyspaceNotificationsInitializer'definedinclassorg.springframework.session.data.redis.config.annotation.web.http.Redi

java - 嵌入式redis无法启动 - ERR Unsupported CONFIG parameter : notify-keyspace-events

我使用的是embedded-redis0.6版本和spring-session-data-redis1.0.1.RELEASE。在使用mvnspring-boot:run命令执行springboot后,tomcat服务器启动但嵌入式redis立即抛出以下异常(参见下面的完整堆栈跟踪):redis.clients.jedis.exceptions.JedisDataException:ERRUnsupportedCONFIGparameter:notify-keyspace-events我该如何解决这个问题?我的pom.xml:org.springframework.sessionspr

design-patterns - 如何设计游戏服务器的通信 channel

我打算设计一个游戏服务器。我希望它可以承受非常重的负载、可重用、灵活,但易于编程,我想在这些方面取得平衡。我决定用nodejs和redis,protocal的数据格式是JSON,websocket我有web开发经验,但对游戏服务器开发一窍不通,我注意到游戏服务器是非常实时的,消息不是点对点的,而是pub-subchannel,nodejs、redis、json是设计通信channel的好选择,websocket是否被大多数浏览器支持?可能问题太多了,唯一的问题是如何设计游戏服务器的通信channel? 最佳答案 首先,下次使用真正的