
软件设计模式
文章平均质量分 91
MobotStone
曾在三家世界500强企业担任要职
十多年一线技术经验
多年技术管理经验
曾主导十多款大型项目
在此分享我的工作及技术经验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
系统架构的精髓:18个必懂的设计概念一览
本文主要介绍了一些关于分布式系统的关键概念。包括内容分发网络(CDN),其通过地理位置近的服务器缓存和传递内容来提高性能。正向代理和反向代理分别作为客户端与互联网,或网页服务器与互联网之间的中介。数据库的缓存层可以提高数据访问速度,数据库的水平和垂直分区可以提高查询性能,而数据库复制(主从复制)可以提高数据的可用性和冗余性。在分布式系统中,消息传递系统用于在应用之间交换消息,微服务架构将一个应用分解为一组可以独立开发和部署的服务,NoSQL数据库用于处理非结构化数据,数据库索引可以提高查询速度。原创 2023-06-26 17:43:09 · 351 阅读 · 0 评论 -
推荐系统:基于内容的过滤
上一篇文章我们介绍了,可以通过关联规则挖掘算法Apriori来实现关联规则推荐系统,今天我们来聊聊如何通过基于内容的过滤来实现推荐系统。基于内容的过滤是用作推荐系统的另一种常用方法之一。内容的相似性是根据产品元数据计算的,它提供了制定推荐的选择,推荐与用户过往购买过的产品相关性最相似的产品。元数据代表产品/服务的特性。例如,一部电影的导演、演员、编剧;作者、封底文章、书籍的译者或产品的类别信息。此图像包含用户喜欢的电影的描述。原创 2023-04-20 14:18:49 · 1275 阅读 · 0 评论 -
为什么要学习GoF设计模式?
在面向对象设计中,模式是常见问题的一种典型解决方案。当一个解决方案在各种项目中一次又一次地出现时,最终会有人为其命名并详细描述它。这就是发现模式的方式。模式就像预制的蓝图,我们可以对其进行自定义以解决代码中反复出现的问题。模式不是一段特定的代码,而是解决特定问题的一般思路或者概念。我们可以遵循模式详细信息,并实施适合程序的解决方案。原创 2022-09-18 23:42:28 · 229 阅读 · 0 评论 -
重新学习设计模式一:什么是设计模式
设计模式是什么?这个是老生常谈的问题了,它并不是教人如何设计用户界面,怎么学习编程语言,也不是告诉你什么是面向对象数据库等方法。设计模式是一套可以被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。在软件设计过程中可以设计成解决一些不断重复的业务,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路(比如太极拳套路等),是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。这样做的目的是为了提高代码的可重用性、代码的可读性,程序的可维护性和代码的可靠性。原创 2022-03-06 11:33:13 · 252 阅读 · 0 评论 -
人工智能项目的十条建议——概念篇
随着各行各业的企业通过提高自动化来改善工作流程,以及产品和服务的交付,对采用更先进的人工智能能力和项目的需求不断增长。当然,只有在合适的条件下,人工智能和机器学习可以带来巨大的投资回报。在任何情况下,无论是从业务角度还是技术角度,人工智能项目都必须以正确的方式构建。为了建立这个框架,根据以往经验,我总结了“十条建议”,分为两篇:概念篇,执行篇,下文是概念篇的内容。原创 2022-02-11 14:19:09 · 690 阅读 · 0 评论 -
十张图了解疫情下美国消费行为转变
最新看了一下麦肯锡的报告,记录一下报告中十张消费趋势图的信息,从图中可以看出随着冠状病毒危机的发展,消费者将继续重视什么。任何第一次通过直播订购杂货送货上门的人都明白,COVID-19 危机对我们作为消费者的行为产生了多么深远的影响。但这些变化中的哪一个会持续下去?我们看到几个关键:- 购物习惯转移到网上- 对忠诚度的冲击很大- 需要卫生透明度- 回到基础和价值- 居家经济的兴起原创 2022-02-10 18:30:09 · 3081 阅读 · 0 评论 -
谁才是微服务王者:Quarkus 与 Spring Boot
在容器时代(“ Docker 时代”),无论您是否在使用它,都不可否定java的活力。Java 在性能方面一直比较有优势,主要是因为代码和真实机器之间的抽象层,多平台的成本(一次编写,随处运行 - 还记得吗?),其中包含 JVM -between(JVM:模拟真实机器所做的软件机器)。如今,使用微服务架构,也没有任何优势,为总是在同一个地方和平台上运行的东西(Docker 容器 - Linux) 环境构建多平台(解释)的东西。可移植性现在不那么重要了(可能比以往任何时候都重要),那些额外的抽象级别并不重原创 2022-02-09 17:59:05 · 1748 阅读 · 0 评论 -
Spring Boot 还是最先进的java框架吗
Spring Boot 和 Jakarta EE 都是用于开发微服务的强大且精心设计的概念。当我谈论 Jakarta EE 和微服务时,我也总是谈论Eclipse Microprofile,它是当今 Jakarta EE 的标准扩展。开发微服务 Spring Boot 和 Jakarta EE 的概念非常相似。原因是, Jakarta EE 很多技术都受到了 Spring 和 Spring Boot 的启发。“*约定优于配置*”、*CDI或注解*的密集使用等概念最早是由 Spring 提出来的。这证明了 S原创 2022-02-08 12:31:59 · 1803 阅读 · 0 评论 -
2022年衡量技术债务的8个主要指标
技术债务指标可帮助您监控当前代码库中的缺陷。今天我们要看看它们是如何工作的,并挑选出最好的跟踪工具。技术债务指标旨在帮助您理解您收集的所有数据。现在有许多不同的指标可供选择,并且有大量用于记录数据的工具。原创 2022-02-07 10:46:58 · 1217 阅读 · 0 评论 -
Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪使用指南
对于一个做所有事情的大型应用程序(我们通常将其称为单体应用程序),跟踪应用程序内的传入请求很容易。我们可以跟踪日志,然后弄清楚请求是如何处理的。除了应用程序日志本身之外,我们无需查看其他任何内容。随着时间的推移,单体应用程序变得难以扩展,难以处理大量请求以及随着代码库规模的不断扩大向客户提供新功能。这导致将单体架构分解为微服务,这有助于扩展单个组件并有助于更快地交付。原创 2022-02-06 16:27:38 · 414 阅读 · 0 评论 -
使用 Spring Cloud Jaeger 进行分布式跟踪
Jaeger 是一种开源分布式跟踪机制,有助于跟踪分布式系统中的请求。它基于OpenTracing规范,是云原生计算基金会 (CNCF)的一部分。原创 2022-02-05 15:07:39 · 1107 阅读 · 0 评论 -
软件模式之单体架构介绍
您正在开发服务器端企业应用程序。它必须支持各种不同的客户端,包括桌面浏览器、移动浏览器和本地移动应用程序。该应用程序还可能公开一个 API 供第 3 方使用。它还可以通过 Web 服务或消息代理与其他应用程序集成。应用程序通过执行业务逻辑来处理请求(HTTP 请求和消息);访问数据库;与其他系统交换消息;并返回 HTML/JSON/XML 响应。有对应于应用程序不同功能区域的逻辑组件。原创 2022-01-26 11:14:06 · 1742 阅读 · 0 评论