软件架构
文章平均质量分 89
夜雨风云
求实求真
一草一树木,一花一世界
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件架构介绍
架构显然很重要。许多开发人员的目标是成为一名架构师。但什么是架构,为什么架构如此重要?为了回答这个问题,这里首先定义软件架构的含义。然后,讨论应用程序的架构是多维的,并使用一组视图或蓝图进行描述。接着,本文将强调软件架构的重要性,因为它对应用程序的质量有显著的影响。 ...原创 2022-06-19 20:49:13 · 5575 阅读 · 0 评论 -
类库、框架、模块、组件等概念介绍
在软件架构介绍一文,将软件架构本质定性为元素(element)和这些元素之间的关系(relation)。这里,汇总下软件架构中常见的元素,方便统一交流。这些元素包括但不限于类库、框架、模块、组件、服务、平台等。 ......原创 2022-06-19 22:08:58 · 3340 阅读 · 0 评论 -
数据库设计规范
现代软件架构的复杂性要求需要多人或多团队协同完成开发。在这种背景下,如何高效地协同完成软件的开发呢?对软件工程来说,数据库设计规范是在数据库设计层面对软件开发者的规范或标准。对软件来说,适当的规范和标准绝不是为了消除代码内容的创造性、优雅性,而是**限制过度个性化,并以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本**。代码的字里行间流淌的是软件系统的血液,质量的提升是**尽可能少踩坑,杜绝踩重复的坑**,切实提升系统稳定性,码出质量。原创 2022-11-06 18:27:35 · 2875 阅读 · 0 评论 -
面向对象的基本原则
面向对象需要把握的核心原则是关注点分离。而实现关注点分离,就是要做到"高内聚"和"松耦合"。在面向对象领域,主要指以下七个原则:(1) 单一职责原则;(2) 开闭原则;(3) 里氏替换原则;(4) 接口隔离原则;(5) 依赖倒置原则;(6) 迪米特法则;(7) 组合/聚合复用原则。原创 2023-08-13 14:46:32 · 268 阅读 · 0 评论 -
软件系统缓存设计
缓存(cache)是用于存储数据的硬件或软件的组成部分,以使得后续更快访问相应的数据。简单来说,缓存就是数据交换的缓冲区。缓存是一种空间换时间的设计。缓存中的数据可能是提前计算好的结果、数据的副本等。典型的应用场景:有 CPU cache,磁盘 cache,进程内缓存,分布式缓存,数据库缓存等。原创 2022-09-11 23:39:43 · 2488 阅读 · 0 评论 -
软件幂等性(Software Idempotence)
幂等性是一个数学和计算机科学领域的概念,公式表示为。简单来说,幂等性就是一个操作一次执行与多次执行产生的结果是一致的。幂等性是分布式系统设计中十分重要的概念,具有这一性质的接口在设计时总是秉持这样的一种理念:调用接口发生异常并且重复尝试时,总是会造成系统所无法承受的损失,所以必须阻止这种现象的发生。分布式系统在操作执行失败时,有时会选择“重试”,如果接口不具备“幂等性”,则会带来逻辑错误问题。原创 2022-09-25 23:42:19 · 1386 阅读 · 0 评论 -
幂等控制实践总结
幂等性是指多次执行同一操作与单次执行效果一致,在分布式系统中对保障数据一致性至关重要。常见实现方案包括:1)业务字段+唯一索引约束;2)独立去重表+事务控制;3)全局唯一ID;4)乐观锁版本控制;5)状态机机制,等。原创 2026-08-02 17:28:12 · 279 阅读 · 0 评论 -
闩锁和锁(Latches and Locks)
日常的开发中,经常听到闩锁和锁。可能我们对锁的了解要多一些(如数据库锁、线程锁、分布式锁等),但是对闩锁可能了解不多。本文将从锁和闩锁的分类出发,介绍下闩锁和锁的相同与不同,以及各自的应用场景。原创 2022-10-30 20:08:58 · 2018 阅读 · 0 评论 -
鸿沟理论(The Chasm Theory)介绍
鸿沟理论由Jeffery Moore(杰弗里 摩尔)于1991年提出,距今已有 30 年时间,但该理论至今依然奏效,另外该理论也在 CNCF 项目的中得到应用。本文将介绍”鸿沟理论“相关的一些知识,希望能够引发大家对技术选型、新技术推广的一些思考。...原创 2022-07-10 20:02:43 · 11188 阅读 · 0 评论 -
IoC简介
IoC(Inversion of Control, 控制反转) 思想在现代框架设计中使用度越来越高。 IoC是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的实现方式叫做依赖注入(Dependency Injection,简称DI),还有一种实现方式叫“依赖查找”(Dependency Lookup)。原创 2021-02-01 21:14:19 · 1968 阅读 · 0 评论 -
正向与反向服务器
期望理解反向代理,在理解之前,尝试通过在正向代理和反向代理的对比中加深理解。正向代理正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。实例如下:正向代理是为了在防火墙内的局域网提供访问Internet的途径。常见的翻墙工具就是正向代理。另外,正向代理还可以使用缓冲特性来减少网络使用率。除此之外原创 2021-12-10 00:12:53 · 387 阅读 · 1 评论 -
负载均衡(Load Balance)
现在应用架构使用负载均衡器将客户端的请求路由到不同的应用服务器,以提高系统性能。一、负载均衡体系结构多台服务器通过网络设备相连组成一个服务器集群,每台服务器都提供相同或相似的网络服务。服务器集群前端部署一台负载均衡设备,负责根据已配置均衡策略将用户请求在服务器集群中的分发,为用户提供服务,并对服务器可用性的维护。对应体系结构如下:该结构的优势:(1) 低成本:按照业务量增加服务器个数即可;已有资源不会浪费,新增资源无需选择昂贵的高端设备。(2) 可扩展性:当业务量增长时,系统可通过增加服务器来满原创 2021-12-10 00:00:08 · 2625 阅读 · 0 评论
分享