[译]领域驱动设计速成课程

原文链接:https://blog.bytebytego.com/p/a-crash-course-on-domain-driven-design

为复杂领域开发软件是一项具有挑战性的任务。

随着问题领域的复杂性不断增长,创建准确表示业务概念、规则和流程的软件变得越来越困难。设计不良的软件很快就会变成难以理解、难以维护和扩展的混乱代码。

领域驱动设计(DDD)为这个问题提供了解决方案。

DDD 是一种软件开发方法,它通过强调对核心领域和业务逻辑进行建模的重要性并使用这些模型作为软件设计的基础来解决领域复杂性。

领域驱动设计的核心是:

  • 将主要焦点放在核心领域上。
  • 基于领域模型的复杂设计
  • 建立技术专家和领域专家之间的协作。

近年来,领域驱动设计的需求愈发迫切。基于微服务和云计算的架构已导致系统由众多以复杂方式交互的小组件组成。如果没有清晰且定义明确的领域模型来指导其设计,此类系统很快就会变成“一团泥球”。

More »

[译]OAuth2 with Spring 第1部分:了解基本概念

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-1-knowing-the-basic-concepts-5c4aa17884a

在本系列关于 Spring 的 OAuth2的文章中,我将尝试介绍和解释与 OAuth2 相关的每一个问题以及如何在 Spring 框架中实现这些问题。请记住,OAuth2 完全是一个概念性的东西,在不同的框架中,它有自己的实现。此外,许多应用程序开发人员开发自己的 OAuth2 实现,而不使用 Spring 框架提供的 OAuth2 框架支持。因此,我将就这个主题撰写一系列文章。

More »

[译]OAuth2 with Spring 第3部分:使用Spring授权服务器授予authorization_code OIDC客户端

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-3-authorizing-oidc-client-with-via-authorization-code-grant-from-spring-67769f9dd68a

上一篇文章中,我们讨论了使用 client_credential 的 OAuth2 授权服务器配置。在本文中,我们将讨论使用 authorization_code 授予类型的授权服务器配置。此授权流程将有一个 OIDC 客户端,它将通过使用授权码进行请求来获取 JWT 令牌。

More »

[译]OAuth2 with Spring 第4部分:Spring授权客户端与Google授权服务器的社交登录演示

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-4-spring-authorization-client-social-login-demo-with-google-be6097ec18a5

之前的文章中,我们学习了如何使用 OIDC 连接到我们自己的授权服务器。我们在自托管授权服务器中定义了我们自己的客户端应用程序。在今天的文章中,我们将使用 Google 和 GitHub 作为我们的授权服务器,并将我们的授权客户端应用程序连接到这些授权服务器并从它们接收令牌。应用程序登录屏幕将如下所示。

More »

[译]OAuth2 with Spring 第5部分:使用PKCE保护您的Spring Boot应用程序以增强安全性

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-5-securing-your-spring-boot-application-with-pkce-for-enhanced-security-d8025cd08769

免责声明:本文技术性很强,需要清楚了解本系列前几篇文章,特别是第 1 部分和第 3 部分。

带有代码交换证明密钥 (PKCE) 的授权代码流用于无法存储客户端机密的应用程序。此类应用程序包括:

More »

[译]如何通过 WebSocket 将 Kafka 消息流式传输到面向互联网的客户端

原文链接:https://ably.com/topic/websockets-kafka

Apache Kafka 是目前最强大的异步消息传递技术之一。 Kafka 由 Jay Kreps、Jun Rao 和 Neha Narkhede 等团队于 2010 年在 LinkedIn 设计,并于 2011 年初开源。如今,该工具被众多公司(包括科技巨头,例如 Slack、Airbnb 或 Netflix 使用)为其实时数据流管道提供支持。

More »

[译]微服务设计模式

基于微服务的应用程序的主要特征在 微服务、单体和 NoOps 中定义。它们是功能分解或领域驱动设计、定义良好的接口、明确发布的接口、单一责任原则和潜在的多语言。每项服务都是完全自主和全栈的。

因此,更改服务实现不会影响其他服务,因为它们使用定义良好的接口进行通信。这种应用程序有几个优点,但它不是 免费的午餐,需要在 NoOps 方面付出大量努力。

但是假设您了解构建此类应用程序所需的工作或至少其中的一部分,并且愿意跳槽。你做什么工作?您构建此类应用程序的方法是什么?

是否有任何关于这些微服务如何相互协作的设计模式?

More »

JSR 166规范

JSR 介绍

JSR,全称 Java Specification Requests, 即 Java 规范提案, 主要是用于向 JCP(Java Community Process) 提出新增标准化技术规范的正式请求。每次 JAVA 版本更新都会有对应的 JSR 更新,比如在 Java 8 版本中,其新特性 Lambda 表达式对应的是 JSR 335,新的日期和时间 API 对应的是 JSR 310

More »