刷新
观察者模式——学习笔记

博主头像 观察者模式 介绍 观察者模式是极其重要的一个设计模式,在许多框架都使用了,以及实际开发中也会用到。 定义对象之间的一种一对多的依赖关系,使得每当一个对象的状态发生变化时,其相关的依赖对象都可以得到通知并被自动更新。主要用于多个不同的对象对一个对象的某个方法会做出不同的反应! 以不同观察者从同一个天气 ...

QQ音乐高可用架构体系

博主头像 故障无处不在,而且无法避免。(分布式计算谬误) 在分布式系统建设的过程中,我们思考的重点不是避免故障,而是拥抱故障,通过构建高可用架构体系来获得优雅应对故障的能力。QQ音乐高可用架构体系包含三个子系统:架构、工具链和可观测性。 ...

软件架构模式

博主头像 作者:Mark·Richards 简介 架构模式帮助你定义应用程序的基本特征和行为。例如,一些架构模式会让程序自己自然而然地朝着具有良好伸缩性的方向发展,而其他架构模式会让程序朝着高度灵活的方向发展。知道了这些特点,了解架构模式的优点和缺点是非常必要的,它必须我们选择一个适合自己特定的业务需求和目标 ...

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

博主头像 简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ...

系统性能优化十大绝招

博主头像 软件设计开发某种意义上是“取”与“舍”的艺术。 关于性能方面,就像建筑设计成抗震9度需要额外的成本一样,高性能软件系统也意味着更高的实现成本,有时候与其他质量属性甚至会冲突,比如安全性、可扩展性、可观测性等等。 大部分时候我们需要的是:在业务遇到瓶颈之前,利用常见的技术手段将系统优化到预期水平。 ...

Nginx

博主头像 一、Niginx是什么? Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 Niginx是一款轻量级的web服务器/反向代理器, Nginx是高性能的HTTP和 反向代理的web服务器,处理高并发的能力十分强大,能够经受高负载的考验,高达5万个并 ...

怎么利用异步设计提升系统性能?

博主头像 这篇文章主要描述异步设计,异步是一种程序设计的思想,使用异步模式设计的程序可以显著减少线程等待,从而在高吞吐量的场景中,极大提升系统的整体性能,降低请求时延。 ...

企业应该拥有自己的代码平台-程序员应该写有能力的代码

博主头像 要 在大数据,云计算,人工智能盛行的环境下,程序员该何去何从?企业自有的研发团队又该如何规划?这两个问题在五年前,我就认真的思考和深入的分析过。程序开发模式基本经历了以下阶段。 传统的程序开发阶段 在对需求进行调研和分析后,最终得到系统的设计架构和技术选型;接下来就是程序员从第一行代码纯手工的编写, ...

怎么处理消息积压问题?

博主头像 这篇文章主要描述如何解决消息重发的问题,目前主流的消息队列产品都采用了At least once的服务质量,这就导致了很难避免消息重发的情况,我们可以将消费者业务逻辑设计成幂等服务来解决消息重发问题。 ...

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

博主头像 【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,来实现二者的解耦。参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。 ...

如何正确理解并科学实践DDD

博主头像 客观的理解DDD DDD,即领域驱动设计,不仅带给我们一套新的概念,还提供了一套全新的设计思路,应用在构建大型复杂软件系统之上。 相对于DDD,我们使用的传统的设计思路,常被称为数据驱动设计,常被应用于中小型的项目。互联网的项目,往往是快速迭代,起初一个小项目,慢慢会演化为一个中大型的项目,在演化过 ...

怎么处理消息重发的问题?

博主头像 这篇文章主要描述如何解决消息重发的问题,目前主流的消息队列产品都采用了At least once的服务质量,这就导致了很难避免消息重发的情况,我们可以将消费者业务逻辑设计成幂等服务来解决消息重发问题。 ...

当我把ChatGPT拉进群聊里,我的朋友都玩疯了

博主头像 前言 近期ChatGPT可以说是太火了,问答、写论文、写诗、写代码,只要输入精确的prompt,他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中,会是怎样一番场景?说做就做,花了1个晚上捣鼓了一个小Demo【ChatGPT群聊助手】,凭借它的“聪明才智”,应该可以搞定我的 ...

怎么做才能不丢消息?

博主头像 这篇文章主要描述如何在使用消息队列时避免丢消息,包括检测消息丢失的方法以及消息从生产到完成消费的过程中,经历的生产、存储和消费这三个阶段是分别如何保证消息可靠传递的。 ...

.NET应用系统的国际化-整体设计思路

博主头像 近期产品要支持国际化多语言,主要涉及前端界面国际化以及后端提示信息、异常信息的国际化多语言支持。 目前我们的开发技术栈:前端VUE、后端.NET。面向前端界面和后端服务,分别涉及对应的国际化多语言支持方案。 一、前端界面国际化多语言支持 前端VUE界面的源码如下: 上述代码中,我们将需要多语言支持的 ...

SpringCloud微服务实战——搭建企业级开发框架(五十):集成移动端推送功能的系统通知公告数据库设计

博主头像 系统的通知公告功能似乎是很容易被忽略的功能模块,在传统的软件系统中,一般OA类软件系统不可或缺,而在应用软件系统中此功能或有或无,在现在大多数的互联网软件系统中,此功能又必不可缺。所以,在框架设计时,我们需要考虑业务系统是否需要此功能模块,然后将此功能作为扩展插件,在需要时开启,在不需要时配置关闭即 ...

<1···404142···50>