<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/assets/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://blog.dhbxs.top/</id>
  <title>灯火不休时</title>
  <updated>2026-05-11T11:48:49.904+00:00[UTC]</updated>
  <description>灯火不休时(dhbxs)的博客站点，记录前端与后端开发的技术笔记、实战经验与学习心得，分享编程日常与个人思考。一名开发者的技术成长之路，持续更新Web开发、代码优化与生活随笔。</description>
  <author>
    <name>灯火不休时</name>
    <email>yao@mail.dhbxs.top</email>
    <uri>https://blog.dhbxs.top/</uri>
  </author>
  <link href="https://blog.dhbxs.top/atom.xml" rel="self"></link>
  <link href="https://blog.dhbxs.top/" rel="alternate"></link>
  <language>zh-CN</language>
  <generator uri="https://github.com/L33Z22L11/blog-v3" version="3.7.0-alpha.2">Clarity</generator>
  <icon>https://file.dhbxs.top/2026/01/nllahmfi.png</icon>
  <logo>https://file.dhbxs.top/ylvwvjjs.jpg</logo>
  <rights>© 2026 灯火不休时</rights>
  <subtitle>在代码里种诗</subtitle>
  <entry>
    <id>https://blog.dhbxs.top/posts/fc1be4e5</id>
    <title>Win10简洁之道</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/vmktqilh.webp" alt="Win10简洁之道" /> <p>Windows 用户打造纯净高效系统的完整指南，涵盖纯净系统安装、浏览器选择、系统安全设置、常用工具推荐（压缩、搜索、下载、卸载软件）及微软办公套件使用等内容，旨在帮助用户远离流氓软件侵扰，提升系统稳定性和工作效率。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/fc1be4e5" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/fc1be4e5"></link>
    <summary>Windows 用户打造纯净高效系统的完整指南，涵盖纯净系统安装、浏览器选择、系统安全设置、常用工具推荐（压缩、搜索、下载、卸载软件）及微软办公套件使用等内容，旨在帮助用户远离流氓软件侵扰，提升系统稳定性和工作效率。</summary>
    <category term="杂谈"></category>
    <published>2020-03-31T03:12:04Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/37561f92</id>
    <title>利用PyCharm简化搭建深度学习环境(新手排坑)</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/sukseffe.webp" alt="利用PyCharm简化搭建深度学习环境(新手排坑)" /> <p>在Windows 10上使用PyCharm搭建深度学习环境，包括基于Anaconda创建环境、使用清华/阿里镜像安装TensorFlow 2.3.1和Keras 2.4.3、解决DLL加载问题。针对GPU加速，安装CUDA 10.1和cuDNN 7.6并配置环境变量，验证GPU调用，附有常用pip命令速查表。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/37561f92" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/37561f92"></link>
    <summary>在Windows 10上使用PyCharm搭建深度学习环境，包括基于Anaconda创建环境、使用清华/阿里镜像安装TensorFlow 2.3.1和Keras 2.4.3、解决DLL加载问题。针对GPU加速，安装CUDA 10.1和cuDNN 7.6并配置环境变量，验证GPU调用，附有常用pip命令速查表。</summary>
    <category term="技术"></category>
    <published>2020-10-06T03:18:24Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/2d35e3e5</id>
    <title>栈与队列的应用</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/eqmpjyqy.webp" alt="栈与队列的应用" /> <p>基于顺序栈结构实现的三个算法实验：栈的基本操作实现、判断单链表字符串是否中心对称、以及利用双栈实现算术表达式求值，支持四则运算和括号，验证了栈在数据处理和计算中的重要作用。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/2d35e3e5" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/2d35e3e5"></link>
    <summary>基于顺序栈结构实现的三个算法实验：栈的基本操作实现、判断单链表字符串是否中心对称、以及利用双栈实现算术表达式求值，支持四则运算和括号，验证了栈在数据处理和计算中的重要作用。</summary>
    <category term="技术"></category>
    <published>2020-03-17T21:29:52Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/f8c33218</id>
    <title>顺序表的增删改查</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/ezkwxsdu.webp" alt="顺序表的增删改查" /> <p>顺序表基本操作的实现，包括初始化、插入、删除、查找、修改等功能，并实现了有序顺序表的元素插入与两个升序顺序表的合并算法。程序采用C语言实现，具备完善的错误处理机制和测试验证，展示了顺序表在数据组织与操作中的实用性和灵活性。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/f8c33218" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/f8c33218"></link>
    <summary>顺序表基本操作的实现，包括初始化、插入、删除、查找、修改等功能，并实现了有序顺序表的元素插入与两个升序顺序表的合并算法。程序采用C语言实现，具备完善的错误处理机制和测试验证，展示了顺序表在数据组织与操作中的实用性和灵活性。</summary>
    <category term="技术"></category>
    <published>2020-03-02T21:26:28Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/d2e7adb</id>
    <title>CSS多行溢出，兼容性比较好的做法</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[ <p>原生css提供的做法在兼容性上做的不太好，FireFox或者Safari支持都不太好，可以换个思路，有另外一种实现方法。用JS去计算文字显示长度，然后再截取计算效果也不好，中英文文字字宽都不相同，同样英文字母的宽度I 和 G的宽度也不一样。可以利用css的float浮动布局，浮动布局有个天然的特性就是文字环绕，附近的文字会自动避开浮动的元素。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/d2e7adb" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/d2e7adb"></link>
    <summary>原生css提供的做法在兼容性上做的不太好，FireFox或者Safari支持都不太好，可以换个思路，有另外一种实现方法。用JS去计算文字显示长度，然后再截取计算效果也不好，中英文文字字宽都不相同，同样英文字母的宽度I 和 G的宽度也不一样。可以利用css的float浮动布局，浮动布局有个天然的特性就是文字环绕，附近的文字会自动避开浮动的元素。</summary>
    <category term="开发"></category>
    <published>2024-08-01T21:52:01Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/d06540f2</id>
    <title>Hadoop集群搭建（1主2从）</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/ioyknzke.png" alt="Hadoop集群搭建（1主2从）" /> <p>详细记录了在macOS Big Sur上使用VMware Fusion搭建三节点Hadoop 2.7.7集群的全过程，包括CentOS 7最小化安装、固定IP配置、SSH免密登录、Hadoop核心配置文件修改及集群启动验证，并扩展部署Spark 3.1.1，形成完整大数据环境。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/d06540f2" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/d06540f2"></link>
    <summary>详细记录了在macOS Big Sur上使用VMware Fusion搭建三节点Hadoop 2.7.7集群的全过程，包括CentOS 7最小化安装、固定IP配置、SSH免密登录、Hadoop核心配置文件修改及集群启动验证，并扩展部署Spark 3.1.1，形成完整大数据环境。</summary>
    <category term="技术"></category>
    <published>2024-04-17T22:26:21Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/8a960ce</id>
    <title>NPM包管理工具的幻影依赖问题</title>
    <updated>2026-05-11T03:12:04Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[ <p>随着前端工程化的不断完善，各种包管理工具和构建工具也越来越多。在Node生态里，绕不开NPM，Yarn，PNPM这些包管理工具，但是项目中一般都是用PNPM包管理工具而不用NPM，有一部分原因就是因为NPM包管理工具容易产生幻影依赖的问题。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/8a960ce" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/8a960ce"></link>
    <summary>随着前端工程化的不断完善，各种包管理工具和构建工具也越来越多。在Node生态里，绕不开NPM，Yarn，PNPM这些包管理工具，但是项目中一般都是用PNPM包管理工具而不用NPM，有一部分原因就是因为NPM包管理工具容易产生幻影依赖的问题。</summary>
    <category term="技术"></category>
    <published>2024-08-26T21:56:13Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/39924a5</id>
    <title>重复造轮子之简易RPC框架</title>
    <updated>2026-05-02T07:02:00Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/blog_img/1777041101667_20260424.webp" alt="重复造轮子之简易RPC框架" /> <p>重复造轮子之实现一个简易的RPC框架，包含服务提供者、消费者、公共模块和RPC核心模块的设计与开发。通过使用Vert.x实现HTTP服务器，JDK序列化处理数据传输，动态代理实现远程调用，实现了类似本地调用的分布式服务通信。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/39924a5" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/39924a5"></link>
    <summary>重复造轮子之实现一个简易的RPC框架，包含服务提供者、消费者、公共模块和RPC核心模块的设计与开发。通过使用Vert.x实现HTTP服务器，JDK序列化处理数据传输，动态代理实现远程调用，实现了类似本地调用的分布式服务通信。</summary>
    <category term="技术"></category>
    <published>2026-05-02T07:00:00Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/370adf0</id>
    <title>Spring AOP 动态代理机制：从静态代理到 JDK 与 CGLIB 的实现</title>
    <updated>2026-04-23T14:43:00Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/blog_img/1776615019347_dtdl.webp" alt="Spring AOP 动态代理机制：从静态代理到 JDK 与 CGLIB 的实现" /> <p>用日志和业务逻辑解耦的案例，从静态代理的手动编码痛点出发，逐步演进至JDK动态代理与CGLIB字节码增强，对比两种机制的底层实现差异与适用场景，深入理解Spring AOP底层的实现方式。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/370adf0" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/370adf0"></link>
    <summary>用日志和业务逻辑解耦的案例，从静态代理的手动编码痛点出发，逐步演进至JDK动态代理与CGLIB字节码增强，对比两种机制的底层实现差异与适用场景，深入理解Spring AOP底层的实现方式。</summary>
    <category term="技术"></category>
    <published>2026-04-20T03:18:07Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/7dc99e0</id>
    <title>从零手写一个 Spring Boot Starter：深入理解自动装配原理</title>
    <updated>2026-04-08T23:13:41Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2026/04/csoexczb.webp" alt="从零手写一个 Spring Boot Starter：深入理解自动装配原理" /> <p>一篇关于如何开发自定义 Spring Boot Starter 的技术教程。文章以开发一个控制台 Banner 输出组件为例，手把手讲解了 Spring Boot 自动装配机制的实现原理和完整开发流程。文章通过实战案例揭示了 MyBatis-Plus 等第三方 Starter 背后的实现原理，帮助开发者理解 Spring Boot 的扩展机制。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/7dc99e0" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/7dc99e0"></link>
    <summary>一篇关于如何开发自定义 Spring Boot Starter 的技术教程。文章以开发一个控制台 Banner 输出组件为例，手把手讲解了 Spring Boot 自动装配机制的实现原理和完整开发流程。文章通过实战案例揭示了 MyBatis-Plus 等第三方 Starter 背后的实现原理，帮助开发者理解 Spring Boot 的扩展机制。</summary>
    <category term="开发"></category>
    <published>2026-04-08T23:13:41Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/4c27c0e</id>
    <title>LangChain4j工具调用中断引发JSON格式报错的问题调查</title>
    <updated>2025-11-01T08:37:52Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/11/hhaqfien.webp" alt="LangChain4j工具调用中断引发JSON格式报错的问题调查" /> <p>本文记录了在使用LangChain4j集成AI服务时遇到的400错误问题排查过程。开发者在测试工具链功能时，因中断AI回复导致会话历史格式错误，引发大模型服务商报错。通过分析错误日志和工具调用流程，最终确定是中断会话导致的历史记录格式问题。文章详细记录了从错误表象到深层原因的分析过程，并附上工具调用流程图帮助理解问题本质。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/4c27c0e" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/4c27c0e"></link>
    <summary>本文记录了在使用LangChain4j集成AI服务时遇到的400错误问题排查过程。开发者在测试工具链功能时，因中断AI回复导致会话历史格式错误，引发大模型服务商报错。通过分析错误日志和工具调用流程，最终确定是中断会话导致的历史记录格式问题。文章详细记录了从错误表象到深层原因的分析过程，并附上工具调用流程图帮助理解问题本质。</summary>
    <category term="开发"></category>
    <published>2025-11-01T08:37:52Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/4dCtXKfh</id>
    <title>基于CNN深度学习网络的交通标志识别</title>
    <updated>2025-11-01T04:37:11Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/ybfbhwfk.webp" alt="基于CNN深度学习网络的交通标志识别" /> <p>基于CNN深度学习的交通标志识别系统，采用TensorFlow/Keras构建卷积神经网络模型，实现高达95%的识别准确率。项目使用Python开发，配备tkinter图形界面，支持图片上传与实时识别。包含完整训练数据集处理、模型训练与评估流程，代码开源，适用于深度学习入门与计算机视觉实践。项目源码托管于GitHub与Gitee。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/4dCtXKfh" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/4dCtXKfh"></link>
    <summary>基于CNN深度学习的交通标志识别系统，采用TensorFlow/Keras构建卷积神经网络模型，实现高达95%的识别准确率。项目使用Python开发，配备tkinter图形界面，支持图片上传与实时识别。包含完整训练数据集处理、模型训练与评估流程，代码开源，适用于深度学习入门与计算机视觉实践。项目源码托管于GitHub与Gitee。</summary>
    <category term="开发"></category>
    <published>2025-11-01T04:37:11Z</published>
  </entry>
  <entry>
    <id>https://blog.dhbxs.top/posts/b0439536</id>
    <title>策略模式优化多重判断</title>
    <updated>2025-10-15T16:00:00Z</updated>
    <author>
      <name>灯火不休时</name>
    </author>
    <content type="html">
      <![CDATA[<img src="https://file.dhbxs.top/2025/10/lcbzyhed.webp" alt="策略模式优化多重判断" /> <p>使用策略模式优化多重if-else条件判断。针对b值为空、"0"、"1"时对字符串a的不同匹配规则，通过定义策略接口、实现具体策略类、创建策略工厂，将条件逻辑解耦，使代码结构清晰、易于维护和扩展，有效解决传统多层嵌套判断导致的代码臃肿问题，提升代码质量和可读性。</p> <a class="view-full" href="https://blog.dhbxs.top/posts/b0439536" target="_blank">点击查看全文</a>]]>
    </content>
    <link href="https://blog.dhbxs.top/posts/b0439536"></link>
    <summary>使用策略模式优化多重if-else条件判断。针对b值为空、&quot;0&quot;、&quot;1&quot;时对字符串a的不同匹配规则，通过定义策略接口、实现具体策略类、创建策略工厂，将条件逻辑解耦，使代码结构清晰、易于维护和扩展，有效解决传统多层嵌套判断导致的代码臃肿问题，提升代码质量和可读性。</summary>
    <category term="开发"></category>
    <published>2025-10-15T16:00:00Z</published>
  </entry>
</feed>
