系统设计&架构设计
文章平均质量分 88
系统设计&架构设计
huangshanchun
机会比实力重要,实力不够的时候,肯定会流失机会。
展开
-
架构整洁之道-读书总结
架构整洁之道》(Clean Architecture: A Craftsman’s Guide to Software Structure and Design)是由著名的软件工程师Robert C. Martin(又称为Uncle Bob)所著。这本书提供了软件开发和架构设计的指导原则,旨在帮助开发者构建更加稳定、可维护和灵活的软件系统。架构本质上解决软件复杂度问题,即解决控制和逻辑分离问题;所谓的控制就是对程序的流转的与业务无关的代码或者系统控制(如多线程、异步、服务发现、部署、弹性伸缩等);原创 2024-03-23 11:42:53 · 1356 阅读 · 1 评论 -
你需要知道DDD基本知识
2004 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》(Domain-Driven Design –Tackling Complexity in the Heart of Software)这本书,从此领域驱动设计(Domain Driven Design,简称 DDD)诞生;领域驱动设计这一理念迅速被行业采纳,时至今日仍是绝大多数人进行业务建模的首要方法。随着Martin Fowler 提出微服务架构[2],DDD也迎来了新的时代。DDD 是一种架构设计的方法论;原创 2023-09-24 15:29:22 · 307 阅读 · 0 评论 -
领域建模概述
在软件工程中,有两个高阶的工作的分别是架构和建模;如果把写代码比喻成施工,那么架构和建模就是设计图纸。相比编码,那么建模的确是对设计经验和抽象能力要求更高的一种技能。本文主要探讨一下对领域建模相关知识的理解。原创 2023-07-24 22:31:54 · 349 阅读 · 0 评论 -
分布式系统设计案例学习笔记-如何设计一个分布式计数服务
分布式系统设计案例-如何设计一个分布式系统计数服务。原创 2022-09-04 15:19:57 · 749 阅读 · 0 评论 -
微服务架构核心知识学习笔记下
10 微服务的API网关原理微服务引入网关也屏蔽内部服务实现细节,对外部提供统一的入口,如下图所示。网关主要职责:反向路由(通过网关反向找到的内部的具体服务,反向代理)、安全认证、限流熔断(突发流量限流熔断)、日志监控。11 Netflix Zuul 网关架构前置路由过滤器:在请求被路由之前调用,比如:请求身份验,选择微服务实例,日志埋点等路由过滤器:负责转发到具体的微服务。后置路由过滤:目标服务调用后,将会转到后置路由过滤器,比如:统计、审计等。错误过滤器:调用过程中产生错误,对错误统一原创 2022-04-16 21:18:28 · 392 阅读 · 0 评论 -
微服务架构核心知识学习笔记上
1 什么是微服务定义:微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 提出,微服务是一种架构风格,将单体应用划分成一组小的服务,服务之间相互协作,实现业务功能;每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(如HTTP);每个服务围绕业务能力进行构建,并且能够通过自动化机制独立部署;服务会使用最小规模的集中管理 (例如 Docker)技术,每个服务可以使用不同的开发语言与存储技术。它有以下特点:● 一组小的服务,微服务主张将大一体的服务拆成小的服原创 2022-04-04 16:37:16 · 528 阅读 · 0 评论 -
谈谈用例理解
0 概述对于信息系统开发团队来说,最主要挑战就是能够从关联如人员(PD、甲方、业务等)提取出争取的确实需要的系统需求,并以关联人员可以理解的方式进行说明,以便需求可以得到证实和验证。用例建模是一种以用户为中心的开发方法,通过用例工具确定和描述系统功能,在从用户和关联人员那里确定系统需要做什么很有用。当我们进行业务系统架构设计时,我们需要进行业务域划分、功能模块拆分等;做好这件事情前提是我们要做好需求用例分析,识别出全业务全景的用例集合。本文主要从2W1H思路谈谈对用例的理解。1 什么是用例维基百科的原创 2021-12-12 15:12:54 · 2838 阅读 · 1 评论 -
谈谈面向对象分析和设计
0 什么是分析和设计分析其强调的是对问题和需求的调查研究,而不是解决方案,如需求分析、线上问题分析等。案例:1.如果需要做一个在线交易系统?那么他应该有哪些功能?如何使用它 2.现在一个系统有问题,需要梳理整理相关问题。分析可以理解为定义问题阶段。设计(design)强调的是满足需求的概念上的解决方案,而不是具体实现,如面向对象设计、数据库设计。案例:设计一个数据库的表,设计E-R图等。设计可以理解对问题定义清楚好,开始寻找解决方案阶段。1 什么是面向对象分析和设计面向对象分析强调的是在问题领域内发原创 2021-12-05 12:14:16 · 4367 阅读 · 0 评论 -
初识DDD-理解基本概念
0 概述2004 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》(Domain-Driven Design –Tackling Complexity in the Heart of Software)这本书,从此领域驱动设计(Domain Driven Design,简称 DDD)诞生。领域驱动设计这一理念迅速被行业采纳,时至今日仍是绝大多数人进行业务建模的首要方法。随着Martin Fowler 提出微服务架构,DDD也迎来了新的时代。DDD概念比较多,像:领域、子域、核心域、通用域、原创 2021-10-09 13:54:46 · 1202 阅读 · 0 评论 -
架构设计-依赖倒置原则
0 概述依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。来源百度百科1...原创 2020-05-01 22:31:48 · 450 阅读 · 0 评论 -
架构分层设计
0 概述本文主要在实际工作积累,谈谈个人对架构分层的理解。1 为什么要分层如果你的业务非常简单,完全可以不分层,反而分层只会增加工作量如果业务稍微复查一些,如果不分层将会难以维护,牵一发而动全身,试下想下如果页面上需要展示用户会员等级时候,如果没有分层那么将从头改到尾。分层的目标是软件易维护、可扩展,让每一层的职责单一(高内聚),每一层只能依赖同层下一层,不乱调用(低耦合)。2 经...原创 2019-04-13 15:54:42 · 3048 阅读 · 1 评论 -
聊聊分布式锁
0 概述本文将what(是什么、使用场景)、how(如何实现,实现原理)、why (为什么这么实现)来分析下分析下分布式锁。1 什么是分布式锁1.1 分布式锁简介分布式锁是控制分布式系统之间同步访问共享资源的一种方式,分布式锁。分布式锁是解决分布式系统之间进程之间访问共享资源同步机制,本地锁如java lock 是解决一个进程中多线程并发同步机制,它不适于分布场景(多进程)。1.2 分布式锁使用场景分布式系统幂等设计、秒杀、分布式共享资源访问等等2 如何实现&实现原理2.1实现分布式原创 2020-05-31 11:10:22 · 208 阅读 · 0 评论 -
可靠性,可扩展性,可维护性
0 概述本文主要介绍如何设计一个可靠性、可扩展性、可维护性数据系统。1 可靠性(Reliability)应用程序表现出用户所期望的功能。允许用户犯错,允许用户以出乎意料的方式使用软件。在预期的负载和数据量下,性能满足要求。系统能防止未经授权的访问和滥用。硬件故障:如某个机房或者某个机器挂了(内存问题、磁盘问题等),整个系统对外仍旧可以正常使用。一般策略是异地多活,当某一个机房挂了,其它机房仍旧可以继续提供服务,硬件故障一般不会同时发生。软件故障:如JVM bug,在接受特定输入触发;操作原创 2020-05-24 19:55:21 · 4743 阅读 · 0 评论