- 博客(895)
- 资源 (58)
- 收藏
- 关注
转载 微服务架构系列主题:微服务注册中心产品ZooKeeper、Eureka、Consul、Nacos对比
本文转自:架构师目录背景介绍CAP理论服务注册中心解决方案主流注册中心产品Apache Zookeeper -> CPSpring Cloud Eureka -> APConsul默认依赖于SDKConsul TemplateNacos背景介绍服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分
2022-05-23 15:13:34 853
转载 架构设计参考项目系列主题:大数据平台核心架构图鉴
本文转自:Java技术栈目录一、数据采集二、数据存储与分析三、数据共享四、数据应用五、实时计算六、任务调度与监控我们先来看看这张图,这是某公司使用的大数据平台架构图,大部分公司应该都差不多:从这张大数据的整体架构图上看来,大数据的核心层应该是:数据采集层、数据存储与分析层、数据共享层、数据应用层,可能叫法有所不同,本质上的角色都大同小异。所以我下面就按这张架构图上的线索,慢慢来剖析一下,大数据的核心技术都包括什么。一、数据采集数据采集的任务就是把数据
2022-05-20 17:42:24 696
转载 架构设计参考项目系列主题:数据仓库建设 从0到1
本文转自:CIO之家数字化的如火如荼,让更多的人意识到数据的重要性。大数据时代的到来,面对爆发式增长的数据,如何将这些数据有序、有结构的分类和组织存储是我们面临的一个挑战。归结最终,打通数据壁垒、实现数据应用,是最为重要的事情。优秀的数据仓库价值主要体现在...
2022-05-19 22:46:59 232
转载 架构设计参考项目系列主题:如何画好一张架构图?
本文转自:阿里开发者目录什么是架构图?什么是架构?要表达的到底是什么?架构的本质要表达的是什么?架构的过程其实就是建模的过程模是什么?如何建?抽象的角度抽象的层次抽象的边界抽象的评估抽象的方法论(套路)如何画好一张架构图?画架构图是为了什么?怎么画?如何评判架构图的好坏最后也聊聊架构师快速学习不要屁股决定脑袋提升思考能力和对于技术原理或本质的理解最后的最后什么是架构图?如何画...
2022-05-19 22:30:30 590
转载 微服务架构系列主题:如何保证用户模块的数据安全?
本文转自:Java技术栈目录写在前面用户管理模块中需要进行加密的地方如何选择加密算法实现加密功能小结写在前面在介绍具体方案之前,首先先介绍一下常见的加密算法。加密算法可以分为三大类: 对称加密算法 非对称加密算法 Hash算法 对称加密算法加密和解密使用相同的密钥。对称加密算法加密解密速度快,但安全性较差 常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES非对称加密算法加密和解密
2022-05-18 15:32:59 258
转载 架构设计参考项目系列主题:咨询+平台+实施三位一体中台建设方案
本文转自:CIO之家国内的数据中台兴起,大多是因为阿里巴巴提出的”大中台、小前台”的口号。现如今,数据的价值和重要性不言而喻。企业的管理者在做决策时,越来越想要先看数据。所以,好的数据基础,是决策和创新的加速器。而现在市场竞争如此激烈的大环境,不但需要企业做出正确的决策,效率和执行力也是关乎存亡的,数据中台即是数据创新效率的保障。
2022-05-18 15:10:03 494 2
原创 微服务架构系列主题:生产环境关闭swagger方法
目录swagger3 关闭配置(快捷方式)配置原理swagger2 关闭配置方法一:@ConditionalOnProperty方法二 @Profile方法三 @Value 配置Docket 失效办法swagger3 关闭配置(快捷方式)springfox: documentation: # 总开关(同时设置auto-startup=false,否则/v3/api-docs等接口仍能继续访问) enabled: false auto-startu
2022-05-18 15:01:26 5031 1
转载 架构设计参考项目系列主题:几种主流的分布式定时任务
本文转自:芋道源码目录单点定时任务JDK原生Spring Task基于 Redis 实现分布式定时任务引入分布式定时任务组件or中间件总结单点定时任务JDK原生自从JDK1.5之后,提供了ScheduledExecutorService代替TimerTask来执行定时任务,提供了不错的可靠性。publicclassSomeScheduledExecutorService{publicstaticvoidmain(String[]arg...
2022-05-12 22:38:35 199
转载 架构设计参考项目系列主题:用户留存建模实践
本文转自:阿里开发者一 问题思考在流量分析型产品的用户分析模块中,留存、互访、新老客构成等数据都是有效衡量用户粘性与促活召回的关键性指标;但是,我们发现在很多流量运营的业务场景中,留存分析建模都显著存在着设计和计算上的诸多问题,例如:各种历史库版本迭代的高额运维与存储成本、暴力计算、频繁计算、数据冷启动等问题。总结下来,有三个方面需要特别关注:1、场景理解:在非常多的业务场景中,模型研发人员偏向于通过构建用户粒度的全量历史库,再去聚合用户的新老标签或历史累计次数,但关键问题是,在这些场景中.
2022-05-12 22:28:20 128
原创 架构设计参考项目系列主题:Kubernetes(k8s)计划任务Job&CronJob
Job我们在日常的工作中经常都会遇到一些需要进行批量数据处理和分析的需求,当然也会有按时间来进行调度的工作,在Kubernetes集群中为我们提供了Job和CronJob两种资源对象来应对这种需求。Job负责处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。而CronJob则就是在Job上加上了时间调度。apiVersion: batch/v1kind: Jobmetadata: labels: job-name: echo name: echo
2022-05-12 15:11:35 786
转载 架构设计参考项目系列主题:kubernetes的架构与组件
本文转自:架构师kubernetes架构目标kubernetes是生产级的,用于跨主机部署,扩展,管理和组合应用程序容器的基础设施。kubernetes不仅仅是“容器编排”,他更加主要的解决方向是消除协调计算资源,网络和存储的负担,使开发人员以容器为中心,实现自己出发主导资源操作流程。kubernetes还提供了一个稳定的,可移植的,用于构建定制的工作流和更高级别自动化的平台。kubernetes主要针对多个容器构成的应用程序。因此kubernetes使用pod和label来构建松散或紧密的.
2022-04-21 23:03:44 169
转载 架构设计参考项目系列主题:分库分表及百亿级数据迁移
本文转自:技术锁话一 前言拆库&数据迁移说白了,考验的不是一个人的技术功底,而是一个人干活的细致程度,以及抗压能力。无论在哪个公司,数据库迁移的机会都不会太多,因此,我也是非常珍惜这次历练,用阿里的一句老话来说就是 “因人成事,借事修人”。写这篇文章的目的主要是自己进行一个总结,也希望能给需要的同学们一些参考。二 背景在星爷的《大话西游》中有一句非常出名的台词:“曾经有一份真挚的感情摆在我的面前我没有珍惜,等我失去的时候才追悔莫及,人间最痛苦的事莫过于此,如果上天能给我一次再来一..
2022-04-21 22:56:10 463
转载 架构设计参考项目系列主题:远程热部署在美团的落地实践
本文转自:高可用架构目录1 前言1.1 什么是热部署1.2 为什么我们需要热部署1.3 热部署难在哪1.4 Sonic可以做什么1.5 Sonic远程热部署落地推广的实践经验2 整体设计方案2.1 Sonic结构2.2 走进Agent2.3 那些年JVM和HotSwap之间的“相爱相杀”2.4 Sonic如何解决Instrumentation的局限性3 Sonic热部署技术解析3.1 Sonic整体架构模型3.2 Sonic功能流转3.3 文件
2022-04-21 21:18:00 723
转载 DDD(领域驱动设计)系列主题:DDD兴起的原因以及与微服务的关系
目录DDD为什么能火起来?微服务存在的问题DDD概述总结DDD为什么能火起来?我们先不讨论DDD的定义, 先梳理一下DDD火起来的背景, 根据我学习的套路, 永远是为什么为先,再是解决什么问题,是什么东西, 最后如何使用。我们都知道这些年随着设备以及技术的发展,软件架构发生了很多变化,从最初的单机(BS/CS)架构到后面的集中式架构,再到如今的微服务架构, 现在基本可以说是微服务架构盛行的时代, DDD早在2004年就由埃里克·埃文斯提出, 但一直处于一个不愠不火的状态,直到Ma
2022-04-21 18:32:23 272
转载 DDD(领域驱动设计)系列主题:如何构建基于 DDD 领域驱动的微服务
本文转自:架构师目录前言领域驱动设计和有界上下文微服务与有限上下文如何相关上下文映射—精确划分微服务边界的一种方法重新定义服务边界—将聚合映射到正确的上下文事件风暴-识别服务边界的另一种技术微服务之间的通信围绕最终一致性设计应用程序支持事件驱动的架构避免针对特定消费者数据需求的服务之间的编排前端的后端BFF结论前言尽管微服务中的“微”一词表示服务的规模,但它并不是使用微服务的唯一标准。当团队转向基于微服务的架构时,他们旨在提高敏捷性以及自主且频
2022-04-21 18:27:18 537 1
转载 架构设计参考项目系列主题:万亿流量场景下的负载均衡实践
本文转自:架构师阿里双11流量下的负载均衡双十一流量特点请求量巨大,脉冲式的。是对阿里生态链路上所有服务的考验对负载均衡器的要求: 性能优良:应对双11当晚脉冲式的流量冲击 服务稳定:可用性高,以应对设备和网络的抖动 业务无感:顺滑的自身升级和容灾切换 实现原理1)优良性能依赖DPDK阿里的新一代负载均衡器是基于DPDK[2]来实现的。其优势总结如下*[3]正是由于这些专门针对数据包的高性能支持,才得以实现性能优良的负载均衡器来支撑多年双11场景下的脉冲
2022-04-21 17:22:43 161
转载 微服务架构系列主题:SpringCloud 优雅下线+灰度发布
本文转自:芋道源码前言目录前言优雅下线常见的下线方式优雅的下线方式灰度发布蓝绿部署滚动部署金丝雀部署前言在生产环境中,如何保证在服务升级的时候,不影响用户的体验,这个是一个非常重要的问题。如果在我们升级服务的时候,会造成一段时间内的服务不可用,这就是不够优雅的。那什么是优雅的呢?主要就是指在服务升级的时候,不中断整个服务,让用户无感知,进而不会影响用户的体验,这就是优雅的。实际上,优雅下线是目标,而不是手段,它是一个相对的概念,例如kill PID和kil
2022-04-18 14:52:47 233
转载 SRE 到底是什么?
本文转自:架构师目录前言InfrastructurePlatform SRE业务 SRE部署服务Oncall制定和交付 SLI/SLO故障复盘容量规划用户支持前言有很多人问过我,想了解一下 SRE 这个岗位,这是个很大的话题,在这篇博客中把想到的一些介绍一下。SRE 到底是什么?这是一个最早由 Google 提出的概念,我的理解是,用软件解决运维问题。标准化,自动化,可扩展,高可用是主要的工作内容。这个岗位被提出的时候,想解决的问题是打破开发人员想
2022-04-18 14:16:55 290
转载 微服务架构系列主题:SpringCloud 分布式日志采集方案
本文转自:Java高性能架构由于微服务架构中每个服务可能分散在不同的服务器上,因此需要一套分布式日志的解决方案。spring-cloud提供了一个用来trace服务的组件sleuth。它可以通过日志获得服务的依赖关系。基于sleuth,可以通过现有的日志工具实现分布式日志的采集。这里使用的是ELK,也就是elasticsearch、logstash、kibana。01 sleuth第一步:sleuth管理端sleuth一般单独放在一个工程中。需要添加如下依赖<dependen
2022-04-18 13:36:58 464
转载 分布式缓存系列主题:使用 Spring Cache 实现缓存,这种方式才叫优雅
文本转自: 勇哥java实战目录1 硬编码2 缓存抽象2.1 Spring AOP2.2 缓存声明2.2.1 @Cacheable注解2.2.2 @CachePut注解2.2.3 @CacheEvict注解2.3 缓存配置3 入门例子3.1 集成caffeine3.1.1 maven依赖3.1.2 Caffeine缓存配置3.1.3 业务代码3.2 集成Redisson3.2.1 maven依赖3.2.2 Redisson缓存配置...
2022-04-17 09:35:27 773
转载 微服务架构系列主题:Nginx40问题和答案
问题转自:Java高性能架构 什么是Nginx? Nginx 有哪些优点? Nginx应用场景? Nginx怎么处理请求的? Nginx 是如何实现高并发的? 什么是正向代理? 什么是反向代理? 反向代理服务器的优点是什么? Nginx目录结构有哪些? Nginx配置文件nginx.conf有哪些属性模块? cookie和session区别? 为什么 Nginx 不使用多线程? ng
2022-04-15 14:09:44 1501
转载 如何基于 Git 设计合理的多人开发模式
本文转自:Java高性能架构一个企业级项目是由多人合作完成的,不同开发者在本地开发完代码之后,可能提交到同一个代码仓库,同一个开发者也可能同时开发几个功能特性。这种多人合作开发、多功能并行开发的特性如果处理不好,就会带来诸如丢失代码、合错代码、代码冲突等问题。所以,在编码之前,我们需要设计一个合理的开发模式。又因为目前开发者基本都是基于 Git 进行开发的,所以本节课,我会教你怎么基于 Git 设计出一个合理的开发模式。那么如何设计工作流呢?你可以根据需要,自己设计工作流,也可以采用业界沉淀下来
2022-04-13 23:23:22 926
转载 架构设计参考项目系列主题:容灾技术方案
目录一、容灾模式二、数据容灾技术选择度量标准三、架构实践一、容灾模式当前市场上常见的容灾模式可分为:同城容灾、异地容灾、 双活数据中心、 两地三中心几种。1、同城容灾同城 容灾 是在同城或相近区域内 ( ≤ 200K M )建立两个数据中心 : 一个为数据中心,负责日常生产运行 ; 另一个为灾难备份中心,负责在灾难发生后的应用系统运行。同城灾难备份的数据中心与灾难备份中心的距离比较近,通信线路质量较好,比较容易实现数据的同步 复制 ,保证高度的数据完整性和数据零丢失。同城
2022-04-13 23:09:20 1445
转载 微服务架构系列主题:一口气说出 6 种实现延时消息的方案
本文转自:架构师目录前言实现方案基于外部存储实现的方案基于 RocksDB基于RedisRocketMQPulsarQMQ前言延时消息(定时消息)指的在分布式异步消息场景下,生产端发送一条消息,希望在指定延时或者指定时间点被消费端消费到,而不是立刻被消费。延时消息适用的业务场景非常的广泛,在分布式系统环境下,延时消息的功能一般会在下沉到中间件层,通常是 MQ 中内置这个功能或者内聚成一个公共基础服务。本文旨在探讨常见延时消息的实现方案以及方案设计的优缺
2022-04-13 23:04:06 332
转载 微服务架构系列主题:基于SpringBoot实现全链路调用日志跟踪
本文转自:架构师目录MDC 介绍1、简介:2、API说明:3、优点:MDC 使用1、添加拦截器2、修改日志格式MDC 存在的问题解决 MDC 存在的问题子线程日志打印丢失traceId线程池封装类:ThreadPoolExecutorMdcWrapper.java线程traceId封装工具类:ThreadMdcUtil.javaHTTP调用丢失traceId1、HttpClient:2、OKHttp:3、RestTemplate:4、第
2022-04-09 11:42:54 539
转载 微服务架构系列主题: 一文弄清楚项目里的各种配置
本文转自:Java技术栈目录引言什么是配置?硬编码参数项目里配置文件文件系统上的配置文件网络上的配置文件启动参数(JVM属性)操作系统参数后记引言项目开发中总是有各种各样的配置,对于程序开发新手来说,配置是摆在面前的第一座大山。回想当年在学校学习经典的“SSH”的时候,一个web.xml配置都是异常的艰辛。工作多年的你,对配置真的了解吗?什么是配置?首先我们来看一下配置文件的定义:“A software file used to config
2022-04-07 13:40:33 334
原创 认证与服务系列主题:微服务认证鉴权与API权限控制
从单体应用架构到分布式应用架构再到微服务架构,应用的安全访问在不断的经受考验。为了适应架构的变化、需求的变化,身份认证与鉴权方案也在不断的变革。面对数十个甚至上百个微服务之间的调用,如何保证高效安全的身份认证?面对外部的服务访问,该如何提供细粒度的鉴权方案?1. 1. 背景最近在做权限相关服务的开发,在系统微服务化后,原有的单体应用是基于session的安全权限方式,不能满足现有的微服务架构的认证与鉴权需求。微服务架构下,一个应用会被拆分成若干个微应用,每个微应用都需要对访问进行鉴权,每个微应用都需
2022-04-06 16:06:13 1952
原创 认证与授权系列主题:OAuth 2.0 授权模式详解
目录OAuth 2.0 是什么?角色客户端的授权模式类型隐式授权模式密码模式客户端模式刷新访问令牌OAuth 2.0 是什么?oauth 2.0 是一个授权的开放网络标准角色Resource Owner:资源所有者,既用户 User Agent:用户代理 Authorization Server:既提供第三方登录服务的服务器 Client:第三方应用,我们的应用就是一个client客户端的授权模式类型授权码模式 隐式授权模式 密码模式 客户端模式
2022-04-06 13:51:58 323
转载 微服务架构系列主题: 微服务架构路线,看懂这张图就够了
本文转自: Java高性能架构目录为什么选择微服务架构?微服务架构路线基本思路Docker容器编排Docker容器管理API网关负载均衡服务发现事件总线日志记录监控和警报分布式追踪数据持久化缓存云供应商结论为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可
2022-04-03 10:32:03 1674
转载 操作系统系列主题:Linux 性能优化全景指南
本文转自: ImportNew目录1.1 性能指标1.2 到底应该怎么理解“平均负载”1.3 平均负载多少时合理2. CPU2.1 CPU 上下文切换(上)2.5 CPU 上下文切换(下)2.6 某个应用的 CPU 使用率达到 100%,怎么办?2.7 系统的CPU使用率很高,为什么找不到高 CPU 的应用?2.8 系统中出现大量不可中断进程和僵尸进程怎么办?2.9CPU 性能指标2.10 性能工具2.11 CPU 优化3. 内存3.1 Linu.
2022-03-31 15:24:58 467
转载 架构设计参考项目系列主题:聊聊分布式定时任务框架选型
本文转自:架构师目录我们先思考下面几个业务场景的解决方案:为什么我们需要定时任务java有哪些定时任务的框架单机分布分布式任务调度系统对比项目背景及社区力量支持集群部署多节点部署时任务不能重复执行日志可追溯监控告警弹性扩容缩容支持并行调度高可用策略失败处理策略动态分片策略和quartz框架对比综合对比总结和结论附 定时任务的其他方案我们先思考下面几个业务场景的解决方案: 支付系统每天凌晨1点跑批,进行一天清算,每月
2022-03-31 15:00:31 304
转载 DevOps主题系列:2022 年值得关注的 DevOps 趋势和最佳实践
本文转自: InfoQ 架构头条目录1 DevOps 的最新趋势是什么?2 关于 DevOps 的不同发展趋势的亮点微服务架构DevSecOps 的应用朝着完全无服务器的方向发展混合型是新的部署常态弹性测试成为主流GitOps 成为新常态将基础设施即代码纳入其中采用 DevSecOps 模式的 CISO启用 Kubernetes融合人工智能自动化的使用基础设施自动化和持续配置自动化工具促进混沌工程3 关键要点DevOps 集开发与运
2022-03-31 14:34:50 293
转载 缓存主题系列:Redis+Caffeine 两级缓存实战
本文转自:JavaGuide目录优点与问题准备工作V1.0版本V2.0版本V3.0版本总结在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如Guava cache或Ca
2022-03-29 22:34:03 533
转载 监控主题系列:在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践
本文转自:阿里巴巴中间件随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践和一些相关的思考,内容主要包括以下几个部分: 微服务、容器化技术演进的监控之痛 云原生时代,为什么是 Prometheus 阿里云 Prometheus 在微服务场景的落地实践 大规模落地实践挑战和解决方案 云原生可观测性的发展趋势和展望 01 微服务、容器化技术演进的监控之痛
2022-03-29 16:58:04 496
转载 微服务架构系列主题:微服务分布式事务之LCN、TCC特点、事务补偿机制缘由以及设计重点
本文转自:架构师目录XA协议二阶段提交协议第一阶段:投票第二阶段:事务提交LCNLCN核心步骤TCCTCC补偿机制业务补偿机制特点业务补偿的设计重点XA协议在上面提到的文章中, 分布式事务直接讲二阶段提交, 思维逻辑有些断层, 但是那毕竟是比较解决方案, 在这儿从理论上推导分布式事务的根基, 也就是为什么要二阶段提交。在单体应用中, 往往由自己来保证事务的一致性, 但是分布式中, 涉及到跨网络调用就难以保证, 从理论上讲两台机器理论上无法达到.
2022-03-28 14:49:43 322
转载 架构设计参考项目系列主题:优雅地处理重复请求(并发请求)
本文转自: 芋道源码目录利用唯一请求编号去重业务参数去重计算请求参数的摘要作为参数标识继续优化,考虑剔除部分时间因子请求去重工具类,Java实现总结对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是: 黑客拦截了请求,重放 前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。 .
2022-03-28 14:09:05 101
转载 容器系统主题:CRI 与 容器运行时
本文转自:博客园有了 CRI 之后,Kubernetes 的架构图,如下所示:CRI 机制能够发挥作用的核心,就在于每一种容器项目现在都可以自己实现一个 CRI shim,自行对 CRI 请求进行处理。这样,Kubernetes 就有了一个统一的容器抽象层,使得下层容器运行时可以自由地对接进入 Kubernetes 当中。除了 dockershim 之外,其他容器运行时的 CRI shim,都是需要额外部署在宿主机上的。举个例子。CNCF 里的 containerd 项目,就可以提供一个典型
2022-03-27 10:07:40 409
转载 DDD(领域驱动设计)系列主题:领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)
目录一、专业术语二、架构演变三、限界上下文四、领域驱动设计的四重边界五、整洁分层架构六、六边形架构七、洋葱架构八、总结我们生活中都听说了DDD,也了解了DDD,那么怎么将一个新项目从头开始按照DDD的过程进行划分与架构设计呢?一、专业术语各种服务IAAS:基础设施服务,Infrastructure-as-a-servicePAAS:平台服务,Platform-as-a-serviceSAAS:软件服务,Software-as-a-service二、
2022-03-22 23:04:12 380
转载 DevOps主题系列:DevOps落地实践及案例分享
本文转自:架构之家银行业为了应对业务的快速变化、互联网层面不穷的业务形态和交易压力,IT“双态(或双模)化”无可避免,开始探索部分业务参考互联网的方式引入分布式架构,但对于银行业独特的强监管、高安全、强一致性的行业要求前提下,如何在业务发展、合规、IT革新之间找到平衡?而DevOps被越来越多的金融企业所采用,来支撑软件生产过程的数字化转型,本文主要和大家分享在金融行业落地DevOps的一些坑,如何填坑以及一些心得体会!希望大家能够在自己企业中,找到适合自己企业的DevOps实践之路!目录:
2022-03-21 23:13:48 679
转载 设计模式和原则系列主题:如何利用迪米特法则实现“高内聚、低耦合”?
本文转自:JavaEdge目录1 何为“高内聚、低耦合”?1.1 高内聚1.2 低耦合1.3 “内聚”和“耦合”的关系2 迪米特法则3 案例3.1 不该有直接依赖关系的类之间,不要有依赖3.2 有依赖关系的类之间,尽量只依赖必要的接口。4 总结4.1 高内聚、低耦合4.2 迪米特法则1 何为“高内聚、低耦合”?“高内聚、低耦合”能有效地提高代码可读性、可维护性,缩小功能改动导致的代码改动范围。很多设计原则也都以实现代码“高内聚、低耦合”为目的,比...
2022-03-21 23:10:09 594
DevOps成熟度模型与效能度量
2023-10-23
深入解读SRE(站点可靠性工程)
2023-10-17
微服务设计模式大全详解
2023-04-15
MLOps机器学习运维和参考案例
2022-10-17
应用与服务开发规范标准文档
2022-04-19
云原生应用专业体系知识详解
2021-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人