我正在研究模式和反模式。我对模式有一个清晰的概念,但我没有反模式。来自网络和维基百科的定义让我很困惑。

有人能用简单的话给我解释一下什么是反模式吗?目的是什么?他们做什么?这是好事还是坏事?


当前回答

在基于微服务的领域:

一切都是微的,除了数据是反模式。 它是指基于DevOps和CI/CD对每一件事情进行合理、充分的分解。也许有些分布式设计模式已经到位,甚至完全复制,但所有服务背后都有一个巨大的数据存储,因此它仍然是一个单一的数据结构。

微服务反模式的其他例子

其他回答

在基于微服务的领域:

一切都是微的,除了数据是反模式。 它是指基于DevOps和CI/CD对每一件事情进行合理、充分的分解。也许有些分布式设计模式已经到位,甚至完全复制,但所有服务背后都有一个巨大的数据存储,因此它仍然是一个单一的数据结构。

微服务反模式的其他例子

反模式是设计模式的补充。反模式是在特定情况下不应该使用的模板解决方案。

模式是关于如何解决某个类的问题的想法。反模式是一种如何不解决问题的思想,因为实现这种思想将导致糟糕的设计。

举个例子:“模式”是使用一个函数来实现代码重用,“反模式”是使用复制-粘贴来实现相同的功能。两者都解决了同样的问题,但是使用函数通常会比复制粘贴更具有可读性和可维护性。

反模式是人们倾向于以错误的方式编程的常见方式,或者至少是不太好的方式。

因为模式是被发现的,而不是被创造出来的,Allen Holub,这种发现是通过重复发生的;如果我们发现了一个解决特定问题的模式,但不是根据领域专家的知识和经验以正确的方式解决的——我们倾向于称其为反模式

模式:解决常见的、反复出现的问题的正确方法。 反it模式:不是解决常见的、反复出现的问题的正确方法。 这两种方法都是基于最新的知识

和…昨天的有害实践就是明天的反模式Neal Ford,持续交付的工程实践

DevOps世界示例

它曾经是一个最佳实践(构建共享资源)

但在云世界中,当我们在云中管理资源时,它引入了耦合。

所以现在我们倾向于基于解耦或解耦来构建我们的设计

因此,对于特定的领域,例如DevOps:

过去: 共享资源== pattern ==好事 礼物: 共享资源==反模式==坏事 解耦==模式==好事

总之

更喜欢模式而不是反模式


图片来源:Neal Ford,持续交付工程实践