跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(75) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) 聊天机器人(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) ChatGPT(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) RAG(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) 智能体(4) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) kafka(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 编程语言(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 大型语言模型(2) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

本文简要总结了各种软件体系结构模式、模型、哲学和策略,深入了解了它们的独特特性、应用以及对软件设计的影响。这些模式代表了现代软件工程中的关键方法和策略,每种方法和策略都解决了特定的需求和挑战。目标是提供对这些模式的高级理解和分类,帮助架构师和开发人员选择最适合他们特定需求的方法。

软件体系结构模式是用于解决软件开发中复杂体系结构挑战的基本准则。它们为重复出现的问题提供结构化的解决方案,确保了效率、可扩展性和可维护性。

这不是一个详尽的列表,但每次我发表关于体系结构模式的新论文时,它都会更新。

架构模式

前端的后端(BFF)

包括创建专门的后端服务,以满足各个前端应用程序的需求,优化通信和数据交付。

重点:创建适合特定前端应用程序的后端服务。

优点:优化通信和数据交付。

权衡:可能导致重复的逻辑,需要额外的维护。

Architecture Patterns : Backend For Frontend (BFF) Pattern

What is BFF?

lab.scub.net

发布/订阅模式

重点:使消息系统中的生产者和消费者脱钩。

优点:增强了可扩展性和系统灵活性,支持异步通信。

权衡:增加消息管理的复杂性,取决于代理的可靠性。

Architecture Patterns : Publish/Subscribe

What is Publish/Subscribe ?

lab.scub.net

Sidecar模式

重点:增强或扩展主应用程序的功能。

优点:隔离和模块化功能,更易于维护。

权衡:可能会增加系统复杂性,增加资源消耗。

Architecture Patterns : Sidecar

What is the Sidecar Pattern?

lab.scub.net

数据驱动测试

重点:通过使用数据驱动的方法增强测试过程。

优点:增加测试覆盖范围,提高效率。

权衡:需要彻底的数据管理,可能会出现与数据相关的错误。

Architecture Patterns : Data Driven Testing

What is Data Driven Testing ?

lab.scub.net

断路器

提供一种优雅地处理故障的方法,防止分布式系统中出现一连串故障。它的作用就像一个电路断路器,停止向失败服务的请求流,以便进行恢复。

重点:处理分布式系统中的故障。

优点:防止级联故障,使服务有时间恢复。

权衡:需要仔细设置阈值以避免错误

Architecture Patterns : The Circuit-Breaker

What is “Circuit Breaker”?

lab.scub.net

API网关

作为一个中间层,管理客户端到各种微服务的请求并将其路由到这些微服务,提供统一的接口、安全性和其他跨领域的关注点。

重点:管理对微服务的请求。

优点:提供统一的界面,增强安全性。

权衡:潜在的单点故障,增加了复杂性。

Architecture Patterns : API Gateway

What is “API Gateway”

lab.scub.net

命令查询职责分离(CQRS)

将读写操作分离为不同的模型,优化了性能和可扩展性,尤其是在复杂和高需求的环境中。

重点:分离读取和写入操作。

优点:优化了性能和可扩展性。

权衡:增加复杂性,可能导致最终的一致性问题。

Architecture Patterns : Command Query Responsibility Segregation (CQRS)

What is CQRS?

lab.scub.net

发件箱模式

通过在转发消息之前临时存储消息,解决了确保分布式系统中可靠消息传递的挑战,特别是在微服务架构中。

重点:确保分布式系统中可靠的消息传递。

优点:防止传输故障时数据丢失。

权衡:增加了实现的复杂性,可能会引入延迟。

Architecture Patterns : The Outbox Pattern ( Beyond Microservices)

In the intricate tapestry of distributed systems, particularly within the microservices architecture, the challenges of…

lab.scub.net

多租户技术

讨论了使用Key斗篷进行身份验证、Angular和Springboot分别进行前端和后端开发来实现多租户系统。

重点:使用特定技术实现多租户系统。

优点:SaaS应用程序中的高效身份验证管理。

权衡:复杂的设置,需要集成多种技术。

Architecture Patterns : Multi-tenancy with Keycloak, Angular and Springboot

Multi-tenancy is a critical aspect of contemporary software architecture. It assists in overcoming significant…

lab.scub.net

架构反模式

强调软件体系结构中的常见陷阱和“反模式”,深入了解维护健康高效的软件系统应避免的问题。

Architecture Anti-Patterns : The DARK side of the Architect

Amid the realm of logic and structured thought, architects, much like the mythical creatures of old, harbor a shadowy…

lab.scub.net

架构工具

本节介绍用于增强您的体系结构实践的模型、原理和策略。它们不能被视为模式,但对于构建伟大的系统仍然非常有用。

C4 模型

专注于提供软件体系结构的全面可视化,将其分解为四个级别:上下文、容器、组件和代码。它有助于理解和交流不同抽象级别的软件结构。

重点:四个级别的软件体系结构可视化。

优点:增强对软件结构的理解和沟通。

权衡:对于较小的系统来说可能过于复杂。

Architecture Modeling : C4 Model

What is the C4 Model?

lab.scub.net

领域驱动设计(DDD)

使用模型驱动的方法,将软件设计与领域复杂性紧密结合。它强调技术专家和领域专家之间的合作,以创造一种共同的语言和共同的理解。

重点:使软件设计与领域复杂性保持一致。

优点:便于协作并创建共享语言。

权衡:需要对该领域有深入的了解,可能很复杂。

Architecture Approach : Domain-Driven Design (DDD)

What is Domain-Driven Design (DDD)?

lab.scub.net

绞合器模式

旨在逐步取代遗留系统的部分,允许在不中断现有功能的情况下进行增量更新和平稳迁移到新技术。

重点:逐步更换遗留系统。

优点:允许在不中断现有功能的情况下进行增量更新。

权衡:可能是缓慢和资源密集型的。

Architecture Patterns : Strangler Pattern

What is Strangler Pattern?

lab.scub.net

文章链接

标签