Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
单一职责编程指南
被误解的单一职责原则 - Joe
谷歌工程主管乔·林奇的文章,获得SOLID原则作者鲍勃大叔点赞转发的文章:作者推荐将SRP视为DDD原则的自然结果:跨DDD限制上下文共享的模型是不安全的。
避免过早的软件抽象 - Jonas
让我们看一些在实践中经常发生的过早抽象的具体案例。这些都是基于在我们自己的代码库中找到的真实示例。职责抽象得太细了使用设计模式没有真正的好处性能过早优化低耦合无处不在让我们分别仔细看看其中的每一个。
高内聚低耦合的集中决策设计
假设,我们正在构建另一个电子商务平台。其关键业务流程之一当然是处理订单。付款成功后,订单模块(域)必须异步调用仓库,准备购买的货物。然而,这些货物可能并不在那里。通常情况下,这不是什么大问题,因为我们可以从供应商那里获得。但是,如果有任何物品已经没有了怎么办?订单已经下了!钱已经转手了。我们的客户已
什么是业务规则引擎?
业务规则引擎 (BRE) 是一个应用程序,它使用预定义的逻辑来管理决策流程以确定结果。BRE 可以实现精确的决策制定,尤其适用于复杂的依赖关系,以及在监管或组织规则更改频繁需要逻辑更改的情况下。自动化可能意味着规则更改需要数月与数小时之间的差异。它们还可以帮助公司避免因不合规而受到巨额罚款和
Python的Monad设计模式详解
Monad 设计模式是一种函数式编程概念,它提供了一种以简洁优雅的方式封装复杂操作和计算的方法。通过提供一组用于组合函数和处理副作用的规则和约定,Monad 允许您编写易于阅读、维护和测试的代码。 无论您是初学者还是经验丰富的开发人员,学习 Mon
如何学习Java的规则引擎模式? - plagov
在这篇博文中,我想描述一下我是如何在为开源项目做出贡献的同时了解规则引擎模式的。在我作为测试自动化工程师的工作中,我一直在使用 Selenide</
如何实现软件设计中的高凝聚?
本文是下篇,上篇见这里。耦合只是结构化设计运动所定义的两个最具突破性的概念之一。另一个可能更重要:它是关于内聚力(凝聚)的概念"。
攀登“模块化”之山
作为软件开发人员的培训师和教练,我看到模块化软件设计(例如,面向对象或微服务)对人们来说是一种难以理解的技能。 在许多不同的模块化层面(方法和功能、类和模块、包和组件、流程、服务、服务器、系统和系统的系统),用许多不同的方式来解释它,这并没有什么帮
代码内聚性
在软件开发的动态环境中,代码内聚性的概念是创建高效且可维护的应用程序的基石。尤其是在Java这种以其健壮性和可扩展性而闻名的语言中,理解和应用内聚性原则可以显着提高软件项目的质量。 本文深入探讨了 Java 中的代码内聚性领域,提供了见解、实际示例和最佳实
将业务逻辑集中在一起的简单模式
CanExecute/Execute模式背后的想法非常简单。让我们将决策制定(前提条件检查)与执行实际操作分开,但将它们都保留在域对象中。另外,如果不满足前提条件,我们将阻止执行该操作。 例子假设一个社交媒
为什么开发人员痴迷于“关注点分离”?
高级开发人员经常提到以下三件事: #DRY #Clean架构 关注点分离 这其实是一种宗教,教条主义。 就像盲人摸大象一样,只有摸过大象才知道它有多少个部位,有多少个值得关注的地方,然后才能分离这些关注点。
装饰器与适配器设计模式
软件工程中的设计模式类似于解决软件设计中反复出现的问题的蓝图。这些模式提供标准化、经过时间考验的解决方案,使开发过程更加高效,最终结果更加稳健。它们是开发人员武器库中必不可少的工具,可以创建灵活、可重用且可维护的代码。 在这次探索中,我们深入研究了两种突出
拜托:不要像鲍勃大叔那样重构
博客文章“不要像鲍勃大叔那样重构”批评了罗伯特“鲍勃大叔”马丁在其颇具
工具类Util和通用类Common的反模式
Util和Common反模式在错误的方向上快速增长。 最初开始于一个开发人员创建一个单一的util类,一个简单的方法不适合任何其他地方,然后,其他人跟随他添加许多其他方法。 如果没有正确处理,Utils类可能会成
Golang链模式
链模式( Chain Pattern)是用于编写更好、更健壮的代码的众多设计模式之一。 这种模式的工作原理类似于链式生产,链中的每个环节都负责一项具体任务。当链启动时,第一个执行其任务,然后,如果没有错误,则传递到下一个,直到最后一个负责人。到那时,链条就
编程中命名的重要性
为函数、变量和其他结构找到好的名称,我们真正认识到我们正在解决的问题的本质。 清晰性的结果不仅是好的名称,还有更清晰的代码和改进的体系结构。 90% 的干净代码编写“只是”正确命名。
复杂性躲不掉,就把它关起来!
我们先看看 Fred Hebert 说过的一段话,叫《复杂性必须存在于某个地方》。 在写软件的时候,我们总是会遇到一个麻烦,就是“
如何提高函数的可读性?
下面哪个版本的createPizza函数更容易理解?
下页