• 企业集成两种架构模式

    20 2K
    在本文中,我们将探讨一些可用于不同集成项目的架构模式。在详细介绍集成架构之前,了解集成架构中常用的组件及其应用很有用。1、集成平台:这是集成架构的主要组成部分。集成平台执行集成流程并提供一组连接器和协.
  • 当前系统设计工具严重不足

    22
    人们经常错误地将系统设计等同于简单地绘制软件架构图。另一个误解是将其仅与 BDUF(预先进行大型设计)、UML(统一建模语言)、TOGAF 等特定架构框架或各种文档类型(例如 HLD(高级设计)、SA.
  • 如何解决GraphQL抓取不足或过度抓取

    7
    GraphQL是一个强大的API设计工具,并提供了一些优于传统REST API的优势。但是GraphQL存在抓取不足或过度抓取我们需要意识到下面认知陷阱,进而改变使用GraphQL方式,才能避免误用G.
  • 关系数据库很快会替代向量数据库

    25
    安迪·帕夫洛和迈克尔·斯通布雷克关于矢量数据库的严厉言辞:向量数据库(Vector Databases)无存在必要。向量数据库是一种专门设计的数据库管理系统(DBMS),它们使用索引来加速最近邻搜索(.
  • 如何记录产品和软件架构决策?

    16
    记录软件架构决策对于保存设计选择背后的背景和理由非常重要,这对未来的自己和团队来说都是无价之宝:在过去的两年里,我一直在从事一个有趣的应用程序现代化项目。它涉及将业务线从数十年​​历史的单体应用转移到.
  • 每个架构师都应该读的八本经典书籍

    163 1 3K
    格雷戈尔·霍普在本文讨论了8本被视为软件架构师必读的经典书籍。以下是所提及的关键书籍的摘要:1、维特鲁威(公元前 20 年)的《建筑学》:虽然与软件架构没有直接关系,但这部古代文献被提及,具有历史背景.
  • 学习系统设计11个课题

    20
    如何开始 [系统设计]。 阅读这些文章: 11)#Redis 用例: 10) #幂等API: 9)#Actor模型: 8)#RSocket: 7)#一致性哈希 解释: 6)#协议缓冲区与 #JSON .
  • 汉斯·霍莱因:万物皆建筑

    15 2K
    汉斯·霍莱因的宣言《万物皆建筑》认为,建筑的定义已经远远超出了传统建筑。他指出:“今天,整个环境(上下文)是我们活动的目标——以及决定环境的所有媒介:电视或人工气候、交通或服装、电信或住所。”霍莱因认.
  • 形式化方法应该为复杂软件工程保驾护航

    10 2K
    Marc Brooker 这篇文章讨论了形式化方法在软件工程实践中的重要性,特别是在构建大型系统、分布式系统或关键的低级系统时,在这些情况下不使用形式化方法很可能会浪费时间和金钱。形式化方法并不便宜,.
  • 使用GPT-4o实现软件架构解决方案

    49 10K
    我向 GPT-4o 提出了为 Architectural Kata Agile Dead Trees 创建解决方案的实验,结果令人印象深刻。在文章的最后,我明确要求创建考虑微服务架构设计模式的软件架构.
  • 分布式快照:Monkey-Lamport协议

    15 4K
    这篇文章讨论了Chandy-Lamport协议。这篇文章由Federico Ponzi于2024年5月30日发布,并在2024年6月3日进行了最后更新。文章内容涵盖了分布式快照试图解决的问题、它的应用.
  • C4模型的软件架构图

    47 6K
    该存储库是使用 C4 模型创建软件架构图的示例。图表应该易于创建和更新,确保每个人都能获得最新的信息我们都经历过加入一个复杂的项目,解读代码库就像读一整本小说一样。工程师是代码奇才,但即使是最好的工程.
  • 为什么 PostgresSQL 比 mySQL 更受欢迎?

    41
    在技术社区中,数据库的选择常常引发热议。Oracle公司拥有MySQL,这使得一些开发者出于对Oracle的不满而倾向于选择其他数据库,如完全社区驱动的PostgreSQL。MySQL的优点:易用性:.
  • 什么是自适应身份验证?

    19 3K
    标准身份验证方法(包括多重身份验证 (MFA))要求用户在尝试登录或访问公司资源时提供特定凭证。然而,自适应身份验证会根据情况调整所需的凭证,在违规风险较高时提高安全性。当用户始终使用标准凭证(例如用.
  • 数据管道架构概述

    21 8K
    在当今数据驱动的世界中,组织高度依赖对大量数据的有效处理和分析,以获得洞察力并做出明智的决策。这种能力的核心是数据管道——现代数据基础设施的重要组成部分。数据管道是数据从各种来源无缝移动到指定目的地的.
  • 什么是反向 ETL?概述、用例和主要优点

    22 4K
    在不断发展的数据工程领域,反向 ETL 已成为企业利用其数据仓库和其他数据平台超越传统分析的关键流程。反向 ETL 或反向“提取、转换、加载”是将数据从集中式数据仓库或数据湖移动到数据管道内的操作系统.
  • 静态加密:存在代理混淆的安全漏洞

    13 4K
    假设您有一个简单的 Web 应用程序,它在将数据存储到 SQL 数据库之前对其进行加密。一个快速而粗糙的实现可能看起来像这样:class User {    public function __con.
  • 分布式系统好处不仅是规模变大

    71 1 3K
    有一种观点: 您不需要分布式系统!如今的计算机速度如此之快,您只需一台机器即可为所有客户提供服务 这种论点是愚蠢和简单化的。这一论点基于一个事实: 现代机器非常强大,每秒可以完成大量工作,甚至可以将一.
  • JWT不是为了授权而设计的

    77 1 2K
    JWT不是为了授权而设计的,只是用作身份验证。JWT 主要用于验证身份。由于大多数开发人员不会开发自己的身份验证解决方案,因此身份验证提供商的 SDK 可能会为您完成此操作。您最终从 JWT 获得的是.
  • 什么是Google Zanzibar授权系统?

    58 5K
    Google 设计了 ​​Zanzibar 授权系统来处理其复杂的访问需求。了解如何利用此系统在您的应用中创建细粒度的 ReBAC.Google Zanzibar 是 Google 于 2019 年发.
  • 使用去中心化标识符 (DID) 作为标识符元系统

    44 6K
    去中心化标识符(DID) 具有一个经常被忽视的优势:它们充当标识符元系统,可实现未来防护和跨不同身份系统的互操作性。这一概念是 Sam Curren 在互联网身份研讨会 (IIW) 上题为“DID 还.
  • 老司机:非谷歌规模就无需使用JWT?

    62 3K
    该文认为:在大多数情况下,您不应使用 JSON Web Tokens (JWT) 作为身份验证令牌,尤其是你的系统规模没有达到 Google/Facebook 规模运营时,特别规模是每秒处理少于 10.
  • 无服务器事件源和CQRS指南

    62 2K
    在本文中,我们将介绍两种相关的架构模式,人们通常会听说过这两种模式,而且通常认为它们是同一件事。它们是事件源(Event Sourcing)和 CQRS(命令查询职责分离)这两种相关模式。什么是事件源.
  • 微服务架构中数据库扩展和优化

    47
    数据库对于信息系统至关重要,尤其是在高负载的微服务架构中。经过适当设计和优化的基础可确保系统的高性能、可扩展性和稳定性。在本文中,我们讨论了用于有效管理微服务环境中的数据库的各种策略和技术。1、水平扩.
  • 分布式缓存基础教程

    38 6K
    缓存是增强分布式应用程序性能和可扩展性的关键技术。这篇文章“掌握分布式应用程序中的缓存”全面概述了高级缓存技术和策略。在大规模分布式应用程序中缓存很难,团队经常会经历一个迭代和实验的过程来调整他们的缓.
  • 工作流从无状态切换到有状态的好处

    40
    在这篇文章中,描述了工作流应用程序从无状态到有状态设计的演变。初始无状态设计 最初建立在 Heroku 的免费 dynos(容器)上,它会在传入请求时启动。 由于 Heroku 不提供免费存储,因此使.
  • 单体系统如何实现动态演进扩展

    91 1 4K
    单体架构是一种软件设计方法,其中应用程序的所有组件都集成为一个不可分割的单元。在这种架构中,整个应用程序(包括用户界面、业务逻辑和数据访问层)作为单一实体进行开发、部署和维护。什么是单体? 单一存储库.
  • 比较 Pandas、Polars 和 PySpark:基准分析

    66 2K
    比较 Pandas、Polars 和 PySpark 三种工具的不同数据集,得出数据处理未来发展方向的结论。PandasPandas 一直是数据操作、探索和分析的主要工具。由于 Pandas 与 R .
  • 分布式系统:常见陷阱和复杂性

    63 6K
    分布式系统的复杂性对于工程师和开发人员来说是一个重要的挑战。随着系统的发展,复杂性往往会增加,因此积极主动很重要。让我们谈谈您在工作中可能会遇到哪些类型的复杂性以及处理这些复杂性的有效策略。分布式系统.
  • 多语言持久性与数据存储比较综述

    38 4K
    在当今数据驱动的世界中,应用程序依赖于各种信息的高效存储和检索。但是,如果单个数据库解决方案无法处理日益复杂的数据需求怎么办?输入多语言持久性,这是一种摆脱单一数据存储限制的强大方法。对多语言持久性的.