解释器 设计模式 语言 模式

hash模式下前后端路径相同时,nginx如何转发

背景:前期没有进行前后端分离,前端页面由后端转发,即路由的前缀由后端的接口前缀决定;现在想要做到不改变路径做前后端分离且容器化。 前后端分离后,前后端的转发要根据路径前缀做转发,假如项目没有对外开放,内部使用,前端直接在router添加baseUrl,url会自动带上这个路径,以后访问路径需要更改; ......
路径 模式 nginx hash

Java:数据表的字段设计了默认值0不生效的原因

在数据表里给字段设置了默认值为0,但是在插入的时候不生效,数据表设计如下 通过数据表生成的实体类 查看代码 @Data @TableName(value = "user") @NoArgsConstructor @AllArgsConstructor public class UserEntity{ ......
数据表 字段 原因 数据 Java

设计模式(二十七)----行为型模式之解释器模式

1 概述 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int add(int a,int b){ return a + b; } ​ //用于两个整数相加 public static int a ......
模式 解释器 设计模式 行为

设计模式(二十五)----行为型模式之访问者模式

1 概述 定义: 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 2 结构 访问者模式包含以下主要角色: 抽象访问者(Visitor)角色:定义了对每一个元素(Element)访问的行为,它的参数就是可以访问的元素,它的方法个数理论上来讲 ......
模式 设计模式 访问者 行为

设计模式(二十四)----行为型模式之迭代器模式

1 概述 定义: 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 2 结构 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一 ......
模式 设计模式 行为

初学后端,如何做好表结构设计?

这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。 ......
结构设计 结构

Go语言 :使用简单的 for 迭代语句进行 TDD 驱动测试开发与 benchmark 基准测试

前提准备与运行环境请参考:(新手向)在Linux中使用VScode编写 "Hello,world"程序,并编写测试-Ubuntu20.4 在 Go 中 for 用来循环和迭代, Go 语言没有 while,do,until 这几个关键字,我们只能使用 for。这也算是件好事! 让我们来为一个重复字符 ......
基准 语句 benchmark 语言 for

前端设计模式——模板方法模式

模板方法模式(Template Method Pattern):定义一个行为的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个行为的结构即可重定义该行为的某些特定步骤。 这些步骤被称为“具体操作”(Concrete Operations),而整个行为的结构和顺序则被称为“模板方法”(T ......
模式 设计模式 前端 模板 方法

前端设计模式——桥接模式

桥接模式(Bridge Pattern)是一种结构型设计模式,用于将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能够更好地组合和扩展这些类。 在前端开发中,桥接模式通常用于处理 UI 组件的复杂性,将组件的抽象与实现分离,使得它们能够独立地变化。通过桥接模式,我们可以让组件的 ......
模式 设计模式 前端

前端设计模式——过滤器模式

前端设计模式中的过滤器模式(Filter Pattern)是一种结构型设计模式,它允许我们使用不同的条件来过滤一组对象,并返回符合条件的对象列表。 在过滤器模式中,我们有一个包含多个对象的列表,需要根据一些条件来筛选出符合条件的对象。通常情况下,可以使用多个过滤器来实现这个功能。每个过滤器都是一个独 ......
模式 设计模式 前端 过滤器

责任链模式

begin 2021年12月11日20:47:41 责任链模式 定义 Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the reques ......
模式 责任

简单明了的体会构建者模式

我们由一个小小的Demo来引出主题,尽管这个Demo有点长~~,我相信还是值得你一看的! 木兰诗中有:“雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雌雄?” 对象之间的比较想必大家都很熟悉。只须用 util 包中的Objects.equals()方法即可。如果我想找出对象之间不相同的属性呢? 那肯 ......
明了 模式

aspnetcore微服务中使用发件箱模式实例

aspnetcore微服务种服务之间的通信一般都有用到消息中间件,如何确保该服务的持久层保存创建的数据同时又把消息成功投递到了关联服务,关联服务做对应的处理。 下面就以一个简单的例子来演示实现方式之一,即发件箱模式。 下面解决方案有两个服务,做演示用的比较简单,一个是订单服务,一个是账单服务。完成订 ......
aspnetcore 实例 模式

结构型-装饰器模式

定义 如果希望动态给某个类添加一些属性或者方法,但是你又不希望这个类派生的对象受到影响,那么装饰器模式就可以给你带来这样的体验。 它的定义就是在不改变原对象的基础上,通过对其进行包装拓展,使得原有对象可以动态具有更多功能,从而满足用户的更复杂需求。 举个例子,一部手机,你可以买各种花里胡哨的手机壳等 ......
结构型 结构 模式

C语言 ini 文件读写【Iniparser库】

一、概述 iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库的API可以对ini文件(配置文件)进行解析、设置、删除等操作。 常见的 ini 读写开源库有:minIni、inifile、iniparser 二、使用 下载 Github:http ......
Iniparser 语言 文件 ini

深入理解Go语言中的sync.Cond

1. 简介 本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的使用使用场景。能够更好地理解和应用 Cond 来实现 goroutine 之间的同步。 2. 基本使用 2.1 定义 sync.Cond是Go语言标准库中的一 ......
语言 sync Cond

自己动手从零写桌面操作系统GrapeOS系列教程——20.汇编语言读硬盘实战

学习操作系统原理最好的方法是自己写一个简单的操作系统。 本讲我们设计一个简单的读硬盘实验。通过一定的方法使硬盘第二个扇区的前3个字节依次为1、2、3,最后3个字节依次为3、2、1,中间的506个字节全为0。然后通过读硬盘程序将硬盘第二个扇区的数据读取到内存0x7e00-0x7fff的地方,也就是内存 ......
实战 桌面 硬盘 GrapeOS 语言

自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘。同样也是设计一个简单的实验,实验内容为: 在内存中准备一段有特征的512字节数据,地址为0x7e00~0x7fff,其特征是前3个字节依次为4、5、6,最后3个字节依次为6、 ......
实战 桌面 硬盘 GrapeOS 语言

自己动手从零写桌面操作系统GrapeOS系列教程——17.用汇编语言清空屏幕

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在QEMU中会默认输出一些字符,有时候会干扰我们自己输出的字符。一个比较好的办法是向将屏幕清空,再输出我们想要输出的字符。下面就来学习如何清空屏幕。 一、清空屏幕 其实清空屏幕的原理很简单,就是将屏幕写满空格就行了。 下面来实战。mbr8.as ......
屏幕 桌面 GrapeOS 语言 教程

统一授权认证架构设计及实现

统一鉴权认证是一个基础服务。它几乎在所有企业内部都需要,企业内部只要有两个以上系统存在,就有必要实现一套统一的授权系统,否则用户使用非常地麻烦,需要在不同系统之间来回登录切换。特别是在微服务大行其道的今天,这个统一授权认证服务更是一个基础和关键入口。实现的方案有很多种,但都大同小异。 本文主要介绍授 ......
架构

fpm模式下读取到is_cli为何为true

php-fpm下读取到is_cli为true,不知道你们是否遇到过,我是遇到了。。。。 有人会说,即使为true又怎么了,你是没遇到有些根据is_cli来走不同逻辑判断的,如果读取的是错的就会引起很大的问题。。。。 ......
模式 is_cli true fpm cli

深度解析单例模式

饥汉模式 package com.cz.single; /** * @author 卓亦苇 * @version 1.0 * 2023/3/11 21:31 */ public class Hungry { private byte[] data1 = new byte[1024]; private ......
深度 模式

设计一款可扩展和基于windows系统的一键处理表格小工具思路

原创总结/朱季谦 设计一款可扩展和基于windows系统的一键处理表格小工具思路 日常开发当中,业务人员经常会遇到一些重复性整理表格的事情,这时候,就可以通过一些方式进行自动化程序处理,提高工作(摸鱼)效率。 例如,业务人员有这样需要,日常需要手工整理以下原始xlsx表格数据,这些数据格式都是固定死 ......
表格 思路 windows 工具 系统

Flink模式

Per-job Cluster 该模式下,一个作业一个集群,作业之间相互隔离。 在Per-Job模式下,集群管理器框架用于为每个提交的Job启动一个 Flink 集群。Job完成后,集群将关闭,所有残留的资源也将被清除。 此模式可以更好地隔离资源,因为行为异常的Job不会影响任何其他Job。另外,由 ......
模式 Flink

大道至简的架构设计思想之:封装(C系架构设计法,sishuok)

一起来看看大道至简的一些基本设计思想,首先我们来看一下什么是封装。 封装:也叫做信息隐藏,或者数据访问保护。放到程序上来讲,就是隐藏类的属性,还有实现细节,仅对外公开一些接口。那么外部,就只能通过这个类暴露的这些访问接口,按照这个类提供的方式来访问类的内部信息或者数据。这样子的一种情况就叫做封装。 ......
架构 设计思想 大道 sishuok 思想

深入理解需求分析的目标(C系架构设计法)

需求分析的目标:是尽可能准确、全面、深入的理解业务。 1:理解“尽可能准确” 首先,需求分析,要做的事,肯定是去理解业务,但是要达到什么样的程度,才算是我们理解了这个业务呢? 第一个是“尽可能”,尽可能的意思,就是你不太可能百分之百的、完整的、准确的去理解,做不到。我们只能说是尽自己最大努力去理解, ......
架构 需求 目标

需求分析之道——需求分析要做什么(C系架构设计法,sishuok)

需求分析之道——需求分析要做什么。 需求分析是架构师开始做架构设计的第一步,对架构师来讲非常非常的重要。因为需求分析能够告诉我们,到底我们要做什么,架构设计就是为了去完成这件事情而做的。 接下来,我们就从实战的角度来讲一讲,需求分析的一些方法,都是咱们多年经验的总结,也许听上去或者说大家看上去,没有 ......
需求 架构 sishuok

设计模式(十五)----结构型模式之外观模式

1 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的 ......
模式 结构型 设计模式 外观 结构

设计模式(十四)----结构型模式之组合模式

1 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以 ......
模式 结构型 设计模式 结构

设计模式(十六)----结构型模式之代理享元模式

1 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 外部状态,指 ......
模式 结构型 设计模式 结构