State状态模式教程

     

微服务中的数据共享

56 4K

在软件开发领域,微服务就像在项目的不同部分工作的独立团队。每个团队负责特定的任务,使开发更快、更高效。但有时,这些团队需要像同事一样相互共享信息。这就是微服务中数据共享的用武之地。这一切都是为了弄清楚.

Java的类型化状态机

61

作者:不喜欢基于事件的状态机实现,因此我创建了一个类型化、函数式、简单且直接的状态机库。点击标题安装:<dependency>    <groupId>com.tsm4j</groupId>    <.

事件溯源与流水账的结账模式

47 19K

没有人知道事件溯源Event Sourcing是谁发明的。我无意中听说是汉谟拉比发明的。为什么?因为他规范了第一套会计规则。事件溯源Event Sourcing(活动事件源)就像记账一样,我们记录每项.

Rust中标记类型

75 5K

在Rust中,"marker types"(标记类型)是一种特殊的类型,它们通常没有具体的数据,而是用于在编译时传达一些关于类型的信息,或者为了满足特定的 trait 约定。这些类型通常被称为“标记类.

Java中ThreadLocal与Thread比较

64 5K

Thread和ThreadLocal这两个概念在 Java 多线程编程方法中至关重要。了解这两者之间的区别以及它们各自的优点和局限性对于任何旨在编写高效且健壮的多线程应用程序的 Java 开发人员至关.

动态规划 (动态编程DP) 教程

119 11K

动态规划(Dynamic Programming :DP、动态编程 、动态程序设计)被定义为一种在多项式时间内解决某些特定类型问题的技术。动态规划解决方案比指数暴力法更快,并且可以轻松证明其正确性。动.

基于状态机实现的DDD聚合根Order对象

131 3K

展示一段示例代码 - Order 类。此类在我们的示例 DDD/CQRS/ES 应用程序中使用。我们正在改进此应用程序,因此这是记录某些意见和更改的好机会。module Ordering  class.

使用AI聊天机器人生成软件架构语法图

78 8K

在当今快节奏的开发环境中,高效的沟通和协作是项目成功的关键。在本文中,我们将探讨生成式 AI(尤其是 Amazon Bedrock)的力量如何彻底改变跨职能工程团队的协作方式。从破译现有代码到将解决方.

大语言模型如何在上下文中绑定实体?

89

心理学家长期以来一直在研究绑定问题:人类如何将一个对象的特征识别为与该对象绑定,而不是与其他对象绑定?现代大模型LM毫不费力地解决了这些任务。当给出 "绿色正方形 "和 "蓝色圆形 "的上下文时,语言.

数学家陶哲轩在形式证明帮助下发现论文中错误

178

数学家陶哲轩在Lean4形式化证明时发现已发表论文中的错误:陶哲轩在用Lean4发现了一个小错误:论文论证中出现的表达式 12logn-1n-k-1 在 n=3,k=2 的情况下实际上是发散的。幸运的.

形式化验证和 TLA+ 入门

148 1 3K

这篇文章的目的是让读者了解: 为什么存在形式化方法以及为什么这些方法在分布式系统领域特别重要。 TLA+ 简介,包括它如何表示数据和时间的概念模型。 从这里开始,您应该能够阅读 TLA+ 上的更多高级.

基于事件源的工作流模式

179 2K

 本文档讨论了工作流模式,工作流模式提供了一种将长期运行的业务流程建模为步骤序列的方法。本文还描述了工作流如何做出决策但并不实际执行决策,而是将执行委托给系统的其他部分。维护工作流标识对于将事件关联回.

使用数据库实现状态机

285 10K

大多数人都熟悉状态机并知道它们的价值。一般状态机库可以帮助您对状态进行建模,防止无效转换,并生成图表以帮助非技术人员理解代码的行为方式。本文并不是要阐述状态机的情况。这是关于如何采用状态机的概念并使其.

使用数据库实现状态机

256 10K

大多数人都熟悉状态机,也知道状态机的价值。一般的状态机库可以帮助你建立状态模型,防止无效转换,并生成图表,帮助非技术人员也能理解代码是如何运行的。这篇文章并不是要论证状态机。而是如何利用状态机的概念,.

选择前端框架最重要依据:状态变更检测

678 12K

状态更改检测,也就是检测应用程序对状态值的改变,这样才会相应地更新 UI。(MVC模式 中模型Model的改变会更新View界面UI,又类似后端的ORM,对象状态更改通过ORM框架自动变更相应数据表值.

Rust中创建全局的、可变单例的6种方法

1626 8K

一般来说,避免全局状态。取而代之的是提早创建对象(甚至在main中首先创建对象),然后将该对象的可变引用传递到需要它的地方。这通常会使你的代码更容易推理。在决定你要使用全局可变变量之前,请仔细看看镜子.

使用状态机和 TypeScript 进行领域建模

396 10K

希望通过这篇文章完成的是让人们以不同的方式看待 TypeScript,并展示我认为是主流语言中最好的类型系统之一。先上代码:type Line = {  sku: string;  quantity:.

所有的编程哲学都是关于状态的 | worldofbs

1158 3

我最近意识到所有不同的编程哲学都与状态有关,并且可以归结为关于如何使用状态的简单陈述:面向对象一次性修改大量的状态是很难正确的;因此:将状态的子集封装成独立的对象,并允许通过方法对封装的子状态进行有限.

使用Java虚拟线程实现Actor模型保护状态 - Adam

1800 2 12K
Java 19 包含Project Loom核心组件的预览:虚拟线程。我们现在可以随意创建线程,因为我们不再(或至少少得多)受它们在内存和上下文切换时间方面的成本的限制。哪里有线程,哪里就有并发。那么.

Rust 中的枚举和模式匹配 - serokell

948 14K

在 Rust 中创建自定义数据类型有两种方法:结构和枚举。与结构相比,枚举构造一个具有多个变种、变体而不是多个字段的类型。虽然结构是几乎所有编程语言的一部分,但枚举并不是那么主流,并且主要出现在 Ha.

Rust状态机实现源码

1155 1 26K
物品可以展示,可以下订单购买,提供购买详细信息以验证订单,最后,物品被运送。发货前可以取消订单。下面示意性地描述了该状态机:完整的源代码可以在这里找到状态机接受的消息:enum Message {  .

cpressey/Facts-about-State-Machines:我认为状态机被低估了

1105 10K

我认为状态机经常被误解和应用不足:这就是我写这篇文章的原因。这个事实列表的目的不是教你什么是状态机或如何使用它们;还有很多其他资源。相反,这里的目标是激发它们的使用并突出它们经常被忽视但仍然相关的事情.

Rust语言之GoF设计模式:状态模式

1255 3K

状态模式与有限状态机 (FSM) 概念相关,但是,每个状态都由实现公共状态特征的单独类型表示,而不是实现大量条件语句。状态之间的转换取决于每种状态类型的特定 trait 实现。Rust 中的状态模式在.

什么是Rust语言的类型状态Typestate模式?

1522 2K

Typestate模式是一种API设计模式,它将对象的运行时状态信息编码在其编译时的类型中。当我们对一个对象的操作(如方法或函数),只有在该对象处于某些状态时才能使用:| “只有检查过它是有效的 UT.

bertilmuth/act: 用 Java 构建状态机、状态图和工作流

952
例如,查看以下购物车状态机。它代表了它要么是空的,要么是非空的两种基本状态。AddItem 触发器导致对非空购物车状态的更改。如果购物车仅包含 1 个项目,则 RemoveItem 触发器会导致对空购.

在 .NET 中使用有限状态机实现工作流建模 - Lloyd

1043 1

希望这篇文章能帮助你了解复杂和深度嵌套的条件代码的缺点,并为如何编写更容易理解和维护的代码带来新的视角: 解释了复杂且深度嵌套的条件代码的问题,因为它需要匹配域模型而很常见 介绍了状态机的概念,以及它.

Rusty类型状态Typestates入门 - rustype

1448 1 5K

如何使我们的计算机语言的类型系统更智能,将类型推理从程序员转移到编译器?在当今,随着系统变得越来越复杂,移动部件越来越多,能够确保每个部件协同工作变得极为重要。Rust 的借用检查器就是一个很好的例子.

RomanBase/flutter_control: 用于维护 Flutter 应用和状态管理的复杂库

684

Flutter Control 是维护 App 和状态管理的复杂库。库在一个引擎盖下合并了多个功能。这种方法有助于将分离的逻辑整齐地绑定到复杂的解决方案中。import 'package:flutte.

Recoil是ReactJS新的“Redux”吗? – josh

1119 2K
Recoil 是一个新的 React 状态管理库,它允许您以 Reactish 的方式管理全局/可共享状态。很棒的是,Recoil是由 Facebook 团队开发的。在这篇博客中,我们将看看 useR.

通俗明白了解什么是马尔可夫链? -10kdiver

2245 2 3K
多维思考是超越二维思考的非线性概率思考模型,多维分析三步过程: 步骤 1. 确定关键维度, 步骤 2. 构建多维模型, 以及步骤 3. 分析模型以形成合理准确的结论。 步骤1中:确定关键维度不是二分法.