刷新
不同类型的工业网关有何区别?

博主头像 工业网关是一种用于连接工业设备和网络的关键设备,它能够将不同协议、不同传输速率的工业设备连接到网络上,实现数据的传输和共享。不同类型的工业网关之间存在一些区别,以下是一些常见的工业网关类型及其区别: ...

最佳软件架构书籍终极清单 (2024)

博主头像 软件架构是成功开发软件产品的基础。精心设计的软件架构可以大大提高系统的质量。它还有助于降低出错风险,并使将来添加新特性和功能变得更加容易。在这篇博文中,我将为您列出 2024 年最值得一读的软件架构书籍,以及 2024 年将出版哪些有趣的软件架构书籍。当然,这些书籍中的大多数也是 2023 年最佳软 ...

Redis能保证数据不丢失吗?

博主头像 Redis主要在内存中操作数据,内存是一种临时存储,一旦断电(或者硬件故障、软件错误等),内存中的数据就会烟消云散。有的同学会说,数据不是会保存到硬盘吗?是的,但是还是可能会有一些数据来不及写入硬盘,这是Redis的持久化机制导致的。而且,即使Redis将全部数据都及时保存到了硬盘,硬盘出现问题也可... ...

[设计模式]创建型模式-抽象工厂模式

博主头像 简介 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式将一组具有共同主题的单个工厂封装起来,它提供接口用于创建相关或依赖对象的家族,而不需要指定具体的类。 抽象工厂模式包含以下几个核心角色: 抽象工厂(Abstract Facto ...

新零售SaaS架构:什么是订单履约系统?

博主头像 订单履约系统用来管理从接到销售订单,到把货品送到客户手中的整个业务过程。它是上游交易(如销售和客户下单环节)和下游仓储配送(如库存管理、物流)之间的桥梁,确保信息流的顺畅和操作的协同,提升整个供应链的效率和响应速度。 ...

[SWPUCTF 2021 新生赛]ez_unserialize

博主头像 概括 这是一道PHP反序列化的CTF赛题,本意是想用这道题对PHP反序列化进行一定的学习。 过程 我们打开赛题,看看内容 没有发现什么东西,看看他的页面代码 根据他的提示,感觉是存在一个robots.txt文件的,尝试访问一下。 进去看看。 果然如此 我们来分析一下这段代码 <?php error_ ...

我们在SqlSugar开发框架中,用到的一些设计模式

博主头像 我们在《SqlSugar开发框架》中,有时候都会根据一些需要引入一些设计模式,主要的目的是为了解决问题提供便利和代码重用等目的。而不是为用而用,我们的目的是解决问题,并在一定的场景下以水到渠成的方式处理。不过引入任何的设计模式,都会增加一定的学习难度,除非是自己本身领会比较好了,就会显得轻松一些。本... ...

[设计模式]创建型模式-简单工厂模式

博主头像 简介 简单工厂模式又称为静态工厂模式,属于创建型模式,但不属于GOF23设计模式。由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 简单工厂适用场景:工厂类负责创建的对象比较少;客户端只需要知道传入工厂类的参数,对于如何创建对 ...

[设计模式]创建型模式-单例模式

博主头像 前言 单例模式是最简单的一种模式。在Go中,单例模式指的是全局只有一个实例,并且它负责创建自己的对象。单例模式有减少内存和系统资源开销、防止多个实例产生冲突等优点。 因为单例模式保证了实例的全局唯一性,并且只被初始化一次,所以比较适合全局共享一个实例,且只需要被初始化一次的场景,例如数据库实例、全局 ...

[设计模式]行为型模式-策略模式

博主头像 前言 策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换,且算法的变换不会影响使用算法的客户。 在项目开发中,我们经常要根据不同的场景,采取不同的措施,也就是不同的策略。假设我们需要对a、b这两个整数进行计算,根据条件的不同,需要执行不同的计算方式。我们可以把所有的操作都封装在同一个 ...

遍历用for还是foreach?

博主头像 在编程的世界里,我们经常需要对数据进行循环处理,常用的两种方法就是:for循环和foreach循环。想象你站在一条装满宝贝的传送带前,你要亲手检查每一件宝贝。使用for循环就像是你亲手控制传送带的速度和方向,而使用foreach循环则是传送带自动运转,你只需专注于宝贝本身。 ...

分布式事务详解

博主头像 概述 随着互联网的发展,软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布 ...

Elasticsearch实现Mysql的Like效果

博主头像 在Mysql数据库中,模糊搜索通常使用LIKE关键字。然而,随着数据量的不断增加,Mysql在处理模糊搜索时可能面临性能瓶颈。因此,引入Elasticsearch作为搜索引擎,以提高搜索性能和用户体验成为一种合理的选择。 1、客户的诉求 在ES中,影响搜索结果的因素多种多样,包括分词器、Match搜 ...

系统干崩了,只认代码不认人

博主头像 各位朋友听我一句劝,写代码提供方法给别人调用时,不管是内部系统调用,还是外部系统调用,还是被动触发调用(比如MQ消费、回调执行等),一定要加上必要的条件校验。千万别信某些同事说的这个条件肯定会传、肯定有值、肯定不为空等等。这不,临过年了我就被坑了一波,弄了个生产事故,年终奖基本是凉了半截。 为了保障 ...

java代码实现自动生成数据库表er图

博主头像 最近有同事看到字节跳动产品设计文档里有数据库表er图。就想问问又没有现成的工具也给直接生成一个er图,经查找验证发现并没有。因为现在表关系都是用的逻辑外键而非物理外键约束的,所以像navicat等工具就算生成了也没有描述关系的连接线。那么为了满足需求,这边就略微出手写了个代码实现er关系的工具。(注 ...

新零售SaaS架构:促销系统架构设计

博主头像 促销业务概述 什么是促销? 促销是商家用来吸引消费者购物的一种手段,目的是让更多的人知道并购买他们的产品,这样就能卖得更多。促销的方法有很多种,比如,价格优惠、赠品、优惠券、折扣、买一赠一等形式。 特别是在新零售行业,促销更加重要,由于新零售是线上和线下结合的,顾客可以在线上看到促销信息,然后在实体 ...

<1234···50>