• 涉及与分布式系统相关的常见设计问题的关键模式: 1. 布隆过滤器布隆过滤器是一种节省空间的概率数据结构,用于测试元素是否是集合的成员。它用于我们只需要知道元素是否属于它应该
  • 如果你正在开发一个大型的、复杂的应用程序,或者正在拆除一个单体的应用程序,你应该考虑微服务架构。微服务架构将一个应用结构为一系列松散耦合的服务。微服务旨在通过实现持续交付和部署来加速软件开发。在微服务下,有两种类型的项目。 棕地项目--它指的是在现有或遗留系统的背景下 icon
  • Typestate模式是一种API设计模式,它将对象的运行时状态信息编码在其编译时的类型中。 当我们对一个对象的操作(如方法或函数),只有在该对象处于某些状态时才能使用:| “只有检查过它是有效的 UTF-8 后,才能翻译缓冲区。” icon
  • 工厂模式的是将创建逻辑封装在一个方法中,在 "外部"实现对其使用。(banq::老子道德经中“无以为用”,“无”的意思就是跳出事物内部细节,从事物外部才能使用它。Rust的事物内部和外部边界很严格,所有权概念使然。) 简单工 icon
  • Builder是一种创建设计模式,它允许逐步构建复杂的对象。 Builder设计模式与Fluent Interface习惯用法不同,尽管 Rust 开发人员有时会互换使用这些术语。Fluent Interface idiom 是一种 icon
  • 为什么我们不能再有正常的、简单的构造函数呢?每个JDK的新功能都会使用那些恼人的 "of(value)"、"newAbcd()"、"of()"。在某些情况下,我同意需要使用它,例如接口(Path.of()),但我觉得它真的被过度使用了。如果只是 "of()",没有参数 icon
  • 抽象工厂解决了在不指定具体类的情况下创建整个产品系列的问题。 抽象工厂的抽象接口: icon
  • 规则引擎模式是什么?哪些地方需要用到?实现规则引擎模式,SOLID原则是一个很好的选择。业务规则的项目是通过if/else函数来实现的,但是在我们的许多业务规则中,我们需要编写更规则的代码,if/else使事情变得更复杂。另一方面,当定义了一组新的规则,而不是定义一个 icon
  • 许多Go开发者,尤其是新开发者,发现一个不明显的问题是,我到底该如何把所有我需要的东西都传到我的处理程序中?我们没有像Java或C#那样花哨的控制反转系统。 http.处理程序是静态签名,所以我不能只传递我真正想要的东西。看来我们只有3个选择:使用globals、将处理程序包裹在一个 icon
  • 使用Bean验证是一种反模式的做法。它隐藏了与业务相关的约束,它将验证发生时的选择权留给了其他框架代码,我甚至看到了这样的情况:开发者期望验证 "必须发生",但它从未发生。当然,也没有对其进行测试。而说到测试:测试这些与业务相关的约束条件也是很痛苦的。下面是 Spring/J icon
  • 通过编写if else条件语句来验证对象是软件开发中的一项常见任务。想象一下,开发人员收到了以下文件验证要求: 只允许txt和html扩展名。 txt 文件的大小不能超过 5 MB。 html 文件的大小不能超过 10 MB。 文件名不能超过 icon
  • 带有 4 个示例面试问题的设计模式概述,可帮助您完成下一次面试设计模式是软件工程世界的重要组成部分。简而言之,设计模式是软件设计和开发中常见问题的可重用解决方案。它们就像我们可以用来在代码中实现解决方案的蓝图。设计模式在面试中也出现了很多!面试官希望看到你知道设计模式的用途以 icon
  • 作为专业或有抱负的软件工程师,我们通常的任务是将业务规则转化为计算机可以理解的东西。我们使用类对问题域进行建模,并编写业务逻辑以反映存在于代码库之外的现实世界规则。当这些业务规则在现实世界中发生变化时,它们也必须在代表它们的代码中发生变化,这就是我们领域真正复杂的地方。  icon
  • 在Python中,函数是一等公民,装饰器是强大的语法糖,利用这一功能给程序员提供了一种看似 "神奇 "的方式来构造函数和类的有用组合。这是一个重要的语言特性,它使 Python 与传统的 OOP 语言如 C++ 和 Java 区别开来,后者实现这种功能需要更多的代码,或者更复杂的模板 icon
  • 在这篇博文中,我想描述一下我是如何在为开源项目做出贡献的同时了解规则引擎模式的。在我作为测试自动化工程师的工作中,我一直在使用 Selenide</ icon
  • SOLID原则基本上可以帮助我们使我们的代码能够容忍变化,并且易于理解。它还可以帮助我们减少依赖性,这样我们就可以改变代码的一个区域而不影响到其他区域。 该原则是以下五个原则的首字母缩写。 S : 单一责任原则 O : 开放 icon
  • 有一个代码可读性陷阱,一旦你意识到它就很容易避免,但这个陷阱无处不在:人们喜欢省略“单位unit”。看看 Python、Java 和 Haskell 中的以下三个片段: icon