刷新
设计模式(十五)解释器

博主头像 一、定义 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种行为型模式。 二、描述 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它主要用于描述如何使用面向对象语言构成一个简单的语言解释器,包含以下四个角色: 1、Ab ...

线性代数的艺术

博主头像 推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容,就把线性代数的重点全画完了,清晰明了。 《线性代数的艺术》PDF版本:https://pan.q ...

[编程]UML语言:理论之光与实践之惑

UML是软件工程的重要工具,但维护成本过高,导致实践中表现不佳。本文提出在人工智能支持下实现UML由“表达工具”向“认知工具”转型的路径,使之摆脱过高的人工学习和维护成本,重现辅助软件开发的效用。 ...

设计规则:模块化的力量

博主头像 这是一本比较冷门的书《设计规则:模块化的力量》,虽然豆瓣上只有58个评价,但是确实能学到很多东西。 这本书对我非常深远。不是是投资,创业,还是其他领域,模块化思想都能帮上你。这本书告诉我们生万物的规则。 书籍电子版PDF(建议及时保存,避免被和谐):https://pan.quark.cn/s/aa ...

写代码不用"if"行不行,曾经的反 if 运动

博主头像 如果在IT行业的时间够长的话,可能还记得大约10几年前,设计模式风靡一时的时候,有过一段反 "if" 的运动。 所谓的反"if"运动,其实是夸大了"if"语句带来的问题,比如当时提出的问题有: 代码不好维护,特别是if或者else中的代码比较多的时候 if和 else if分支太多的时候,代码难以阅 ...

生产实践:Redis与Mysql的数据强一致性方案

博主头像 数据库和Redis如何保持强一致性,这篇文章告诉你 目的 Redis和Msql来保持数据同步,并且强一致,以此来提高对应接口的响应速度,刚开始考虑是用mybatis的二级缓存,发现坑不少,于是决定自己搞 要关注的问题点 操作数据必须是唯一索引 如果更新数据不是唯一索引,则数据库更新后的值,与缓存不一 ...

UDP分片和丢包与TCP效果对比

博主头像 UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?UDP(用户数据报协议)和TCP(传输控制协议)在很多方面都有显著的区别。总体来说,TCP更适合需要可靠传输的应用,例如网页浏览、电子邮件等,而UDP则更适合对速度有高要求,但对数据完整性要求较低的应用,例如实时视频流或游戏。在多数网络环境下, ...

如何做好架构设计,架构设计有章可循吗?

博主头像 我们在刚开始架构设计时手足无措,但是随着我们完成一个又一个的系统架构设计以后,发现架构设计是有章法可循的,只要我们学习这些章法和套路,并且在工作过程中不断的积累与沉淀,就会行成一个完整的架构设计方法论,面对新的大型系统架构设计,也会一步一步有节奏进行,最终完成整体的架构设计 ...

领域驱动设计之银行转账:Wow框架实战

领域驱动设计之银行转账:Wow框架实战 银行账户转账案例是一个经典的领域驱动设计(DDD)应用场景。接下来我们通过一个简单的银行账户转账案例,来了解如何使用 Wow 进行领域驱动设计以及服务开发。 银行转账流程 准备转账(Prepare): 用户发起转账请求,触发 Prepare 步骤。这个步骤会向 ...

系统设计(架构师)指南A:PlatformIO云IDE实例

PlatformIO简介 PlatformIO是一个开源的物联网(IoT)开发平台,旨在提供跨平台的软件开发工具和框架,使开发者能够更轻松地构建和部署嵌入式系统和物联网设备。 PlatformIO提供了统一的开发环境,支持多种不同的开发板和微控制器平台,包括Arduino、Raspberry Pi、 ...

第二次博客作业

博主头像 前言 这是第二次博客作业,总结了近三次PTA大作业的完成情况,这三次的大作业难度逐渐增大,完全理不清逻辑,真的越想越混乱,代码写的也是很乱,没有一个整体的框架结构,读起来很困难,没有学到java程序编写的真谛,总之对于我,一个逻辑很差很差的人来说,越来越复杂的题目,写起来真的痛苦,到后面的题目,基本 ...

【虹科干货】如何构建弹性、高可用的微服务?

博主头像 微服务架构可以更快地推出新产品,帮助产品更轻松地扩展,并更好地响应客户需求。凭借多种现代数据模型、在任何情况下的容错性、用于隔离的多租户功能以及在多个环境中部署的灵活性,Redis Enterprise 使开发人员和运营商能够针对微服务架构优化他们的数据层。 ...

c#中命令模式详解

基本介绍: 命令模式,顾名思义就是将命令抽象化,然后将请求者和接收者通过命令进行绑定。 而命令的请求者只管下达命令,命令的接收者只管执行命令。 从而实现了解耦,请求者和接受者二者相对独立。 单独理解起来比较困难,咱们还是通过具体实例来说明吧。 举例说明: 生活中遥控控制电器就是命令模式,比如智能开关 ...

分布式应用服务的拆分

博主头像 需求落地分布式应用服务 将需求转化为分布式应用服务的过程可以按照以下步骤进行: 理解需求:首先,你需要仔细阅读和理解业务需求。与相关的利益相关者(如业务分析师、产品经理等)进行沟通,确保你对需求的理解是准确的。 设计架构:根据需求,设计一个适合的分布式应用架构。这包括确定应用的组件和模块,以及它们之 ...

c#中责任链模式详解

基本介绍: “责任链”顾名思义,是指一个需要负责处理请求的链条。 每个链条节点都是一个单独的责任者,由责任者自己决定是否处理请求或交给下一个节点。 在设计模式中的解释则为:为请求创建了一个接收者对象的链。适用于有多个对象可以处理同一个请求,但具体由哪个对象处理则在运行时动态决定的情况。 俗话说起来就 ...

c#中代理模式详解

基本介绍: “代理”顾名思义指以他人的名义,在授权范围内进行处理事情的意思。 在编程语言中的则解释为:为其他对象提供一种代理以控制对这个对象的访问。 从释义上不难解读,代理本质就是一个中介,客户通过中介来访问原对象。本质就是在原对象基础上包了一层封装。 那么问题来了,为什么不直接使用原对象,反而多此 ...

<1···678···50>