单一职责编程指南

     

为什么开发人员痴迷于“关注点分离”?

109 1

高级开发人员经常提到以下三件事: DRY Clean架构 关注点分离 这其实是一种宗教,教条主义。就像盲人摸大象一样,只有摸过大象才知道它有多少个部位,有多少个值得关注的地方,然后才能分离这些关注点。.

装饰器与适配器设计模式

132 8K

软件工程中的设计模式类似于解决软件设计中反复出现的问题的蓝图。这些模式提供标准化、经过时间考验的解决方案,使开发过程更加高效,最终结果更加稳健。它们是开发人员武器库中必不可少的工具,可以创建灵活、可重.

代码内聚性

317 27K

在软件开发的动态环境中,代码内聚性的概念是创建高效且可维护的应用程序的基石。尤其是在Java这种以其健壮性和可扩展性而闻名的语言中,理解和应用内聚性原则可以显着提高软件项目的质量。本文深入探讨了 Ja.

Golang链模式

91 3K

链模式( Chain Pattern)是用于编写更好、更健壮的代码的众多设计模式之一。这种模式的工作原理类似于链式生产,链中的每个环节都负责一项具体任务。当链启动时,第一个执行其任务,然后,如果没有错.

工具类Util和通用类Common的反模式

125

Util和Common反模式在错误的方向上快速增长。最初开始于一个开发人员创建一个单一的util类,一个简单的方法不适合任何其他地方,然后,其他人跟随他添加许多其他方法。如果没有正确处理,Utils类.

编程中命名的重要性

65 6K

为函数、变量和其他结构找到好的名称,我们真正认识到我们正在解决的问题的本质。清晰性的结果不仅是好的名称,还有更清晰的代码和改进的体系结构。90% 的干净代码编写“只是”正确命名。例子#1// 给定一个.

如何提高函数的可读性?

61 2K

下面哪个版本的createPizza函数更容易理解?func createPizza(order *Order) *Pizza {    pizza := &Pizza{Base: order.Siz.

高内聚低耦合的集中决策设计

583 2

假设,我们正在构建另一个电子商务平台。其关键业务流程之一当然是处理订单。付款成功后,订单模块(域)必须异步调用仓库,准备购买的货物。然而,这些货物可能并不在那里。通常情况下,这不是什么大问题,因为我们.

攀登“模块化”之山

436 7K

作为软件开发人员的培训师和教练,我看到模块化软件设计(例如,面向对象或微服务)对人们来说是一种难以理解的技能。在许多不同的模块化层面(方法和功能、类和模块、包和组件、流程、服务、服务器、系统和系统的系.

将业务逻辑集中在一起的简单模式

408 6K

CanExecute/Execute模式背后的想法非常简单。让我们将决策制定(前提条件检查)与执行实际操作分开,但将它们都保留在域对象中。另外,如果不满足前提条件,我们将阻止执行该操作。例子假设一个社.

Python的Monad设计模式详解

1025 11K

Monad 设计模式是一种函数式编程概念,它提供了一种以简洁优雅的方式封装复杂操作和计算的方法。通过提供一组用于组合函数和处理副作用的规则和约定,Monad 允许您编写易于阅读、维护和测试的代码。无论.

如何实现软件设计中的高凝聚?

872 6K

本文是下篇,上篇见这里。耦合只是结构化设计运动所定义的两个最具突破性的概念之一。另一个可能更重要:它是关于内聚力(凝聚)的概念"。耦合是指跨越不同模块的边界的关系,而凝聚是指模块边界内部元素之间的关系.

如何学习Java的规则引擎模式? - plagov

953 4K

在这篇博文中,我想描述一下我是如何在为开源项目做出贡献的同时了解规则引擎模式的。在我作为测试自动化工程师的工作中,我一直在使用 Selenide。所以,当我必须完成某项任务时,我发现 Selenide.

什么是业务规则引擎?

1170

业务规则引擎 (BRE) 是一个应用程序,它使用预定义的逻辑来管理决策流程以确定结果。BRE 可以实现精确的决策制定,尤其适用于复杂的依赖关系,以及在监管或组织规则更改频繁需要逻辑更改的情况下。自动化.

被误解的单一职责原则 - Joe

1815 1 3K

谷歌工程主管乔·林奇的文章,获得SOLID原则作者鲍勃大叔点赞转发的文章:作者推荐将SRP视为DDD原则的自然结果:跨DDD限制上下文共享的模型是不安全的。单一职责原则 (SRP) 是SOLID设计原.

避免过早的软件抽象 - Jonas

1055 1 4K
让我们看一些在实践中经常发生的过早抽象的具体案例。这些都是基于在我们自己的代码库中找到的真实示例。职责抽象得太细了使用设计模式没有真正的好处性能过早优化低耦合无处不在让我们分别仔细看看其中的每一个。 .

将单一职责原则应用于前端FE/BFF分层架构 - Expedia

1918 1 4K
前端后端(BFF)模式是一种最近越来越流行的软件架构模式。在 Expedia Group ,我们在整个微前端团队中大量使用这种模式,作为我们平台解决方案实施的一部分。在发展我们的架构的过程中,我们最近.

单一职责原则:软件世界中最重要的规则 - DZone

1914 1 2K

单一职责原则SRP,这是整个软件世界中最重要的单一规则。它几乎可以在我们系统的所有级别上看到:从单个类到整个应用程序(无论使用的规模和架构如何)设计。 什么是单一职责原则可能你们中的大多数人将 SRP.

软件可重用的"三法则rule-of-three"

1888 2

本文是世界最大问答社区Stack Overflow和 Discourse 的联合创始人的文章:2004 年,当我第一次阅读《软件工程的事实与谬误》时,它提到:软件可重用有两个“三规则”: 构建可重用组.

著名国外企业协作软件Slack关于设计API的经验分享

1902 1 4K
Slack是一种可以把各种碎片化的企业沟通和协作集中到一起(类似钉钉):多年来,我们始终牢记的一件事是为出色的开发人员体验而设计。虽然我们可以在幕后更改我们功能的实现,但删除或更改现有 API 的行为.

Java中的SOLID原则 - ds73306

1162 1 4K

SOLID 原则基本上构成了构建面向对象、松散耦合、健壮、可维护和易于理解的应用程序的基本准则。最常被问到的面试问题之一,让我们来看看: 单一职责:一个类应该有且只有一个职责。我们应该仅仅为了一个目的.

DRY原则在DDD实践中应用 -Berthon

847 1

开发人员喜欢使用首字母缩写词来说明“良好做法”(KISS,DRY,SOLID等)。通常,他们传达的想法非常容易掌握。DRY是dont-repeat-yourself不要重复自己意思,其目的是更好地管理.

单一责任SRP设计举例 - macerub

1039 1
单一责任/职责原则(SRP):“一个模块应该只承担一个责任”。 示例:客户Customer类。 generateInvoice:计算客户必须支付的金额。  computeDiscount:为客户返回%.

干净整洁代码(Clean Code)的本质是什么? - mariocervera

3441 1 3K
当我们听到“整洁代码”一词时,通常会想到由罗伯特·C·马丁(Robert C. Martin)(也称为鲍勃大叔、鲍勃大爷)撰写的著名书籍:“整洁代码:敏捷软件工艺手册”(2009年)自从本书出版以来,.

什么是无副作用的函数方法?如何取名? - Mario

1723 1
函数名称应描述函数所做的所有事情。换句话说,功能不应隐藏副作用。这符合“最小惊喜原则”。但是,有时候这并不容易。下面函数名词名副其实吗?  众说纷纭:它会返回一个Cusomter,但是如果没有可用的C.

我理解的Clean代码 - macerub

1545 1

什么是清洁代码?正如鲍勃大叔清洁代码书中说:清洁代码的定义可能与程序员一样多。首先,我最喜欢的一位著名作家的话是:“干净的代码读起来就像写好的散文”(@Grady_Booch)。简短的句子说明了一切。.

Michael Feathers:编程的艺术

1 906

编程是一次只做一件事的艺术.

上下文映射关系中如何解耦特定和通用的领域? - Nick Tune

1491 5 3K

您正在构建一个新系统,并且您的团队的两名成员各自提出了用于发送通知的两种架构,哪一个是正确?如何选择? 第一个开发人员提出的是推送模型:有界上下文应指示通知上下文发送通知。专门的通知上下文应该只是遵循.

责任链模式(Chain of responsibility)

2769 2 15K
目的它属于  行为设计模式目录。通过为多个对象提供处理请求的机会,避免将请求的发送者与其接收者耦合。链接接收对象并沿链传递请求,直到对象处理它。说明国王向他的军队发出了命令。最早做出反应的是指挥官,然.

什么是GRASP模式?

4415 3 11K
GRASP模式(一般责任分配软件模式)描述了对象设计和责任分配的基本原则和模式。 确定需求并创建领域模型后,如何将方法添加到Class类中,并定义对象之间的消息传递以满足要求。GRASP模式是一种学习.