<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[博主在编程学习中的总结、笔记]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZHENGZJM</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZHENGZJM]]></copyright><item><title><![CDATA[Server-Sent Events (SSE) 接口实现]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192636</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192636</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 22:11:30 +0800</pubDate><description><![CDATA[SSE 是一种允许服务器主动向客户端推送数据的技术。与 WebSocket 的双向通信不同，SSE 是**单向**的：服务器推，客户端收。这正好符合我们的需求：AI 模型生成一段内容，我们就推送给前端显示一段。
]]></description><category></category></item><item><title><![CDATA[流式生成服务：单篇与系列博客的并发生成]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192616</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192616</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 22:09:59 +0800</pubDate><description><![CDATA[想象一下，当你让 AI 生成一篇 5000 字的技术博客时，如果必须等待全部内容生成完毕才能看到结果，这个过程会非常煎熬。用户可能会担心："AI 是不是卡住了？"、"生成失败了吗？"、"我需要等多久？"流式生成就是为了解决这个问题而生的]]></description><category></category></item><item><title><![CDATA[前端流式通信 Hook：useBlogStream 详解]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192573</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192573</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 22:07:35 +0800</pubDate><description><![CDATA[在 InkWords 中，我们使用 Server-Sent Events (SSE) 技术实现流式通信。简单来说，就像打开一个水龙头：后端不断地“滴答滴答”地向前端发送数据片段，前端则实时地展示这些片段。这样用户就能看到生成过程，知道系统正在工作，并且可以随时停止。]]></description><category></category></item><item><title><![CDATA[项目复杂度评估与系列博客大纲生成]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192526</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192526</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 22:03:23 +0800</pubDate><description><![CDATA[这就是 InkWords 引入 项目复杂度评估与大纲生成的原因。本章将带你了解这个智能拆解系统的核心实现。]]></description><category></category></item><item><title><![CDATA[Map-Reduce 架构：智能拆分与并发分析]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192504</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192504</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 22:01:21 +0800</pubDate><description><![CDATA[为了解决这个问题，我们引入了 **Map-Reduce 架构**，它就像一位高效的“项目拆解师”，将庞然大物分解成可消化的小块，并行分析，最后再拼凑出完整的蓝图。]]></description><category></category></item><item><title><![CDATA[仓库抓取与内容提取]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192488</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160192488</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 22:00:28 +0800</pubDate><description><![CDATA[介绍仓库抓取与内容提取的实现]]></description><category></category></item><item><title><![CDATA[文档解析器：支持 PDF、DOCX、Markdown]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188802</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188802</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 18:07:38 +0800</pubDate><description><![CDATA[本文介绍了InkWords文档解析器(DocParser)的设计与实现，该模块支持PDF、DOCX、Markdown等多种文件格式的解析。文章首先阐述了文档解析器的必要性，然后详细讲解了其核心架构，包括Parser接口定义和DocParser结构体实现。重点解析了&quot;阅后即焚&quot;的安全策略，通过临时文件和defer语句确保用户文件处理后立即删除。最后分别介绍了针对PDF、DOCX和Markdown/Text文件的具体解析方法，展示了如何利用第三方库实现格式转换。]]></description><category></category></item><item><title><![CDATA[DeepSeek API 客户端封装]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188775</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188775</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 18:06:44 +0800</pubDate><description><![CDATA[本文介绍了如何封装DeepSeek API客户端以构建稳定可靠的大模型通信桥梁。主要内容包括： 客户端核心结构设计：通过DeepSeekClient结构体封装API密钥、URL和HTTP客户端，类比私人助理处理通信细节。 消息数据结构：定义了Message和ChatRequest结构体，规范与大模型交互的数据格式。 同步生成模式实现：详细展示了从构造请求、发送到解析响应的完整流程，强调错误处理和资源管理。 流式生成模式实现：通过通道实时推送数据块，支持上下文取消和高效流读取，实现边接收边处理的实时交互。 ]]></description><category></category></item><item><title><![CDATA[前端认证状态管理与路由守卫]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188756</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188756</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 18:05:24 +0800</pubDate><description><![CDATA[摘要： 本文解析了单页应用（SPA）中的前端认证状态管理与路由守卫实现。通过分析核心代码（App.tsx和Login.tsx），展示了如何利用Token验证、URL参数清理和条件渲染构建安全入口。关键点包括：惰性初始化认证状态、敏感信息清理、路由守卫拦截未认证访问，以及登录组件的多模式切换与密码强度检测。这些技术共同确保只有合法用户能访问应用核心功能，同时提供流畅的用户体验。项目源码见：InkWords GitHub仓库。]]></description><category></category></item><item><title><![CDATA[统一响应封装与 API 错误处理]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188742</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/160188742</guid><author>ZHENGZJM</author><pubDate>Wed, 15 Apr 2026 18:04:32 +0800</pubDate><description><![CDATA[本文介绍了如何在后端开发中实现统一的API响应封装与错误处理。通过设计标准化的响应结构体（包含状态码、消息和数据字段），可以确保所有API接口遵循一致的格式。文章展示了成功响应(Success)和错误响应(Error)的封装方法，并提供了在Gin框架中的具体实现示例。这种标准化处理能显著提升前后端协作效率，减少接口混乱，使错误处理更加规范化。完整代码示例可在项目源码中查看，包括模型定义、服务层实现和控制器调用等完整流程。]]></description><category></category></item><item><title><![CDATA[认证增强：图形验证码、邮箱验证与账户安全]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962931</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962931</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:42:22 +0800</pubDate><description><![CDATA[第一层：图形验证码- 防止自动化脚本第二层：邮箱验证- 确保用户控制邮箱第三层：密码强度- 要求复杂密码第四层：智能锁定- 防止暴力破解通过本文的实践，我们为 InkWords 项目构建了一个企业级的认证增强系统。图形验证码：使用 base64Captcha 库轻松实现邮箱验证：支持真实发送和Mock模式智能防护：根据失败次数动态调整验证策略密码安全：bcrypt哈希 + 强度校验完整流程：注册、登录、重置密码的全套实现这些安全措施虽然增加了开发复杂度，但为用户账户提供了坚实保护。]]></description><category></category></item><item><title><![CDATA[原生邮箱密码注册与登录实现]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962499</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962499</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:33:06 +0800</pubDate><description><![CDATA[本文介绍了如何在InkWords项目中实现原生邮箱密码注册与登录功能。]]></description><category></category></item><item><title><![CDATA[GitHub OAuth2 第三方登录全流程]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962187</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962187</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:19:31 +0800</pubDate><description><![CDATA[GitHub OAuth2第三方登录全流程解析 本文详细介绍了实现GitHub OAuth2第三方登录的完整流程，包含三个核心阶段： 授权请求阶段：通过后端生成GitHub授权URL，引导用户跳转至GitHub授权页面。关键步骤包括创建GitHub OAuth应用、配置环境变量和生成带防CSRF state参数的授权URL。 回调处理阶段：GitHub返回授权码后，后端用code换取access_token，再获取用户信息。文章展示了如何正确处理回调URL、交换token和获取用户数据。 ]]></description><category></category></item><item><title><![CDATA[Gin 鉴权中间件设计与实现]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962143</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962143</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:17:59 +0800</pubDate><description><![CDATA[Gin 鉴权中间件设计与实现 本文详细介绍了 Gin 框架中鉴权中间件的设计与实现，通过 JWT Token 验证机制保护 API 安全。文章包含以下核心内容： 中间件工作原理 - 通过流程图展示完整的请求验证流程 代码实现解析 - 包括头部验证、Token 解析和开发模式特殊处理 项目集成方法 - 演示如何在路由中注册中间件 处理器使用示例 - 展示如何获取用户信息 该中间件支持开发模式虚拟用户 ID 生成，严格验证 Authorization 头部格式，并通过 JWT 签名验证确保请求合法性。]]></description><category></category></item><item><title><![CDATA[JWT 鉴权体系：令牌生成与解析]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962049</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159962049</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:16:34 +0800</pubDate><description><![CDATA[JWT鉴权体系摘要 JWT(JSON Web Token)是一种轻量级的身份验证方案，解决了传统Session-Cookie模式的痛点。本文从实战角度讲解了JWT的核心实现。]]></description><category></category></item><item><title><![CDATA[前端基石：React + Vite + TypeScript 项目搭建]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961759</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961759</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:12:31 +0800</pubDate><description><![CDATA[本文详细介绍了搭建基于React + Vite + TypeScript的现代化前端项目架构。文章首先阐述了技术选型理由，包括Vite的快速构建、React的流行度、TypeScript的类型安全等优势。随后深入解析了项目初始化配置，涵盖项目结构、package.json依赖管理、Vite构建配置以及TypeScript设置。特别强调了开发服务器代理和路径别名等实用功能。最后介绍了Zustand状态管理库的基础实现，展示了轻量级状态管理方案。该技术栈组合兼顾开发效率和代码质量，为全栈应用开发奠定了坚实基础]]></description><category></category></item><item><title><![CDATA[数据库连接与自动迁移]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961629</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961629</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 17:01:20 +0800</pubDate><description><![CDATA[本文介绍了如何为InkWords全栈平台建立数据库连接与自动迁移功能。通过GORM框架连接PostgreSQL数据库，实现了数据模型的自动迁移。文章详细解析了核心代码，包括数据库初始化、连接字符串配置和自动迁移机制，并提供了PostgreSQL安装、数据库创建和验证迁移结果的具体操作步骤。该方案为应用提供了可靠的数据存储基础，支持后续开发功能扩展。]]></description><category></category></item><item><title><![CDATA[后端基石：Go 项目初始化与数据库模型设计]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961508</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961508</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 16:56:20 +0800</pubDate><description><![CDATA[文章摘要： 本文介绍了Go语言后端项目的初始化与数据库模型设计。首先通过Go Modules管理依赖，创建清晰的项目结构。重点剖析了InkWords博客平台的两个核心数据模型：User模型使用UUID主键、软删除和字段权限控制，确保用户数据安全；Blog模型支持Markdown内容存储和章节管理，采用JSON类型存储扩展元数据。文章通过建筑比喻强调良好设计的重要性，并提供了具体代码示例，展示了现代化Go项目的规范化开发流程，包括模块初始化、依赖管理和数据模型定义的最佳实践]]></description><category></category></item><item><title><![CDATA[架构总览：Monorepo 结构与容器化部署]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961396</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961396</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 16:51:04 +0800</pubDate><description><![CDATA[墨言博客助手架构设计 本文介绍了墨言博客助手的整体架构设计，采用Monorepo结构和Docker容器化部署方案。主要内容包括： Monorepo优势：统一代码仓库便于前后端代码共享、依赖管理和CI/CD流程简化 Docker解决方案：通过容器化技术解决&quot;在我机器上能运行&quot;问题，使用Docker Compose编排多服务 优化实践：采用多阶段构建减小镜像体积，利用层缓存加速构建过程 架构设计确保开发环境一致性，提升协作效率，为后续开发奠定坚实基础。]]></description><category></category></item><item><title><![CDATA[墨言博客助手：兼具代码分析和高质量博客产出]]></title><link>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961245</link><guid>https://blog.youkuaiyun.com/ZHENGZJM/article/details/159961245</guid><author>ZHENGZJM</author><pubDate>Wed, 08 Apr 2026 16:46:32 +0800</pubDate><description><![CDATA[介绍墨言博客助手的项目总览]]></description><category></category></item></channel></rss>