文章
96
标签
116
分类
7
首页
统计
  • 标签
  • 分类
  • 归档
关于
暮色之狐
搜索
首页
统计
  • 标签
  • 分类
  • 归档
关于

暮色之狐

AI时代的程序员焦虑
发表于2025-11-18|思维模型
AI时代的焦虑GPT、Claude等AI工具的爆发式发展,给程序员群体带来了前所未有的冲击和焦虑: 代码生成能力:AI能快速生成高质量代码,初级开发者的工作价值被质疑 技术迭代加速:新技术层出不穷,学习速度跟不上变化速度 岗位不确定性:裁员潮下,会被AI取代吗? 成为每个程序员的心头大石 学习价值困惑:花大量时间学习的知识,可能几个月后就过时了 这种焦虑感叠加原有的职业困境,让很多人更加迷茫:学什么?怎么学?学了还有用吗? 但历史告诉我们,每次技术革命都会淘汰一批人,也会成就一批人。关键不在于AI有多强,而在于我们如何调整学习策略,让自己成为驾驭AI的人,而不是被AI淘汰的人。 现状1、产品提需求,讨论开发,熟悉数据库,增删改查,加班,恶性循环 2、有些人比较爱学习,刷视频。视频讲的都挺好,源码课看了,喜欢看,但是越看越累,看完也不知道这东西怎么用,在公司就负责某个模块,天天围绕着几张表,处理不完的杂事 3、面试突击背题,背完就忘 4、不知道最精通的技术是什么,每天都在用Spring、SpringBoot,面试的时候稍微往深了问,发现并不知道底层的原理,也觉着底层原理并没有什...
从JUnit到Mockito:构建可靠Java单元测试
发表于2025-11-18|后端
JUnit 4以下是JUnit 4中一些常用的类和注解的相关API: 注解: @Test:标记测试方法。 @Before:在每个测试方法之前执行的方法。 @After:在每个测试方法之后执行的方法。 @BeforeClass:在整个测试类之前执行的静态方法。 @AfterClass:在整个测试类之后执行的静态方法。 @RunWith:指定自定义的测试运行器(Runner)。 @Ignore:忽略某个测试方法或测试类。 断言(Assert): Assert.assertEquals(expected, actual):判断两个值是否相等。 Assert.assertTrue(condition):判断给定条件是否为真。 Assert.assertFalse(condition):判断给定条件是否为假。 Assert.assertNull(actual):判断给定对象引用是否为空。 Assert.assertNotNull(actual):判断给定对象引用是否不为空。 测试运行器(Runner): BlockJUnit4ClassRunner:默认的JUnit 4运行器,用...
线程池中的隐形陷阱:任务依赖导致的线程饥饿锁
发表于2025-11-18|后端
故障现象为提升接口响应速度,将聚合接口的串行调用改为异步并行。上线后不久,系统抛出大量异常: 123456Exception in thread "main" java.util.concurrent.ExecutionException: java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@42936575[Not completed, task = xxxxx] rejected from java.util.concurrent.ThreadPoolExecutor@33f18ac[Running, pool size = X, active threads = X, queued tasks = N, completed tasks = M] 线程池和队列均已被耗尽。 第一反应是线程池参数设置太小,但深入分析后发现:代码逻辑有问题——提交到线程池的任务存在相互依赖关系。 核心问题:在有限大小的线程池中执行相互依赖的任务,可能产生死...
Zookeeper分布式服务框架
发表于2025-11-18|后端
Zookeeper是一个分布式服务框架,是Apache Hadoop的一个子项目,它主要用于解决分布式应用中经常遇到的一些数据管理问题,比如配置管理、命名服务、分布式锁、集群管理等。刚接触zookeeper的时候有些云里雾里,不知从哪里入手好,其实简单的说zookeeper就是 文件系统 + 监听通知机制。 系统原理文件系统在zookeeper中维护了类似Unix系统的树形文件节点,可以往这个节点中存储或者获取数据,我们将这些节点称为znode,每个znode默认能够存储1Mb的数据,znode有四种不同的类型。 PERSISTENT 持久化目录节点 所谓持久节点就是指节点创建后,除非进行删除操作就一直存在,不会因创建该节点的客户端会话失效或者zookeeper服务停止而消失 PERSISTENT_SEQUENTIAL 持久化顺序编号节点 和持久节点基本特性一致,额外的特点是,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。在创建子节点的过程中,zookeeper会自动给子节点的名称后面增加一个数字后缀。例如创建名为”test”的子节点,zooke...
ZooKeeper服务注册发现
发表于2025-11-18|后端
在分布式架构中,系统经常被暴漏为服务供其他系统调用,为使系统间能够相互通信,需要有一个协调系统来管理这些服务,这就是服务注册与服务发现,这个协调者也被称之为注册中心。下面基于zookeeper来实现一个简单的服务注册与发现功能 通过Maven引入需要的jar包 12345<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.11</version></dependency> 创建服务注册类 1234567891011121314151617181920212223242526272829303132package com.wrxiang.zk.util;import org.I0Itec.zkclient.ZkClient;public class ZkServiceRegistry { private ZkClient zkClient; ...
Zookeeper统一配置管理
发表于2025-11-18|后端
为什么需要统一配置?我们在开发系统时,一般会将一些信息添加到配置文件中,比如数据库信息、日志等,如果需要更改也是修改配置文件然后再发布到生产中,这种方式在集群的环境下就会显得很麻烦。那么有什么解决方法呢? 将公共配置抽取出来 提供统一的配置入口对公共配置进行修改 修改后的内容能够同步到各集群系统中 Zookeeper方案这里我们采取zookeeper实现统一配置管理,配置信息存放在zookeeper的节点中,一旦配置信息发生改变,zk会通知监听该节点的客户端系统,客户端系统获取最新的配置信息,然后进行配置信息的重新载入。下面基于zookeeper实现了一个粗略的统一配置管理通过Maven引入zkclient.jar 12345<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.11</version></dependency> 创建配置信息实体 Conf...
linux主机通过ssh登录windows服务器启动tomcat所踩的坑
发表于2025-11-18|系统运维
情景描述公司的Jenkins服务安装在linux系统上,但是很多应用服务器都是windows系统,那么在jenkisn上编译生成的war包如何传输到windows服务器上并且进行tomcat服务的重启呢?相对于linux的应用服务器,使用jenkins在windows上做自动发布还是遇到了一些不好解决的问题,windows系统在运维上还是有许多不便的(默默吐槽一句)。 发布步骤类比linux的应用服务器,首选是通过ssh远程登录的方式进行,这样的话jenkins的配置都不需要怎么更改,简单的发布步骤如下: jenkins中使用MAVEN编译打包,生成所需的war包 scp将war包传输到应用服务器 ssh远程执行应用服务器的部署重启脚本 发布完成 windows默认是不支持ssh服务的,这里我采用的是微软官方的解决方案OpenSSH,安装步骤可以参考:Windows安装OpenSSH服务 遇到的问题jenkisn远程调用应用服务器上的部署脚本后,tomcat服务没有启动,但是在应用服务器上手动运行脚本是能够完成项目的部署以及重启的,通过调试发现远程调用bat脚本确实将tomc...
VS Code快捷键指南
发表于2025-11-18|软件工具
打开工程:code + 路径 打开指定文件:ctrl + p 打开/关闭终端:ctrl + ` (1左边的按键) 跳转到行:ctrl + g 按单词移动光标:ctrl + 左右 选中单词:ctrl + d (重复按可以多选) 选中行:ctrl + l (重复按会同时选择下一行) 移动行:alt + 上下 格式化代码:ctrl + shift + f 跳转到定义:f12 查看当前文件符号:ctrl + shift + o 剪切/复制当前行:ctrl + x / ctrl + c (什么都不选的时候) 切换tab:alt+数字 顺序切换tab:ctrl + pageup / pagedown 关闭文件:ctrl+w 关闭所有文件:ctrl + k w (ctrl不松手) ctrl+b 打开主侧边栏 ctrl+shift+e 打开文件管理器 ctrl+0 焦点聚焦到主侧边栏 ctrl+1 焦点聚焦到代码编辑器 ctrl+shift+space 重新出现函数信息提示 ctrl+\ 添加分屏 ctrl + d 选中当前内容,连续快捷键会逐个选...
Markdown LaTeX公式指南
发表于2025-09-19|软件工具
在MarkDown文件中上写公式是比较头疼的事情。好在Markdown支持LaTeX公式的输入,在一定程度上缓解了输入的麻烦。 基础部分公式标记在Markdown中,有两种输入公式的方法:一是行内公式(inline),用一对美元符号$包裹。二是整行公式(displayed),用一对紧挨的两个美元符号$$包裹。 这是一个行内公式 $E=mc^2$,写法是:$E=mc^2$。这是一个整行公式:$$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$写法是 1$$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$ 希腊字母 名称 大写 Tex 小写 Tex alpha $A$ A $\alpha$ \alpha beta $B$ B $\beta$ \beta gamma $\Gamma$ \Gamma $\gamma$ \gamma delta $\Delta$ \Delta $\delta...
项目依赖库的规范探索
发表于2025-04-23|后端
二方库 名称 说明 一方库 指项目内的各个模块,一般不会被项目组外所使用,通常使用的是最新版本 二方库 指公司内部公共库,会被公司的各个项目组所使用,而且每个项目组所依赖的版本不一定一致,需要严格管理版本 三方库 一般代指公司外部的公共库,由公司外的开发团队进行版本维护,版本可控性难以控制,公司引入的时候要进行严格的版本验证 在实际项目中一个订单系统最简单的分层通常会是下面的结构 order-server中是订单系统的业务代码,而order-api中会定义一些接口和入参和返回值,order-api会被同项目的其他系统所依赖,也有可能会被其他项目组的系统所依赖,所以一方库和二方库的界限一般比较模糊,下面主要探索api项目的结构规范。 为避免二方库的依赖冲突问题,二方库的发布应该遵循以下原则 精简可控原则,移除一切不必要的API和依赖,只包含Service API,必要的领域模型对象,常量、枚举等,如果依赖其他的二方库或者三方库,尽量的使用provided引入,让使用者选择具体使用的版本号。 稳定可追溯原则,每个版本的变化应该被记录,除非用户主动升级版本,否...
IntelliJ IDEA激活教程
发表于2025-02-28|软件工具
下载工具包工具包下载地址 重要说明: 1、工具包下载后,放到本地合适的位置,存放路径不要有汉字和空格,否则可能会导致激活失败 2、工具下载后是zip格式,需要解压,然后按照下面步骤进行 3、工具安装后,不要移动或者删除工具包,否则后续IDEA打开会出现闪退,或提示找不到Jar文件 激活工具包解压后,目录结构: 破解激活工具包安装执行工具包解压后scripts目录下的脚本文件install-all-users.vbs 或者 install-current-user.vbs 脚本进行脚本文件的安装,脚本 install-all-users.vbs 和 install-current-user.vbs 的区别,只在于环境变量是为系统变量还是用户变量。 最好使用管理员权限执行,如果需要卸载只需要执行相应的卸载脚本即可 当看到如上图中提示 Done 时,表示工具安装配置完成。 检查确认:执行命令 echo %IDEA_VM_OPTIONS%,若指向 jetbra/jetbra/vmoptions/idea.vmoptions 则表示工具包安装正确。若指向不是这个,则很可能是旧有的破...
VMware 虚拟机设置
发表于2025-01-28|系统运维
镜像下载华为云镜像下载CentOS镜像,镜像使用 CentOS-7-x86_64-Minimal-2207-02.iso镜像下载 VMware创建虚拟机版本:VMware® Workstation 16 Pro 步骤忽略,选中镜像,一直点击下一步就可以 设置固定IP虚拟机网络连接方式 配置虚拟机的NAT模式具体地址参数 选择VMnet8–取消勾选使用本地DHCP–设置子网IP–网关IP设置(记住此处设置,后面要用到),如下图 说明:修改子网IP设置,实现自由设置固定IP,IP网段最后一位0-255,子网IP占用一位,网关IP占用一位,剩余的都可以自由分配 若你想设置固定IP为192.168.2.2-255,比如192.168.2.2,则子网IP为192.168.2.0; 若你想设置固定IP为192.168.1.2-255,比如192.168.1.2,则子网IP为192.168.1.0; 也就是说,你想配置成哪个网段,IP地址最后那位为0即可。 记录一下上面的网关地址,虚拟机中设置固定IP时需要用到,这里的网关IP也可以自行设置,只要网段一致即可。 配置电脑具体VMnet8...
1…78
gloamfox
君子以顺德,积小以高大。
文章
96
标签
116
分类
7
Follow Me
公告
此博客为记录工作学习总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
最新文章
WSL自定义路径安装Ubuntu2026-09-14
把Git Bash的提示符搬到Linux上,用了就回不去了2026-09-08
Git多账户配置终极指南2026-09-08
把字段从 TIMESTAMP 改成 DATETIME,线上直接炸了!2026-09-02
自建网盘不香吗?Docker 一键部署 Seafile ,告别会员费,你的文件你做主!2026-08-19
分类
  • 前端7
  • 后端25
  • 思维模型3
  • 系统运维28
  • 计算机基础3
  • 软件工具24
  • 软件设计6
标签
JSON Beszel 事件驱动 Redis 激活 笔记管理 LaTeX 计算机结构 终端配置 企业级 Git Linux Hexo 自我提升 CDN Feign 多路复用 文件同步 管理平台 Seafile 网络配置 Windows 缓存 图片优化 决策分析 JUnit Claude Code Spring 服务注册 数据编码 Java Ubuntu VPN 数据库 进制转换 设计模式 技术学习 系统运维 jsDelivr Jenkins
归档
  • 九月 2026 4
  • 八月 2026 10
  • 七月 2026 12
  • 五月 2026 2
  • 四月 2026 15
  • 三月 2026 23
  • 二月 2026 1
  • 一月 2026 1
网站信息
文章数目 :
96
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By gloamfox框架 Hexo 7.3.0|主题 Butterfly 5.5.4
鲁ICP备2026017338号-1
搜索
数据加载中