你改变了时间,也受到了时间的报复

正则表达式入门(二)分支条件、分组

回顾前文的问题:匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等,该怎么写?可以使用前面我们分析的(?0\d{2}[)-]?\d{8}吗?

阅读全文
发布于2019-11-02

正则表达式入门(一)元字符

正则表达式,英文是Regular Expression。从英文可以看出它表达的是一种规则的格式,所以在台湾译作“正规表示式”。这篇文章整理自我在公司一年前的分享。这里简单介绍一些正则表达式的常用技术,希望读者看完能够使用其中一些技巧。

阅读全文
发布于2019-11-01

领域驱动设计DDD入门7:加速工具和管理工具

这是本系列最后一课:加速和管理工具。如何加速DDD建模并在项目中应用?如何在敏捷项目中使用DDD?我将在这堂课中讲解。我会先讲事件风暴方法,可以快速建模和获取知识。然后讲敏捷先如何使用DDD,会附带一些额外的工具。后面我会教你如何标识任务和估时。最后说一下时间盒模型。

阅读全文
发布于2019-10-25

领域驱动设计DDD入门6:领域事件

第6节课我们讲战术工具之领域事件。战术工具在战略集成中通常也占据一席之地。这节课我先讲领域事件的设计、实现和使用,再讲一下事件溯源。

阅读全文
发布于2019-10-25

akka Actor入门

Akka 组件不少,最基础的就是akka-actor模块,这是所有其他模块的基础。没有这个模块,其他就没法工作。而这个模块呢,却可以独立工作。之前发过几篇akka相关的文章了(见akka标签),不过这里还是再继续稍微讲一下actor的特性。

阅读全文
发布于2019-10-24

akka Streams入门(Java版)

Akka 组件不少,最基础的当然是akka-actor模块。akka-streams模块是用作流处理的,“流”是什么?流是数据集合的一种处理方式,我们用了这么久的Java8 Stream api,应该知道它是用来处理Iterator数据结构的。akka-streams 除了以流式处理外,还提供了响应式设计、背压逻辑等。这里我们看一个小例子,只是熟悉它的api,并不涉及原理。

阅读全文
发布于2019-10-23

领域驱动设计DDD入门5:聚合

第五节课我们讲一个战术工具:聚合。聚合可以用于设计小型高效的对象集群,这些集群使用事务管理一致性约束。这节课先解释为什么要使用聚合,接下来介绍四个总体设计经验法则,然后是用于建模聚合的技术,随后考虑为什么在对聚合进行建模时应谨慎选择抽象级别。最后,我们考虑如何确保将聚合设计为可测试的单元。

阅读全文
发布于2019-10-22

领域驱动设计DDD入门4:上下文映射

欢迎来到第四课:战略工具之上下文映射。 本课重点介绍上下文映射以及各种团队关系和集成技术,这些技术可用于管理多个有界上下文如何和谐地工作以形成整个系统解决方案。 首先,我将介绍有限上下文之间的上下文映射。这导致对各种上下文映射、团队关系和集成技术的检查,包括伙伴关系、共享内核、客户供应商、遵从者、反腐层、开放主机服务、发布语言、大泥球等。然后我们看一下如何充分利用上下文映射,我们会将上下文映射与SOAP和RPC一起使用,RESTful HTTP和消息传递。最后,我给出一个使用消息传递和REST的使用上下文映射的示例。

阅读全文
发布于2019-10-21

领域驱动设计DDD入门3:子域

这一节继续讲下一个战略工具:子领域,也就是小领域,简称子域。子域能用于解决和遗留系统(就是老系统,会产生大泥球的系统)集成带来的复杂性问题。本节分三段:先介绍子域概念,然后是DDD项目中的子域类型,最后是使用子域解决大泥球系统。

阅读全文
发布于2019-10-21

领域驱动设计DDD入门2:有界上下文和通用语言

这堂课我们讲有界上下文和通用语言,这是两个重要的战略设计工具。之后讨论领域专家和业务驱动,然后看一个没有使用DDD的例子进行对比。最后是通用语言。

阅读全文
发布于2019-10-17

领域驱动设计DDD入门系列

领域驱动设计不是新概念,但却是刚火起来的概念。这里通过7节课带你入门DDD。本系列课程整理自Oreilly的视频课。这是第一堂课:为何DDD?

阅读全文
发布于2019-10-15

0-1 背包问题的动态规划实现(Java)

01背包是最经典的动态规划问题。假设有一堆化石,因为是化石所以价值和重量无关。你有一个背包,承重有限。从化石中挑选总重量不超过背包能力、总价值又最大的问题就是01背包问题。常见算法有贪心算法和动态规划算法(DP算法)。本文基于我github上的一个老项目:https://github.com/davelet/dp-just-code-no-word

阅读全文
发布于2019-10-10