文章
101
标签
124
分类
7
首页
统计
  • 标签
  • 分类
  • 归档
关于
程序员暮狐
搜索
首页
统计
  • 标签
  • 分类
  • 归档
关于

程序员暮狐

蒙提霍尔问题-经典的三扇门问题
发表于2026-01-30|思维模型
问题设定 三扇门:一扇后面有汽车(奖品),两扇后面有山羊。 你随机选择一扇门(比如 1 号门)。 主持人(知道汽车在哪里)打开另一扇门,露出一只山羊(比如 3 号门)。 主持人问你:是否换到剩下的那扇门(2 号门)? 关键点 主持人 总是 会打开一扇有山羊的门,且不会打开你选的门。 主持人的行动不是随机的,而是根据你的选择和门后的情况刻意为之,这提供了额外信息。 概率分析初始概率 你第一次选择时,选中汽车的概率是 1/3,选中山羊的概率是 2/3。 两种情形 你第一次选中了汽车(概率 1/3) 剩下的两扇门都是山羊。 主持人打开其中一扇山羊门。 如果你 换门,会换到另一扇山羊门 → 失败。 如果你 不换,保留原来的门 → 获胜。 你第一次选中山羊(概率 2/3) 剩下的两扇门中,一扇是汽车,一扇是山羊。 主持人 只能 打开剩下的那扇山羊门(因为不能打开你的门,也不能直接打开汽车门)。 如果你 换门,一定会换到剩下的那扇汽车门 → 获胜。 如果你 不换,保留原来的山羊门 → 失败。 总结策略结果...
事件驱动架构:业务解耦与异步处理
发表于2025-12-18|软件设计
1. 事件驱动架构概述事件驱动是一种经典的编程和系统设计模式,其核心思想是系统的运作由事件来驱动。当事件发生时,系统的各个组件会对事件做出反应并执行相应的操作。这些事件可以是外部触发的(如用户点击、网络请求),也可以是系统内部产生的(如状态变更、定时调度)。 2. 事件驱动在业务系统中的价值2.1 接口解耦在业务系统中,事件驱动机制被广泛用于接口解耦。以电商系统为例: 商品发布、订单变更等都可以作为事件进行发布 商品信息同步、订单信息推送等操作可以作为事件监听器 主业务流程只需关注核心业务逻辑,使功能更加内聚,耦合性更低 2.2 划分主业务流程与事件消费者的方法一个简单的判断标准是:如果某些操作不执行,仅从业务域本身考虑,系统是否仍能正常运行?如果答案是肯定的,那么这些操作就可以被定义为事件的消费者。 示例分析:在电商系统的商品发布流程中,将商品信息同步给下游系统如果失败或未执行,商品系统本身仍应能正常发布商品。同步问题可以通过定时推送、失败补偿等机制解决,因此商品信息同步操作适合作为事件消费者。 3. 实践中的挑战与解决方案3.1 下游系统约束的处理当下游系统对业务有约束...
Spring事件监听在业务使用中的优化
发表于2025-12-18|后端
事件驱动的开发方式在业务系统开发中扮演着关键角色,若能妥善运用,将对系统的拓展性产生至关重要的影响。Spring框架对事件驱动进行了出色的封装,然而在实际业务应用中,我们发现了一些可优化的领域,因此针对这些问题进行了封装和优化工作。 Spring事件驱动的使用在电商订单创建的场景中,一旦订单成功创建,必须执行一系列附加的业务操作。这些操作包括向用户发送相关信息,并将订单信息同步到相关系统中。考虑到此场景的特点,事件驱动的开发方式被广泛认为是最合适的选择,因其能够在不对业务系统造成负面影响的前提下进行处理。 事件定义在订单创建事件中,可以定义包含订单对象以及与订单相关的属性,例如订单ID等。通过此事件,能够有效地传递订单信息,并为其他业务操作提供必要的数据依据。 12345678@Data@AllArgsConstructorpublic class CreateTradeEvent{ // 可以在此定义订单创建事件中的相关属性 private Trade trade; } 事件发布在订单成功创建之后,我们可以获取到订单实体或其他...
知其然知其所以然:Boolean类型命名规范
发表于2025-12-06|后端
对应阿里巴巴开发手册-编码规约-命名风格第9条,规约中写的比较模糊,之前只知道这样命名可能会存在问题,这里探索一下具体什么场景会存在问题。 对上面举的反例感觉有些怪,**基本数据类型Boolean isDeleted属性的Getter方法是isDeleted()**,手册应该写的有问题,印象中基本数据类型boolean是这样的,但是Boolean包装类型并不是如此,后面会对这里进行探索,坑很大。 实例深究JavaBean规范首先了解下JavaBean的规范,属性应该由一组读写方法(Getter/Setter)来访问,如果操作的字段为boolean类型,此时Getter不应命名为getXXX方法,而应该是isXXX,如果boolean类型的属性名以is开头,则将属性名中的is自动去除,例如boolean isSuccess的Getter是isSuccess(),但是对于Boolean类型的属性并没有明确的规范进行约定。 以下示例基于IDEA 2023.1 JDK11 布尔类型存在基本数据类型和包装类型,所以存在四种情况 1234private boolean succe...
Ubuntu 安装 Docker 操作手册
发表于2025-12-06|系统运维
官方操作手册 操作系统要求要安装 Docker 引擎,您需要以下 Ubuntu 版本的 64 位版本之一: Ubuntu Questing 25.10  Ubuntu 探索版 25.10 Ubuntu Plucky 25.04  Ubuntu 勇敢版 25.04 Ubuntu Noble 24.04 (LTS)  Ubuntu 贵族版 24.04 (LTS) Ubuntu Jammy 22.04 (LTS)  Ubuntu 甜蜜版 22.04 (LTS) Ubuntu 的 Docker Engine 与 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le(ppc64el)架构兼容。 查看系统版本 1234567891011121314sharkidon@ubuntu:~$ cat /etc/os-releasePRETTY_NAME="Ubuntu 25.10"NAME="Ubuntu"VERSION_ID="25.10"VERSION="25.10 (Questing ...
Ubuntu修改国内源解决下载问题
发表于2025-11-27|系统运维
经常使用Ubuntu的同学都会遇到软件安装下载速度慢的情况,究其原因,是因为Ubuntu默认源的地址都在国外所导致,其实国内也有很多优秀的源,比如阿里源、中科大源、清华源、163源等,只需要简单的更换一下源,下载度立刻就上来了。 执行以下命令查看ubuntu版本 1lsb_release -a 22.04 及更早版本以下操作都必须在管理员模式下(使用su命令进入)进行,否则会执行失败 备份官方源 1mv /etc/apt/sources.list /etc/apt/sources.list.bk 下载第三方源文件更换 具体使用哪一个,可以自行测试按照效果选用 1234567891011#163源wget 'https://gitee.com/zaozuotime/ubuntu-update-source-file/raw/master/163.sources.list' -O /etc/apt/sources.list#阿里源wget 'https://gitee.com/zaozuotime/ubuntu-update-source-file...
Tomcat进程残留问题
发表于2025-11-20|系统运维
运行shutdown.sh,tomcat停止, 但它的java进程还在, 不过状态为S(sleep), 不是运行时的R(Runnable), 如果不kill的话, 这种进程越来越多,导致JVM进程越来越多, 占据了大量的内存空间, 有可能使得新程序在启动JVM时由于内存不够用而无法启动。 kill强制杀死进程1ps -ef|grep java 若显示以下内容代表使用的java进程还存在,没有完全停止 12345root     50530     1 99 10:25 pts/0    00:00:45 /usr/local/java/jdk1.7.0_51/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-7.0.92/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dign...
Oracle特殊字符处理
发表于2025-11-20|后端
在Oracle数据库中,有时字段中会存入一些特殊字符(设计不当或者程序BUG),例如制表符、换行符以及回车符等,如果包含特殊字符是看不出来的,但是在进行字段关联的时候就会查不出数据。 特殊字符ASCII码定义: 制表符 chr(9)换行符 chr(10)回车符 chr(13) 去掉表中的特殊字符1update table set field=replace(field,chr(9), '') where instr(field, chr(9)) > 0 其他特殊字符也可以使用ascii函数查出ASCII码然后进行替换1select ascii('?') from dual;
Linux防火墙命令
发表于2025-11-20|系统运维
linux系统常用的防火墙分别是iptables和firewall防火墙,记录一下常用的命令 firewall防火墙12345678910111213141516171819202122232425#查看firewall服务状态systemctl status firewalld#查看firewall的状态firewall-cmd --state# 开启service firewalld start# 重启service firewalld restart# 关闭service firewalld stop#查看防火墙规则firewall-cmd --list-all # 查询端口是否开放firewall-cmd --query-port=8080/tcp# 开放80端口firewall-cmd --permanent --add-port=80/tcp# 移除端口firewall-cmd --permanent --remove-port=8080/tcp#重启防火墙(修改配置后要重启防火墙)firewall-cmd --reload 参数解释firwall-cmd:是Lin...
Windows系统SSH服务安装指南
发表于2025-11-20|系统运维
最近在做Jenkins的持续集成,公司的应用服务器大多是Windows系统,平时的运维主要是靠远程桌面的方式,为了使用Jenkins自动部署,需要在windows系统上安装SSH的服务,这里介绍微软官方的解决方案,详细介绍可以参考官网wiki。基于PowerShell的OpenSSH: https://github.com/PowerShell/Win32-OpenSSH/releases 安装步骤 进入链接下载最新的OpenSSH-Win64.zip,解压至 C:\Program Files\OpenSSH 打开cmd,进入 C:\Program Files\OpenSSH安装目录,执行以下命令 1powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 设置服务自动启动并启动服务 12sc config sshd start= autonet start sshd 修复主机端的文件权限,进入 C:\Program Files\OpenSSH,右键 FixHostFilePermissions.ps1【使...
Spring MVC接口监控必备:原始路径模板获取全解析
发表于2025-11-20|后端
问题场景原始路径模板:/users/{id}实际获取路径:/users/40000478 在监控和统计场景中,带具体参数值的路径会导致: 相同的接口被统计为多个不同的路径 难以进行有效的聚合分析 通知信息不够清晰直观 解决方案:Spring MVC路径模板获取Spring MVC在处理请求时,会在请求属性中存储丰富的映射信息。通过以下方式可以获取原始路径模板: 12345678910111213import org.springframework.web.servlet.HandlerMapping;import javax.servlet.http.HttpServletRequest;public class MonitoringUtils { public static String getOriginalPathPattern(HttpServletRequest request) { // 获取最佳匹配的路径模式,如 /ad/launch/task/sendConfirmEmail/{id...
Typora安装与配置
发表于2025-11-18|软件工具
Typora安装注册 先安装 typora-setup-x64-1.2.4.exe,并记录安装路径,下载地址 将 app.asar 替换到安装路径下的resources文件夹,替换掉app.asar文件 重启typora!!!!!! 输入邮箱、注册码,邮箱随便输入,注册码:E8Q9Y5-KXMTL5-7578SL-4S5XKS 仅供学习,请在下载24小时之内删除,请支持正版 图片上传文件 -> 偏好设置中设置图像相关配置,上传服务我使用的是PicGo-Core(command line),其实和PicGo-Core(app)一样,主要是我不想托盘中多出一个程序放在那里,看着不舒服 点击下载或更新,下载更新完成后,点击打开配置文件,配置图床的地址,有些版本能直接打开,有些无反应,需要手动进到指定的目录进行修改config.json文件 picgo 的默认配置文件为~/.picgo/config.json。其中~为用户目录。不同系统的用户目录不太一样。 linux 和 macOS 均为~/.picgo/config.json。 windows 则为C:\Users\你的用...
1…6789
程序员暮狐
君子以顺德,积小以高大。
文章
101
标签
124
分类
7
Follow Me
公告
程序员暮狐
分享技术干货,记录成长历程。扫码关注,获取更多技术文章和独家内容。
最新文章
Linux企业级内部DNS与VPN集成方案2026-10-25
企业级内网DNS实战:用 dnsmasq 搭个内网 DNS2026-10-25
一次 Maven 版本升级引发的构建失败:传递依赖与 reactor 排序2026-10-09
开了代理 WSL 里还不生效?写个后台脚本盯着它2026-09-22
WSL开发网络模式选择:NAT与镜像模式详解2026-09-14
分类
  • 前端7
  • 后端26
  • 思维模型3
  • 系统运维32
  • 计算机基础3
  • 软件工具24
  • 软件设计6
标签
计算机结构 冯·诺依曼 Redis Beszel 文件同步 Jenkins SNAT DNS AI工程 递归 管理平台 死锁 权限管理 Maven 序列化 URL优化 责任链 Claude Code logrotate 网络模式 Nginx 网络配置 编码规范 AI编码 配置管理 设计模式 服务器运维 Keycloak 网络安全 iptables WireGuard Zookeeper 进制转换 笔记管理 服务发现 IO模型 WSL 栈溢出 后端 Nacos
归档
  • 十月 2026 3
  • 九月 2026 6
  • 八月 2026 10
  • 七月 2026 12
  • 五月 2026 2
  • 四月 2026 15
  • 三月 2026 23
  • 二月 2026 1
网站信息
文章数目 :
101
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By 程序员暮狐框架 Hexo 7.3.0|主题 Butterfly 5.5.4
鲁ICP备2026017338号-1
搜索
数据加载中