<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>沈显鹏 on 公众号「沈显鹏」</title><link>https://shenxianpeng.dev/zh-cn/authors/shenxianpeng/</link><description>Recent content in 沈显鹏 on 公众号「沈显鹏」</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><managingEditor>xianpeng.shen@gmail.com (沈显鹏)</managingEditor><webMaster>xianpeng.shen@gmail.com (沈显鹏)</webMaster><copyright>Copyright © 2017–2026 Xianpeng Shen. All rights reserved.</copyright><lastBuildDate>Wed, 09 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://shenxianpeng.dev/zh-cn/authors/shenxianpeng/index.xml" rel="self" type="application/rss+xml"/><item><title>Keelhaven 发新版本了！这一次，更新都来自真实用户的反馈</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/keelhaven-0-8-0/</link><pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/keelhaven-0-8-0/</guid><description>Keelhaven 0.8.0 里面的大部分更新都来自真实用户的反馈：新的备份 destinations、可自定义的备份参数、备份预览、只保留最近 N 个快照。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/keelhaven-0-8-0/featured.jpg"/></item><item><title>我给 restic 做了个 Mac 菜单栏客户端，免费开源</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/keelhaven/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/keelhaven/</guid><description>我给 restic 做了个 macOS 菜单栏客户端 Keelhaven：选文件夹、选目的地、设频率，然后可以忘掉它。备份到你自己的硬盘、S3 桶或者 NAS，加密在本机完成，没有账号系统，不收集任何数据。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/keelhaven/featured.jpg"/></item><item><title>mkdocs-ng v1.8.0 发布：修复上游遗留问题，构建提速约 14%</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng-1.8/</link><pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng-1.8/</guid><description>mkdocs-ng v1.8.0 发布了，这是 fork 以来的第一个功能版本。内置主题不再复制多余的 highlight.js 资源，clean build 快约 14%，产物少约 440 个文件；搜索终于能搜到 while、if 这类编程关键词。1.9.0 将针对 mkdocs serve 做增量构建优化。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng-1.8/featured.jpg"/></item><item><title>Open Delivery Spec 更新：AI 代码不止要过门，还要留下证据</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/open-delivery-spec-update/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/open-delivery-spec-update/</guid><description>三周前我介绍了业余项目 Open Delivery Spec (ODS)。这三周里 CLI 又发了 5 个版本，新增了两条主线：用确定性信号回答&amp;quot;这个 AI PR 敢不敢合&amp;quot;，以及每个 PR 自动产出一份标准格式的 AI 代码证据文档。本文依旧基于项目真实现状，不做任何夸大。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/open-delivery-spec-update/featured.jpg"/></item><item><title>申请通过了，Anthropic 免费送了我 6 个月 Claude Max</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/claude-for-open-source/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/claude-for-open-source/</guid><description>申请 Anthropic 开源开发者计划通过了，拿到了 6 个月 Claude Max 20x 的免费使用权。聊聊申请条件、为什么能通过，以及这些年维护开源项目的一些感受。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/claude-for-open-source/featured.jpg"/></item><item><title>用 no-ai-slop 去掉你文章里的 AI 味</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/no-ai-slop/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/no-ai-slop/</guid><description>最近写文章越来越多用 AI 帮忙，但写完总感觉哪里不对——那味道太冲了。Peter Yang 做了一个叫 no-ai-slop 的开源 skill，专门识别和去除英文写作里的 AI 套话模式，但没有中文版。我把它翻译并适配成了中文版本，支持 20 多种中文 AI 套话模式的检测和编辑。如果你也在用 AI 写公众号或技术文章，这个工具应该能帮你。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/no-ai-slop/featured.jpg"/></item><item><title>从吹到黑：我为什么不再推荐 GitHub Copilot？</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/goodbye-copilot/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/goodbye-copilot/</guid><description>最近我对 GitHub Copilot 的态度发生了一次比较大的变化：从原来的&amp;quot;吹&amp;quot;变成了现在的&amp;quot;黑&amp;quot;。在对比了 Claude Code 之后，我发现 Copilot 在跨仓库支持、高级工程师意识等方面存在明显不足，已经让我不愿意再和它讨论问题了。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/goodbye-copilot/featured.jpg"/></item><item><title>Open Delivery Spec：我为 AI 写的代码做了一道 CI 质量门</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/open-delivery-spec/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/open-delivery-spec/</guid><description>过去几个月我业余做了一个开源组织 Open Delivery Spec (ODS)。起因是 AI 生成的代码越来越多，但团队缺乏可靠的治理手段。本文基于项目真实现状，记录思路、进展与边界，不做任何夸大。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/open-delivery-spec/featured.jpg"/></item><item><title>Conventional Branch 1.1.0 发布，正式支持 AI Coding Agent 分支前缀</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-v1-1-0/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-v1-1-0/</guid><description>Conventional Branch 规范迎来首次重大更新。1.1.0 版本新增了 AI Coding Agent 分支前缀支持（ai/、copilot/、cursor/、claude/、codex/），同时提供了 machine-readable 的 spec.json 和 agent 注册表，让规范不仅面向人，也面向工具。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-v1-1-0/featured.jpg"/></item><item><title>Jenkinsfile Lint 1.5.0 发布：不需要 Jenkins 服务器的 Standalone 模式</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/jenkinsfilelint-standalone/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/jenkinsfilelint-standalone/</guid><description>之前 jenkinsfilelint 需要连接一个可用的 Jenkins 服务器才能做语法校验。现在 v1.5.0 新增了 standalone 模式，只需要有 Docker，就能在本地启动一个最小 Jenkins 环境来验证 Jenkinsfile 语法。这篇文章详细介绍这个模式的实现思路和用法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/jenkinsfilelint-standalone/featured.jpg"/></item><item><title>你的仓库里，哪些代码是 AI 写的？现在有工具能管住了</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/commit-check-ai-attribution/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/commit-check-ai-attribution/</guid><description>Claude Code 等 AI 工具默认会往提交里塞签名，很多人根本没注意到。Commit Check v2.11.0 引入 AI 归属治理，一行配置即可在 CI 层面拒绝带 AI 签名的提交。本文也聊聊这个功能的边界，以及这半年 Commit Check 解决的其他几个痛点。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/commit-check-ai-attribution/featured.jpg"/></item><item><title>原本只想提个文档 PR，结果项目进了 Jenkins 官方组织</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/jenkinsfilelint/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/jenkinsfilelint/</guid><description>我写了一个验证 Jenkinsfile 的小工具，原本只是想让它出现在 Jenkins 官方的开发工具列表里。结果 Jenkins 维护者提议：不如直接把项目转进 jenkinsci 组织？这篇文章记录了从 PR 到 transfer 再到官方博客的完整过程，包括中间踩的一个很有意思的坑。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/jenkinsfilelint/featured.jpg"/></item><item><title>从 Demo 到生产：Agentic Application 的 8 层架构</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/agentic-application-8-layers/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/agentic-application-8-layers/</guid><description>本文从 Agent 边界设计、Tool Engineering、可观测性、评估体系、Memory 分层、Human-in-the-Loop、成本控制和安全八个维度，拆解一套面向企业落地的 Agentic Application 架构思路。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/agentic-application-8-layers/featured.jpg"/></item><item><title>Conventional Branch 有了自己的域名：conventionalbranch.org</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-domain/</link><pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-domain/</guid><description>Conventional Branch 项目网站正式从 conventional-branch.github.io 迁移到 conventionalbranch.org。从去年用户提议到今年最终落地，聊聊域名迁移背后那些犹豫、踩坑和思考。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-domain/featured.jpg"/></item><item><title>cpp-linter-hooks：C/C++ 项目最完整的 pre-commit 方案</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/cpp-linter-hooks/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/cpp-linter-hooks/</guid><description>pre-commit 生态里 C/C++ 的工具一直比较薄弱。cpp-linter-hooks 是目前唯一同时支持 clang-format 和 clang-tidy 的 pre-commit hook，还内置了编译数据库自动检测、版本锁定、自动修复等实用功能。本文介绍它的用法和设计思路。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/cpp-linter-hooks/featured.jpg"/></item><item><title>Conventional Branch 官方 Skill 来了，安装只需一行命令</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-skill/</link><pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-skill/</guid><description>有用户提 Issue 希望 Conventional Branch 能提供官方 Agent Skill，我觉得这个需求很合理。当天就把它做了出来，现在通过 npx skills add 一行命令就能下载使用。恰逢本周项目也突破了 100 个 Star，一并聊聊。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/conventional-branch-skill/featured.jpg"/></item><item><title>mkdocs-ng 维护进展：v1.7.x 修复总结与下一步计划</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng-update/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng-update/</guid><description>从接手 mkdocs-ng 维护以来发了四个版本，修了十几个 Bug，去掉了 mergedeep 依赖。接下来 v1.8.0 会是一个功能版本，计划去掉旧 Python 版本支持、移除内置主题的 CDN 依赖、提供稳定的 Python API。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng-update/featured.jpg"/></item><item><title>我在 Jira 里搭了一个 AI Agent：一个 Jira 版 Copilot 的实现思路</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/jira-ai-agent/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/jira-ai-agent/</guid><description>不少朋友问怎么在 Jira 里做一个类似 GitHub Copilot 的 AI Agent。本文结合我在 Jira 里实际开发的一个类似应用，分享从账号准备、Jira Automation 触发、Webhook 对接，到 Skills 能力体系搭建的完整思路。核心是利用现有服务，低成本快速实现。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/jira-ai-agent/featured.jpg"/></item><item><title>DeepSeek V4：把 Coding Agent 的使用成本打下来</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/deepseek-v4/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/deepseek-v4/</guid><description>这个月 Codex 自动续费了。原本我已经不太打算继续订，但这次续费反而让我重新比较了 Codex、DeepSeek V4 系列和 Copilot 的实际体验。对我来说，AI 编程工具的核心差距，已经不只是模型能力，而是谁能更稳定、更便宜、更持续地帮我写代码。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/deepseek-v4/featured.jpg"/></item><item><title>RepoKeeper 十天一百次提交之后，它已经能自己开发自己了</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/repokeeper/</link><pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/repokeeper/</guid><description>过去十天，我给 RepoKeeper 提交了一百多次代码，从一个概念验证跑到了 v1.2.0。它现在有六个模块，两个后端，支持 DeepSeek/OpenAI/Claude，还能用自己来开发自己——这篇文章讲讲它到底进化成了什么。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/repokeeper/featured.jpg"/></item><item><title>我又开始为爱发电了：正式维护 MkDocs 和 Material for MkDocs</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng/</guid><description>MkDocs 快两年没更新了，Material for MkDocs 也进了维护模式。作为重度用户，我 fork 了这两个项目，发布了 mkdocs-ng 和 mkdocs-ng-material，更新一下包名就能继续用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/mkdocs-ng/featured.jpg"/></item><item><title>pi 项目里那些反直觉的设计：从 AGENTS.md 到「先把你的 PR 关掉」</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/pi-contributing-philosophy/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/pi-contributing-philosophy/</guid><description>读完 Mario Zechner 的「I&amp;rsquo;ve sold out」，又翻了 pi 仓库里的 AGENTS.md 和 CONTRIBUTING.md，我发现这个项目在很多地方都和常见的开源协作方式不太一样。新贡献者的 issue 和 PR 默认关闭、周末不 review、不懂代码就别提 PR。看起来很强硬，但背后其实是在认真处理一个问题：AI 时代，开源项目要怎么避免被低质量贡献拖垮。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/pi-contributing-philosophy/featured.jpg"/></item><item><title>Explain Error Plugin 重磅更新：AI 自动修复、用量管控与更多 AI 提供商</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin-3/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin-3/</guid><description>Explain Error Plugin 近期迎来多个重要更新：AI Auto-Fix 自动创建修复 PR、用量统计与配额管控、以及新增对 DeepSeek、Qwen、Azure OpenAI、Custom Okta 四个新 AI 提供商的支持。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin-3/featured.jpg"/></item><item><title>两毛四写一篇文章：我用 Pi + DeepSeek 做 Codex 备用方案的体验</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/pi-deepseek/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/pi-deepseek/</guid><description>Codex 每月 22 美元的订阅费加上额度限制，让我开始寻找一个便宜、稳定、随时能顶上的备用方案。在尝试 OpenCode 不顺利后，我转向了 Pi + DeepSeek 的组合。结果有点出乎意料：写完整篇博客文章，只花了 0.24 元人民币。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/pi-deepseek/featured.jpg"/></item><item><title>AI Agent，还是 Automation？</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/ai-agents-vs-automations/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/ai-agents-vs-automations/</guid><description>网上看到一个梗图，让我想到一个问题：什么场景该用确定性自动化，什么场景该上 AI Agent？这篇文章聊聊我的判断标准。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/ai-agents-vs-automations/featured.jpg"/></item><item><title>Python 供应链“核弹”级攻击刚刚发生：一个 pip install 就偷走你的所有凭证！</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/pipguard/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/pipguard/</guid><description>Python 供应链攻击已经发生，一个 pip install 就能偷走你的所有凭证。介绍如何用 pipguard 在安装前拦截恶意包。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/pipguard/featured.jpg"/></item><item><title>你的项目还在跑 Python 3.9 吗？我写了个工具来盯着这件事</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/py-eol/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/py-eol/</guid><description>py-eol 是一个专门用来检查 Python 版本是否快到期的工具。它可以扫描项目文件，精确到行号，告诉你哪些地方还在用 EOL 的版本。还可以接入 CI，让检查自动跑，不让过期版本偷偷混进来。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/py-eol/featured.jpg"/></item><item><title>用了 AI 之后，我反而更忙了</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/more-busy/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/more-busy/</guid><description>效率提升了，但工作量并没有减少，反而更多。需求变快、节奏变快，外界的期待也随之水涨船高——「你不是在用 AI 吗，怎么还没做完？」压力不是消失了，是换了一种形式。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/more-busy/featured.jpg"/></item><item><title>困扰社区三年的问题：我把 Hadolint 塞进 PyPI，终结手动安装的历史</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/hadolint-pre-commit/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/hadolint-pre-commit/</guid><description>Hadolint 的 pre-commit 集成长期缺少自动安装方案，困扰社区三年。本文介绍如何通过将 Hadolint 二进制封装成 Python Wheel 包并发布到 PyPI，让 pre-commit 像安装任何 Python 工具一样一键集成 Hadolint，彻底消除手动下载与环境配置的负担。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/hadolint-pre-commit/featured.jpg"/></item><item><title>开源界的“彩票”怎么领？从 thanks.dev 的运作机制说起</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/thanks-dev/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/thanks-dev/</guid><description>&lt;p&gt;上篇文章写了被 Canonical &lt;a href="https://shenxianpeng.dev/zh-cn/posts/2026/thanks-canonical/" &gt;捐款&lt;/a&gt; 这件事，有读者问：你怎么就被选中了？&lt;/p&gt;
&lt;p&gt;一开始我也没搞清楚。后来认真研究了一下 thanks.dev 的运作机制，才把整件事的底层逻辑想明白了——以及，什么样的项目更容易被下游厂商的钱砸到。&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/thanks-dev/featured.jpg"/></item><item><title>找工作难？你可能还在用十年前的方式竞争</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/find-job/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/find-job/</guid><description>最近有个读者给我发私信，说现在找到工作很难，让我帮看看简历，想问问我有没有什么找工作的建议。现在的就业市场，似乎比以前更看重你可以做什么，做过什么。换句话说，学历重要，但能力更重要。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/find-job/featured.jpg"/></item><item><title>感谢 Canonical 的慷慨捐赠，让 badgepy 得以继续免费开源</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/thanks-canonical/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/thanks-canonical/</guid><description>今天无意中发现，Canonical 已经连续四个月通过 thanks.dev 给我捐款支持 badgepy 的开发了。虽然金额不大，但这个反馈对我来说意义重大。它让我意识到，有时候我们只要坚持做对的事情，不去过多担心回报，结果可能会在一个完全意想不到的地方，以一种温暖的方式给你反馈。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/thanks-canonical/featured.jpg"/></item><item><title>GitStats 2.0：全新 UI 和图表引擎，让你的 Git 仓库历史数据焕然一新</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/gitstats-2.0/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/gitstats-2.0/</guid><description>最近我对开源项目 GitStats 的 UI 进行了大幅改版，新增了深色/浅色模式切换、响应式适配和现代化视觉设计，让报告看起来像一个真正的产品。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/gitstats-2.0/featured.jpg"/></item><item><title>别学 OpenClaw 了，它撑不过今年</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/openclaw/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/openclaw/</guid><description>OpenClaw 是一个很好的 idea，但不会是一个很好的 solution。高成本、安全隐患、大厂竞争、用户教育缺失——这四块石头压在一起，很难撑起一个长期繁荣的生态。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/openclaw/featured.jpg"/></item><item><title>2025 DevOps 现状报告：技能已是必备项，实战经验比证书更值钱</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/state-of-devops/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/state-of-devops/</guid><description>最新的《2025年 DevOps 现状报告》显示，40% 的企业已将 DevOps 经验列为&amp;quot;必须具备&amp;quot;，43% 的企业近期将列入必选项。相比于培训证书，雇主更看重实战经验。AIOps 和 DevSecOps 热度虽高，落地仍处起步阶段。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/state-of-devops/featured.jpg"/></item><item><title>Agentic DevOps 初探：GitHub Agentic Workflow 与 Continuous AI 的实践观察</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/agentic-devops/</link><pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/agentic-devops/</guid><description>最近又接触到一个相关但更进一步的概念——Agentic DevOps。花时间阅读了微软 Azure 相关介绍、GitHub 的最新文档以及部分开源实践后，我整理了这篇笔记。目的是记录学习过程，也供同行参考。以下内容基于公开资料和我的理解，不涉及任何夸大预测。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/agentic-devops/featured.jpg"/></item><item><title>Explain Error Plugin 新增两大企业级功能：自定义上下文与文件夹级配置</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin-2/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin-2/</guid><description>Explain Error Plugin 迎来两个重要更新：支持自定义上下文信息和文件夹级别的 AI 提供商配置。这两个功能让插件在企业环境中的使用更加灵活和强大。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin-2/featured.jpg"/></item><item><title>攻城狮周刊（第 5 期）：当最好的工程师不再写代码——AI 编程的繁荣与隐忧</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-5/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-5/</guid><description>这里记录每周值得分享的技术内容，周五发布。本杂志开源，欢迎投稿。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/weekly-5/featured.jpg"/></item><item><title>攻城狮周刊（第 4 期）：AI 编程助手市场竞争加剧</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-4/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-4/</guid><description>这里记录每周值得分享的 DevOps 与 AI 技术内容，周五发布。本杂志开源，欢迎投稿。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/weekly-4/featured.jpg"/></item><item><title>攻城狮周刊（第 3 期）：OpenClaw 狂热背后，AI 助手回归本地</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-3/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-3/</guid><description>这里记录每周值得分享的 DevOps 与 AI 技术内容，周五发布。本杂志开源，欢迎投稿。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/weekly-3/featured.jpg"/></item><item><title>Explain Error Plugin 又更新了：来自用户反馈的两个实用新功能</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin/</guid><description>最近收到一些用户反馈，我也第一时间对 Explain Error Plugin 做了增强，新增了两个非常实用的功能：支持指定语言输出解释内容和支持在 Pipeline 中获取返回值 AI 的返回值。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/explain-error-plugin/featured.jpg"/></item><item><title>Clawdbot 变身 Moltbot：把 AI “养”在你的电脑里</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/get-start-clawdbot/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/get-start-clawdbot/</guid><description>最近 Clawdbot 改名为 Moltbot，越来越多的人开始在家里部署这个 AI 助手。本文分享了 Moltbot 的特点、使用体验以及一些注意事项，帮助你更好地理解和使用这款工具。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/get-start-clawdbot/featured.jpg"/></item><item><title>什么是 AIOps？一篇文章带你系统认识智能运维</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/aiops/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/aiops/</guid><description>微服务和混合云让 IT 系统越来越复杂，成千上万的告警让传统运维难以为继。本文结合 IBM、ServiceNow、GitHub 和 Red Hat 的观点，梳理 AIOps 的核心概念和价值。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/aiops/featured.jpg"/></item><item><title>回国一个月，我什么“大事”也没做</title><link>https://shenxianpeng.dev/zh-cn/misc/2026-vacation-notes/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/misc/2026-vacation-notes/</guid><description>记录一下 2026 年春节回国探亲的点滴感受。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/misc/2026-vacation-notes/featured.jpg"/></item><item><title>几年后再聊“要不要出国”：一些阶段性的思考</title><link>https://shenxianpeng.dev/zh-cn/misc/go-abroad-or-not/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/misc/go-abroad-or-not/</guid><description>&lt;p&gt;前几周和几位老同事聚会，聊起了一个我们以前讨论过的话题：要不要出国。&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/misc/go-abroad-or-not/featured.jpg"/></item><item><title>攻城狮周刊（第 2 期）：AI 与平台工程的深度融合，重塑开发者未来</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-2/</link><pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-2/</guid><description>这里记录每周值得分享的 DevOps 与 AI 技术内容，周五发布。本杂志开源，欢迎投稿。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/weekly-2/featured.jpg"/></item><item><title>攻城狮周刊（第 1 期）：AI 工程化与 DevOps 韧性：2026 年技术发展双主线</title><link>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-1/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2026/weekly-1/</guid><description>这里记录每周值得分享的 DevOps 与 AI 技术内容，周五发布。本杂志开源，欢迎投稿。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2026/weekly-1/featured.jpg"/></item><item><title>GitHub AI 名词全解析：Copilot、Agents、Models 到 MCP，到底谁是谁？</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/github-ai/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/github-ai/</guid><description>本文通过基于事实的解释和比喻，详细解读了 GitHub 上的 AI 相关概念及其层级关系，帮助读者理清 Models、Agents、Spaces、Spark 等术语的含义和作用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/github-ai/featured.jpg"/></item><item><title>Backstage（开发者门户）是什么？它能解决什么，又解决不了什么</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/backstage/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/backstage/</guid><description>Backstage 是什么？它为什么在平台工程领域变得如此重要？分享一些对 Backstage 的认识和判断。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/backstage/featured.jpg"/></item><item><title>一文看懂 DevOps：Packer、Terraform、Docker、K8s 原来是这样分工的！</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/devops-tools/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/devops-tools/</guid><description>在 DevOps 世界里，工具一多，很多人都会混淆它们的职责。用汽车产业链类比，帮你一次性理解 Packer、Terraform、Ansible、Docker、Kubernetes 的定位和协作方式。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/devops-tools/featured.jpg"/></item><item><title>py-eol：你可能一直在用“过期 Python”，只是没发现</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/py-eol/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/py-eol/</guid><description>py-eol 是一个轻量的小工具，帮助你快速判断某个 Python 版本是否已过期或即将 EOL，适合本地使用，也能集成到 CI/CD 中，让项目在版本管理上更可靠。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/py-eol/featured.jpg"/></item><item><title>为了让大家少敲两行命令，我把 gnuplot 封成了一个开箱即用的 Python 包</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/gnuplot-wheel/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/gnuplot-wheel/</guid><description>作为一个开源项目维护者，我深知“安装依赖”的痛苦。为了让用户少敲两行命令，我花时间把 gnuplot 封装成了一个开箱即用的 Python 包——gnuplot-wheel。本文分享了这个小轮子的诞生故事和实用价值。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/gnuplot-wheel/featured.jpg"/></item><item><title>软件开发真相：加两个人，并不会让项目快三倍</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/the-mythical-man-month/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/the-mythical-man-month/</guid><description>在软件开发中，布鲁克斯法则指出“向一个已经延期的软件项目增加人力，只会使它更加延期。”本文通过烤鸡和孕妇的比喻，深入探讨了这一现象背后的原因，并提供了实用的解决方案。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/the-mythical-man-month/featured.jpg"/></item><item><title>受够了 Jenkinsfile 提交后才报错？试试这个预检查工具！</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/jenkinsfilelint/</link><pubDate>Thu, 27 Nov 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/jenkinsfilelint/</guid><description>Jenkinsfile 本地检查神器，利用 API 校验，完美支持 pre-commit。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/jenkinsfilelint/featured.jpg"/></item><item><title>如何激活 InstallShield 许可证</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/active-installshileld/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/active-installshileld/</guid><description>本文介绍了如何激活 InstallShield 许可证的步骤和注意事项，帮助用户顺利完成软件安装和使用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/active-installshileld/featured.jpg"/></item><item><title>兜兜转转，我发现 GitHub Copilot 才是最香的</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/copilot/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/copilot/</guid><description>经过一段时间的对比和尝试，我还是回到了 GitHub Copilot。本文分享我为何认为它是 2025 年最值得订阅的 AI 编程助手，以及实际使用体验。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/copilot/featured.jpg"/></item><item><title>开源维护者最讨厌的一句话"Any updates?"，你说过吗？</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/any-updates/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/any-updates/</guid><description>在开源项目的 issue 里，你是否也曾留言“Any updates?”（有什么更新吗？）来询问进展？看似无害的一句话，实际上却可能让维护者感到烦躁和挫败。本文分享了一篇关于这个话题的文章，并提出了更友善的替代做法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/any-updates/featured.jpg"/></item><item><title>Commit Check v2.0.0 重磅发布：支持 TOML 配置、简化 CLI &amp; Hooks、重构验证引擎！</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/commit-check-v2/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/commit-check-v2/</guid><description>经过了断断续续一个月的开发和测试，我终于完成了这次重大更新。这也是 Commit Check 迎来了自诞生以来最大的一次更新。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/commit-check-v2/featured.jpg"/></item><item><title>Jenkins Explain Error 插件现已支持 Ollama！🤖</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin-support-ollama/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin-support-ollama/</guid><description>本文介绍了 Jenkins Explain Error Plugin 的新功能，即支持 Ollama 本地模型，帮助用户更高效地分析和解决构建错误。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin-support-ollama/featured.jpg"/></item><item><title>连微软、NASA 都在用的 C/C++ 工具，终于有了官网！</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/cpp-linter-website/</link><pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/cpp-linter-website/</guid><description>cpp-linter 相关的项目和工具官网上线了，地址是 &lt;a href="https://cpp-linter.github.io/" target="_blank" rel="noreferrer"&gt;https://cpp-linter.github.io/&lt;/a&gt;，欢迎大家访问和使用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/cpp-linter-website/featured.jpg"/></item><item><title>白嫖了这么多年，开源基础设施要开始收费了？</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/open-infrastructure-is-not-free/</link><pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/open-infrastructure-is-not-free/</guid><description>开源基础设施并非免费，自来水般的 pip/npm 安装背后是高昂的带宽、存储和运维成本。声明呼吁开发者与企业共同分担，优化工具、支持赞助，才能让我们习以为常的“免费”体验真正可持续。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/open-infrastructure-is-not-free/featured.jpg"/></item><item><title>Conventional Branch 规范一周年：从 0 到全球开发者的选择</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/conventional-branch-one-year-anniversary/</link><pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/conventional-branch-one-year-anniversary/</guid><description>12K+ 访问量、多语言翻译、全球开发者采用，Conventional Branch 规范的一周年之路</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/conventional-branch-one-year-anniversary/featured.jpg"/></item><item><title>来欧洲工作一年多，我只加过一次班</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/work-overtime/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/work-overtime/</guid><description>在欧洲工作一年多，我只加过一次班，这让我深刻体会到东西方工作文化的差异。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/work-overtime/featured.jpg"/></item><item><title>博客双语发布不再麻烦：GitHub Actions + Gemini API 实践</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/auto-translate-post/</link><pubDate>Sun, 24 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/auto-translate-post/</guid><description>发现我的博客英文读者比中文还多？于是我用 GitHub Actions + Gemini API，把文章自动翻译成英文，省心又高效。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/auto-translate-post/featured.jpg"/></item><item><title>做开源四年，我得到了 3 个意想不到的收获</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/why-open-source/</link><pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/why-open-source/</guid><description>有人说开源没用，既赚不到钱，又浪费时间。但我在四年的坚持中，发现了 3 个意想不到的收获：让工作被真正看到、接触更优秀的人和项目、以及一份长期的价值积累。这些收获，其实每个开发者都能借鉴。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/why-open-source/featured.jpg"/></item><item><title>你的团队 DevOps 到底“几分熟”？这个开源工具告诉你</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/devops-maturity/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/devops-maturity/</guid><description>如何评估并提升团队的 DevOps 实践水平？我正式发布了开源项目 DevOps Maturity —— 提供评估工具与实践指南。基于业界模型 + 开源工具，几分钟即可快速测出团队的 DevOps 成熟度。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/devops-maturity/featured.jpg"/></item><item><title>被 Airflow Maintainer 一顿夸：Rust 重写版 pre-commit 项目 prek 的崛起</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/pre-commit-competitors/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/pre-commit-competitors/</guid><description>昨天在网上冲浪，突然看到了一个仓库叫 &lt;code&gt;prek&lt;/code&gt;，一看介绍是 —— ⚡ Better &lt;code&gt;pre-commit&lt;/code&gt;, re-engineered in Rust。这就引起了我的兴趣，毕竟 &lt;code&gt;pre-commit&lt;/code&gt; 作为非常广泛的预提交的工具，如果能改进，尤其是性能方面的改进，肯定是好事。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/pre-commit-competitors/featured.jpg"/></item><item><title>八年之后，我终于翻新了我的博客</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/upgrade-blog-using-hugo/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/upgrade-blog-using-hugo/</guid><description>本文记录了我在八年后对博客进行翻新的过程，从 Hexo 到 Hugo 的迁移，以及新博客的功能和设计改进。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/upgrade-blog-using-hugo/featured.jpg"/></item><item><title>Jenkins Explain Error Plugin 支持 Google Gemini 了！🤖</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin-support-gemini/</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin-support-gemini/</guid><description>本文介绍了 Jenkins Explain Error Plugin 的新功能，支持 Google Gemini 模型进行错误分析，并提供了配置方法和示例视频。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin-support-gemini/featured.jpg"/></item><item><title>Jenkins 插件中心居然还没有 AI 插件？我写了一个！🤖</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin/</link><pubDate>Tue, 29 Jul 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin/</guid><description>介绍我开发的第一个 Jenkins 插件：Explain Error Plugin。它可以自动解析构建失败的日志信息，并生成可读性强的错误解释，帮助开发者更快地定位和解决问题。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/explain-error-plugin/featured.jpg"/></item><item><title>🧊2025软件供应链现状报告：开源时代，我们究竟在和谁打交道？</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/jfrog-report/</link><pubDate>Sat, 28 Jun 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/jfrog-report/</guid><description>JFrog发布的《2025软件供应链现状报告》揭示了软件供应链的变化和风险，尤其是AI模型的安全问题。本文分享了报告中的关键发现和对DevOps从业者的启示。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/jfrog-report/featured.jpg"/></item><item><title>如何修复 Shields.io 徽章在 Jenkins 中无法显示</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/jenkins-show-badge/</link><pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/jenkins-show-badge/</guid><description>如果你的 Shields.io 徽章（例如构建状态或文档状态）在 Jenkins 仪表盘中无法显示，很可能是因为 Jenkins 的严格内容安全策略（CSP）限制所致。本文将演示如何通过 Script Console 临时修复，以及如何通过修改 Jenkins 启动参数永久解决。该方法适用于内部 Jenkins 环境，并已在现代 Jenkins 安装中测试验证。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/jenkins-show-badge/featured.jpg"/></item><item><title>提升代码可追溯性：一招把 PR 描述写入 Git commit</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/commit-message-template/</link><pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/commit-message-template/</guid><description>在 Bitbucket 中使用 Commit Message Templates 功能，将 PR 描述自动写入 Git commit message，确保关键信息不会随工具变更而丢失。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/commit-message-template/featured.jpg"/></item><item><title>如何优雅地控制 Jenkins 构建是否中断？只看这篇</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/jenkins-concurrent-build/</link><pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/jenkins-concurrent-build/</guid><description>在 Jenkins 中，&lt;code&gt;disableConcurrentBuilds&lt;/code&gt; 选项用于管理并发构建。本文介绍了如何根据分支类型动态设置 &lt;code&gt;abortPrevious&lt;/code&gt; 的值，从而实现更灵活的构建管理。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/jenkins-concurrent-build/featured.jpg"/></item><item><title>CI/CD 不是一次性的项目，而是一个不断演进的系统</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/code-refactor/</link><pubDate>Mon, 02 Jun 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/code-refactor/</guid><description>在 DevOps 中，CI/CD 流水线需要持续维护和重构。本文探讨了为什么 CI/CD 不是一次性的建设项目，而是一个需要长期投入和持续演进的系统。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/code-refactor/featured.jpg"/></item><item><title>asdf-clang-tools：使用 asdf 安装 Clang 工具的新选择</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/asdf-clang-tools/</link><pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/asdf-clang-tools/</guid><description>asdf-clang-tools 是一个 asdf 插件，用于安装和管理 Clang Tools 相关工具（如 clang-format、clang-tidy、clang-query 和 clang-apply-replacements 等）。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/asdf-clang-tools/featured.jpg"/></item><item><title>ChatGPT 一开，谁还去“努力”？</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/ai/</link><pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/ai/</guid><description>AI 的出现让很多人感到“虚”，但它不会取代我们的职位，而是改变我们的做事方式。本文分享了对 AI 的体会和每天一小步的坚持。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/ai/featured.jpg"/></item><item><title>还在用 Wiki/Confluence？你可能在生产垃圾</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/docs-and-code/</link><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/docs-and-code/</guid><description>在企业中，Wiki 和 Confluence 等文档工具如果缺乏统一管理和审核机制，可能会导致信息混乱和知识沉淀失败。本文探讨了如何避免这种情况，并借鉴开源社区的成功经验。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/docs-and-code/featured.jpg"/></item><item><title>还在用 pip 和 venv？那你可真落伍了，赶紧体验 uv！</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/uv/</link><pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/uv/</guid><description>uv 是一个由 Astral 团队开发的 Python 包管理工具，它能替代 pip、venv、pip-tools 的功能，提供更快的依赖解析速度和更现代的项目管理方式。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/uv/featured.jpg"/></item><item><title>微软、NASA 都在用？我用业余时间维护了 4 年的项目破百了</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/cpp-linter-action-milestone/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/cpp-linter-action-milestone/</guid><description>cpp-linter-action 是一个 GitHub Action，提供 C/C++ 代码的格式化和静态分析功能。它使用 clang-format 和 clang-tidy，支持多种配置和自定义规则。项目自 2021 年创建以来，已被多个知名组织和开源项目使用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/cpp-linter-action-milestone/featured.jpg"/></item><item><title>访问 GitHub 的那点坚持，快磨没了</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/visit-github/</link><pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/visit-github/</guid><description>GitHub 的访问问题让很多程序员感到困扰，尤其是在国内。本文分享了个人的体验和对网络问题的思考。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/visit-github/featured.jpg"/></item><item><title>从零配置 Sphinx + ReadTheDocs：快速部署自动化文档</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/sphinx-readthedoc/</link><pubDate>Sat, 12 Apr 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/sphinx-readthedoc/</guid><description>在开源项目或团队协作中，Sphinx + ReadTheDocs 是一个易于维护、可自动部署的文档系统。本文记录了配置过程和注意事项。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/sphinx-readthedoc/featured.jpg"/></item><item><title>Markdown 不香了吗？为什么越来越多 Python 项目用 RST？</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/md-vs-rst/</link><pubDate>Fri, 11 Apr 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/md-vs-rst/</guid><description>Markdown 和 reStructuredText（RST）是两种常用的标记语言。本文对比了它们的优缺点，并分享了在不同场景下的使用建议。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/md-vs-rst/featured.jpg"/></item><item><title>一觉醒来，我的 PR 已经被 Merge 到 CPython 主分支了！</title><link>https://shenxianpeng.dev/zh-cn/posts/2025/my-first-pr-to-cpython/</link><pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2025/my-first-pr-to-cpython/</guid><description>在 CPython 的 Issue 区找到一个合适的 PR，修改代码、测试、提交 Pull Request，第二天醒来发现已经被 Merge 到主分支了！这是一个很好的学习过程，也是对开源社区的贡献。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2025/my-first-pr-to-cpython/featured.jpg"/></item><item><title>复活 GitStats：让 Git 历史分析焕发新活力</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/gitstats/</link><pubDate>Thu, 28 Nov 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/gitstats/</guid><description>介绍 GitStats 项目的复活过程，包括迁移到 Python 3、创建现代化流水线、发布到 PyPI 和 Docker，以及未来的改进计划。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/gitstats/featured.jpg"/></item><item><title>pip vs pipx 的区别</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/pip-vs-pipx/</link><pubDate>Tue, 26 Nov 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/pip-vs-pipx/</guid><description>本文介绍了 pip 和 pipx 的区别，帮助开发者选择合适的工具来管理 Python 包和命令行工具。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/pip-vs-pipx/featured.jpg"/></item><item><title>PowerShell 不是内部或外部命令</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/ansbile-playbook-issue/</link><pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/ansbile-playbook-issue/</guid><description>介绍在 Windows Server 2022 上执行 Ansible playbook 时出现 PowerShell 无法识别的问题原因及解决方法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/ansbile-playbook-issue/featured.jpg"/></item><item><title>从早到晚，我的 DevOps 一天</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/devops-everyday/</link><pubDate>Sun, 27 Oct 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/devops-everyday/</guid><description>本文介绍了作为 DevOps 工程师的日常工作节奏，从早上到晚上，涵盖工作准备、会议、代码管理、构建发布等环节。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/devops-everyday/featured.jpg"/></item><item><title>从 Jenkins 升级，我做了哪些优化</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/jenkins-upgrade/</link><pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/jenkins-upgrade/</guid><description>本文介绍了在升级 Jenkins 的过程中所做的优化，包括使用 Docker Compose 部署、重构 Jenkins Shared Library、引入 Windows Docker Container 等，以提升 CI/CD 流程的效率和安全性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/jenkins-upgrade/featured.jpg"/></item><item><title>DevOps进阶：揭秘首席DevOps工程师的职责与技能</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/principal-devops-engineer/</link><pubDate>Thu, 26 Sep 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/principal-devops-engineer/</guid><description>本文介绍了首席DevOps工程师的职责、核心技能和对公司的价值，帮助你了解如何在DevOps领域实现职业发展。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/principal-devops-engineer/featured.jpg"/></item><item><title>约定式分支规范中文版正式发布！</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/conventional-branch/</link><pubDate>Tue, 24 Sep 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/conventional-branch/</guid><description>本文介绍了约定式分支规范的中文版，旨在通过结构化的命名约定提高 Git 分支的可读性和可操作性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/conventional-branch/featured.jpg"/></item><item><title>初步了解 PyPA（Python Packaging Authority）下的知名项目和关系</title><link>https://shenxianpeng.dev/zh-cn/posts/2024/pypa/</link><pubDate>Thu, 05 Sep 2024 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2024/pypa/</guid><description>本文介绍了 PyPA（Python Packaging Authority）下的知名项目，包括 pip、setuptools、wheel 等，并分析了它们之间的关系，帮助读者更好地理解 Python 包管理和分发的生态系统。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2024/pypa/featured.jpg"/></item><item><title>从 XLC 10.1 升级到 IBM Open XL C/C++ for AIX 17.1.0 的问题与解决方案</title><link>https://shenxianpeng.dev/zh-cn/posts/2023/upgrade-xlc-10-to-xlc-17.1/</link><pubDate>Sun, 08 Oct 2023 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2023/upgrade-xlc-10-to-xlc-17.1/</guid><description>本文记录了从 IBM XLC 10.1 升级到 XLC 17.1（IBM Open XL C/C++ for AIX 17.1.0）过程中遇到的问题及解决方法，共涵盖 12 个错误的修复方案。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2023/upgrade-xlc-10-to-xlc-17.1/featured.jpg"/></item><item><title>解决通过 Jenkins Artifactory plugin 上传 artifacts 失败的问题 “unable to find valid certification path to requested target”</title><link>https://shenxianpeng.dev/zh-cn/posts/2023/unable-to-find-valid-certification-path/</link><pubDate>Mon, 11 Sep 2023 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2023/unable-to-find-valid-certification-path/</guid><description>本文介绍了如何解决 Jenkins agent 上传 artifacts 到 Artifactory 时遇到的 SSL 证书验证问题，包括生成安全认证文件和导入到 Java 的 cacerts 中。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2023/unable-to-find-valid-certification-path/featured.jpg"/></item><item><title>Docker Buildx Bake 加速构建和管理多平台镜像的利器</title><link>https://shenxianpeng.dev/zh-cn/posts/2023/buildx-bake/</link><pubDate>Mon, 17 Jul 2023 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2023/buildx-bake/</guid><description>本文介绍 Docker Buildx Bake 的概念、优势、使用场景以及如何使用该功能来加速构建和管理多平台镜像。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2023/buildx-bake/featured.jpg"/></item><item><title>详解SBOM：定义、关系、区别、最佳实践和生成工具</title><link>https://shenxianpeng.dev/zh-cn/posts/2023/sbom/</link><pubDate>Sat, 10 Jun 2023 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2023/sbom/</guid><description>本文介绍了SBOM的定义、与SLSA和Black Duck的关系和区别、最佳实践以及可用的生成工具，帮助读者更好地理解和应用SBOM。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2023/sbom/featured.jpg"/></item><item><title>为什么我的 Jenkins Controller 越来越慢？可能犯了这些错误...</title><link>https://shenxianpeng.dev/zh-cn/posts/2023/jenkins-pipeline-best-practices/</link><pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2023/jenkins-pipeline-best-practices/</guid><description>本文介绍了 Jenkins pipeline 的一些最佳实践，旨在帮助开发者和运维人员优化 Jenkins 的性能和可维护性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2023/jenkins-pipeline-best-practices/featured.jpg"/></item><item><title>如何创建 GPG 密钥并添加到 GitHub</title><link>https://shenxianpeng.dev/zh-cn/posts/2022/git-create-gpg-keys/</link><pubDate>Thu, 28 Jul 2022 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2022/git-create-gpg-keys/</guid><description>本文介绍如何生成 GPG 密钥、导出公钥并将其添加到 GitHub，用于提交签名验证。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2022/git-create-gpg-keys/featured.jpg"/></item><item><title>在 Jenkins 上用了这么久的 Groovy，是时候认识一下它了</title><link>https://shenxianpeng.dev/zh-cn/posts/2022/groovy/</link><pubDate>Sun, 06 Mar 2022 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2022/groovy/</guid><description>Groovy 是一种强大的动态语言，适用于 Java 平台，本文介绍了 Groovy 的特性、与 Java 的区别以及在 Jenkins 中的应用场景。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2022/groovy/featured.jpg"/></item><item><title>Vagrant 和 Docker 的区别，该如何选？</title><link>https://shenxianpeng.dev/zh-cn/posts/2022/vagrant-vs-docker/</link><pubDate>Mon, 14 Feb 2022 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2022/vagrant-vs-docker/</guid><description>本文介绍了 Vagrant 和 Docker 的区别，分析了它们各自的使用场景和优势，帮助读者选择合适的工具来管理虚拟机或容器。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2022/vagrant-vs-docker/featured.jpg"/></item><item><title>什么是 Go ？Go 的优势和现状。初学者应该学习 Python 还是 Go？</title><link>https://shenxianpeng.dev/zh-cn/posts/2022/what-is-go/</link><pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2022/what-is-go/</guid><description>本文介绍了 Go 语言的基本概念、优势、排名以及初学者应该如何选择学习 Python 还是 Go，提供了实用的学习建议和资源。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2022/what-is-go/featured.jpg"/></item><item><title>你一定要了解这 17 条 Docker 最佳实践！</title><link>https://shenxianpeng.dev/zh-cn/posts/2022/docker-best-practice/</link><pubDate>Wed, 12 Jan 2022 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2022/docker-best-practice/</guid><description>本文分享了在编写 Dockerfiles 和使用 Docker 时应遵循的一些最佳实践，包括多阶段构建、镜像优化、安全性等方面的建议。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2022/docker-best-practice/featured.jpg"/></item><item><title>2022年序员如何选择显示器？1080p还是2K? 单屏还是多屏？</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/choose-monitor/</link><pubDate>Tue, 21 Dec 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/choose-monitor/</guid><description>本文分享了个人在选择显示器时的经验和建议，包括不同尺寸、分辨率和屏幕组合的优缺点，以及如何根据工作需求选择最合适的显示器。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/choose-monitor/featured.jpg"/></item><item><title>组织内如何评估 CI/CD 成熟度</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/cicd-assessment/</link><pubDate>Tue, 07 Dec 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/cicd-assessment/</guid><description>本文介绍了如何使用 Jenkins 的 generic-webhook-trigger 插件来实时获取 Bitbucket 仓库的事件信息，如 Pull Request ID 等。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/cicd-assessment/featured.jpg"/></item><item><title>GitHub Actions 还能这么玩？自动将发布的博客文章更新到 GitHub 个人主页</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/github-special-repository/</link><pubDate>Tue, 09 Nov 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/github-special-repository/</guid><description>本文介绍了如何使用 GitHub Actions 自动将发布的博客文章更新到 GitHub 个人主页，提升个人主页的动态性和可读性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/github-special-repository/featured.jpg"/></item><item><title>2021-22 世界质量报告（World Quality Report）</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/world-quality-report/</link><pubDate>Sat, 06 Nov 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/world-quality-report/</guid><description>本文介绍了 2021-22 世界质量报告（WQR）的主要发现和趋势，强调了新冠疫情对软件质量和测试的影响，以及 QA 在敏捷和 DevOps 中的重要作用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/world-quality-report/featured.jpg"/></item><item><title>Polaris - 静态代码分析</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/what-is-polaris/</link><pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/what-is-polaris/</guid><description>这篇文章介绍了 Polaris 的基本概念、支持的编程语言、SaaS 平台的使用方法，以及如何配置和运行 Polaris 进行静态代码分析。它还提供了示例 YAML 配置文件和分析结果的查看方式。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/what-is-polaris/featured.jpg"/></item><item><title>Git 常用命令备忘录</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/git-cheatsheet/</link><pubDate>Sat, 23 Oct 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/git-cheatsheet/</guid><description>本文总结了 Git 的常用命令和技巧，帮助开发者快速查找和使用 Git 命令，提高工作效率。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/git-cheatsheet/featured.jpg"/></item><item><title>SonarQube Community Edition 如何集成到项目中</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/sonarqube-integration/</link><pubDate>Sat, 18 Sep 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/sonarqube-integration/</guid><description>本文介绍如何将 SonarQube Community Edition 集成到 Maven、Gradle 及其他类型项目中，包括必要的配置和 Jenkins 流水线示例。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/sonarqube-integration/featured.jpg"/></item><item><title>运行 lcov 报错 "Can't locate JSON/PP.pm in @INC ..."</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/lcov-error/</link><pubDate>Tue, 07 Sep 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/lcov-error/</guid><description>本文介绍在运行 lcov 生成代码覆盖率报告时遇到 &amp;ldquo;Can&amp;rsquo;t locate JSON/PP.pm in @INC &amp;hellip;&amp;rdquo; 等 Perl 模块缺失错误的解决方法，包括安装缺失的 Perl 模块。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/lcov-error/featured.jpg"/></item><item><title>使用 Gcov 和 LCOV 做 C/C++ 项目的代码覆盖率</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/gcov-example/</link><pubDate>Tue, 17 Aug 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/gcov-example/</guid><description>本文介绍了如何使用 Gcov 和 LCOV 对 C/C++ 项目进行代码覆盖率的度量，包括编译、运行和生成报告的步骤。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/gcov-example/featured.jpg"/></item><item><title>SonarQube 安装与常见问题排查</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/sonarqube-setup/</link><pubDate>Thu, 05 Aug 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/sonarqube-setup/</guid><description>本文记录了 SonarQube 的安装步骤，包括 LDAP 配置与 PostgreSQL 数据库设置，并附带一些常见问题的排查方法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/sonarqube-setup/featured.jpg"/></item><item><title>修复 "hidden symbol `__gcov_init' in ../libgcov.a(_gcov.o) is referenced by DSO" 错误</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/how-to-fix-gcov-hidden-symbol/</link><pubDate>Tue, 27 Jul 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/how-to-fix-gcov-hidden-symbol/</guid><description>本文介绍在使用 Gcov 编译项目进行代码覆盖率统计时，出现 &amp;ldquo;hidden symbol `__gcov_init&amp;rsquo;&amp;hellip;&amp;rdquo; 等错误的原因及解决方法，包括如何在构建时确保符号不被隐藏。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/how-to-fix-gcov-hidden-symbol/featured.jpg"/></item><item><title>使用 REST API 添加或更新 Bitbucket 构建状态</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/bitbucket-update-build-status/</link><pubDate>Sun, 25 Jul 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/bitbucket-update-build-status/</guid><description>本文介绍如何通过 Bitbucket REST API 为指定提交添加或更新构建状态，并给出 Shell 脚本示例，适用于手动修复或补充构建状态的场景。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/bitbucket-update-build-status/featured.jpg"/></item><item><title>关于代码覆盖率 (About Code Coverage)</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/code-coverage/</link><pubDate>Wed, 14 Jul 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/code-coverage/</guid><description>本文简要介绍了代码覆盖率的概念、重要性、常见指标、工作原理以及主流工具，强调了不要过度依赖代码覆盖率指标。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/code-coverage/featured.jpg"/></item><item><title>Jenkins 作业超时后让构建失败的方法（已解决）</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-timeout/</link><pubDate>Thu, 24 Jun 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-timeout/</guid><description>本文介绍如何在 Jenkins 流水线中正确处理超时场景，通过 &lt;code&gt;try&lt;/code&gt; 和 &lt;code&gt;catch&lt;/code&gt; 结合 &lt;code&gt;error&lt;/code&gt; 确保超时后作业会失败。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-timeout/featured.jpg"/></item><item><title>解决在 AIX 上 Git Clone 失败的两个问题</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/git-clone-failed-on-aix/</link><pubDate>Sun, 20 Jun 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/git-clone-failed-on-aix/</guid><description>本文记录了在 AIX 上使用 Jenkins 进行 Git Clone 时遇到的两个问题及其解决方法，包括依赖库加载失败和 SSH 认证失败。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/git-clone-failed-on-aix/featured.jpg"/></item><item><title>通过解除文件资源限制：解决在 AIX 使用 Git 下载大容量仓库失败问题</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/aix-ulimit/</link><pubDate>Thu, 17 Jun 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/aix-ulimit/</guid><description>在 AIX 系统中遇到 Git 下载大容量仓库时因文件大小限制导致失败，通过修改 ulimit 设置解决问题。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/aix-ulimit/featured.jpg"/></item><item><title>关于 Artifactory 上传制品变得非常缓慢，偶尔失败的问题分享</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/artifactory-slow-upload/</link><pubDate>Wed, 16 Jun 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/artifactory-slow-upload/</guid><description>在使用 JFrog Artifactory 上传制品时遇到速度缓慢和上传失败的问题，经过排查和解决，分享经验和教训。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/artifactory-slow-upload/featured.jpg"/></item><item><title>解决 ESlint HTML 报告在 Jenkins 作业中无法正常显示的问题</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-eslint/</link><pubDate>Mon, 07 Jun 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-eslint/</guid><description>本文记录了 ESlint HTML 报告在 Jenkins 中因内容安全策略（CSP）限制而无法正确显示的问题，并介绍了如何通过修改 Jenkins 配置使报告正常加载。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-eslint/featured.jpg"/></item><item><title>Git 常见设置指北</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/git-guidelines/</link><pubDate>Fri, 14 May 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/git-guidelines/</guid><description>本文介绍了在使用 Git 提交代码之前需要进行的一些常见设置，包括配置用户名和邮箱、处理换行符、编写规范的提交信息等，帮助开发者更好地管理代码版本。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/git-guidelines/featured.jpg"/></item><item><title>当 Artifactory “Download Folder 功能被禁用”时如何下载整个文件夹的制品</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/artifactory-api-search/</link><pubDate>Tue, 04 May 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/artifactory-api-search/</guid><description>本文介绍了在 JFrog Artifactory 禁用“Download Folder”功能时，如何使用 Artifactory REST API 来批量下载整个文件夹的制品，并提供了基于 Shell 脚本的示例实现。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/artifactory-api-search/featured.jpg"/></item><item><title>为什么 Windows Installer 会弹出窗口？（已解决）</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/why-windows-installer-pop-up/</link><pubDate>Thu, 22 Apr 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/why-windows-installer-pop-up/</guid><description>本文解释了一个常见的 Windows 安装程序问题：安装时意外弹出窗口的原因，以及通过修正构建文件夹命名规则来解决该问题的方法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/why-windows-installer-pop-up/featured.jpg"/></item><item><title>JaCoCo 代码覆盖率实践分享</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/jacoco-imp/</link><pubDate>Tue, 06 Apr 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/jacoco-imp/</guid><description>本文介绍了 JaCoCo 的使用方法，包括 Gradle 配置、执行测试生成报告、报告参数说明以及如何忽略指定的包或类影响测试覆盖率结果。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/jacoco-imp/featured.jpg"/></item><item><title>你的 Python 代码够不够 Pythonic？</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/pythonic/</link><pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/pythonic/</guid><description>本文介绍了 Pythonic 的概念，并通过示例展示如何编写更简洁、优美的 Python 代码，帮助开发者提升代码质量和可读性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/pythonic/featured.jpg"/></item><item><title>在 Jenkins 中为不同分支设置不同的默认参数</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-dynamic-default-parameters/</link><pubDate>Wed, 24 Mar 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-dynamic-default-parameters/</guid><description>本文介绍如何在 Jenkins 多分支流水线中，根据构建分支动态设置不同的默认参数，从而实现分支差异化配置。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-dynamic-default-parameters/featured.jpg"/></item><item><title>基于谷歌代码审查（Code Review）法则的思考与实践</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/code-review/</link><pubDate>Sat, 20 Mar 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/code-review/</guid><description>本文介绍了谷歌的代码审查法则，并分享了如何在团队中有效实施代码审查的实践经验，包括流程控制和自动化检查等方面。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/code-review/featured.jpg"/></item><item><title>Jenkins 升级后 Windows Agent 无法启动的解决方法</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-windows-agent-cannot-start/</link><pubDate>Thu, 11 Feb 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-windows-agent-cannot-start/</guid><description>本文介绍 Jenkins 升级后 Windows Agent 无法启动的问题，以及通过更新 Windows Slaves 插件和修改配置文件来解决的步骤。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/jenkins-windows-agent-cannot-start/featured.jpg"/></item><item><title>2021年DevOps工程师的学习路线</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/devops-roadmap-2021/</link><pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/devops-roadmap-2021/</guid><description>本文介绍了成为DevOps工程师所需的技能和工具，涵盖软件开发、操作系统、网络安全、容器化、持续集成与部署等方面的知识。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/devops-roadmap-2021/featured.jpg"/></item><item><title>预测 2021 年的 DevOps 趋势</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/devops-trends-2021/</link><pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/devops-trends-2021/</guid><description>本文介绍了 2021 年 DevOps 领域的主要趋势，包括微服务架构、无服务器计算、Kubernetes 的普及以及 DevSecOps 的兴起。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/devops-trends-2021/featured.jpg"/></item><item><title>Jenkins 中 `result` 与 `currentResult` 的区别</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/jenkinsresult-vs-currentresult/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/jenkinsresult-vs-currentresult/</guid><description>本文解释了 Jenkins Pipeline 中 &lt;code&gt;result&lt;/code&gt; 与 &lt;code&gt;currentResult&lt;/code&gt; 的区别，并通过 Declarative Pipeline 与 Scripted Pipeline 示例展示它们在不同阶段的表现。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/jenkinsresult-vs-currentresult/featured.jpg"/></item><item><title>建议在 Bitbucket/GitHub 中启用的仓库设置</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/git-repository-settings/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/git-repository-settings/</guid><description>列出 Bitbucket 和 GitHub 仓库推荐启用的设置，包括禁止强制推送、分支保护、标签管理、合并检查以及提交信息规范等。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/git-repository-settings/featured.jpg"/></item><item><title>在 Windows 上开启 22 端口并让其处于监听状态</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/how-to-open-port-22/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/how-to-open-port-22/</guid><description>本文介绍如何在 Windows 上开启 22 端口并确保其处于监听状态，以便支持 SSH 连接。内容包括安装 OpenSSH 以及防火墙配置步骤。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/how-to-open-port-22/featured.jpg"/></item><item><title>启用与禁用 Git sparse-checkout</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/git-sparse-checkout/</link><pubDate>Mon, 11 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/git-sparse-checkout/</guid><description>介绍如何启用与禁用 Git sparse-checkout，包括配置只检出指定目录的示例，以及如何恢复到完整检出状态。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/git-sparse-checkout/featured.jpg"/></item><item><title>解决 Code Sign 默认时间戳服务器 http://timestamp.verisign.com/scripts/timstamp.dll 不可用</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/verisign-server-not-working/</link><pubDate>Wed, 06 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/verisign-server-not-working/</guid><description>本文介绍了如何解决 Verisign 时间戳服务器不可用的问题，提供了替代的时间戳服务器地址，帮助开发者顺利完成代码签名。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/verisign-server-not-working/featured.jpg"/></item><item><title>2021 年国外 IT 公司对于 DevOps 工程师的要求有哪些？</title><link>https://shenxianpeng.dev/zh-cn/posts/2021/devops-job-requirement/</link><pubDate>Sun, 03 Jan 2021 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2021/devops-job-requirement/</guid><description>了解国外 IT 公司对 DevOps 工程师的技能要求，帮助你在 2021 年树立学习方向，获取理想岗位。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2021/devops-job-requirement/featured.jpg"/></item><item><title>备份 Jenkins 的方法</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-backup/</link><pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-backup/</guid><description>介绍如何使用 ThinBackup 插件或 Shell 脚本备份 Jenkins，确保 Jenkins 配置和构建数据安全存储。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-backup/featured.jpg"/></item><item><title>JaCoCo 实现原理 (JaCoCo Implementation Design)</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jacoco/</link><pubDate>Tue, 17 Nov 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jacoco/</guid><description>介绍 JaCoCo 的实现设计，包括覆盖率分析机制、Java 版本要求、字节码操纵、内存使用等方面的内容。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jacoco/featured.jpg"/></item><item><title>Ansible 实践</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/ansible-practice/</link><pubDate>Wed, 28 Oct 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/ansible-practice/</guid><description>通过 Ansible 实践，探索如何高效管理和监控多种操作系统的虚拟机。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/ansible-practice/featured.jpg"/></item><item><title>写给那些想使用 JFrog Artifactory 管理制品的人</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/what-is-artifactory/</link><pubDate>Sun, 04 Oct 2020 20:43:46 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/what-is-artifactory/</guid><description>本文介绍了 JFrog Artifactory 的概念、优势、工作原理以及最佳实践，帮助读者了解如何使用 Artifactory 管理软件制品。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/what-is-artifactory/featured.jpg"/></item><item><title>程序员自我修养之Git提交信息和分支创建规范</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/commit-messages-specification/</link><pubDate>Thu, 24 Sep 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/commit-messages-specification/</guid><description>本文介绍了如何制定和实施 Git 提交信息和分支创建规范，以提高代码质量和团队协作效率。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/commit-messages-specification/featured.jpg"/></item><item><title>在 GitHub 上发布一个 Python 项目需要注意哪些</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/how-to-release-python-project/</link><pubDate>Sun, 13 Sep 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/how-to-release-python-project/</guid><description>本文介绍个人或企业在 GitHub 上发布一个 Python 项目需要了解和注意的内容，包括项目结构、依赖管理、版本控制等方面的建议。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/how-to-release-python-project/featured.jpg"/></item><item><title>关于 Python pip install 与版本管理</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/pip-install-and-versioning/</link><pubDate>Sun, 30 Aug 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/pip-install-and-versioning/</guid><description>解释 pip install 在不同版本号场景下的行为，包括如何处理 beta 版本，以及在指定版本号时使用 &lt;code&gt;--upgrade&lt;/code&gt; 的影响。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/pip-install-and-versioning/featured.jpg"/></item><item><title>使用 REST API 更新 Jira Server 账号头像</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jira-update-account-avatar-with-rest-api/</link><pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jira-update-account-avatar-with-rest-api/</guid><description>介绍如何通过 Jira REST API 更新 Jira Server 账号的头像，并提供 Python 和 Postman 示例。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jira-update-account-avatar-with-rest-api/featured.jpg"/></item><item><title>解决 “Remote session was disconnected because there are no Remote Desktop client access licenses available”</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/rdp-problem/</link><pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/rdp-problem/</guid><description>修复 Windows Server 2012 R2 上的 RDP 连接问题，错误提示为没有可用的远程桌面客户端访问许可证。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/rdp-problem/featured.jpg"/></item><item><title>通过 generic-webhook-trigger 插件实时获取 Bitbucket Repository Events</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/bitbucket-pull-request-event/</link><pubDate>Fri, 07 Aug 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/bitbucket-pull-request-event/</guid><description>本文介绍如何使用 Jenkins 的 generic-webhook-trigger 插件来实时获取 Bitbucket 仓库的事件信息，如 Pull Request ID 等。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/bitbucket-pull-request-event/featured.jpg"/></item><item><title>Jenkins 执行 Shell 如果返回值不为0，作业(Job)停止并失败怎么办？</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-3/</link><pubDate>Wed, 22 Jul 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-3/</guid><description>如何在 Jenkins Pipeline 中处理 Shell 返回值不为0的情况，以确保作业(Job)在执行成功后仍然显示为成功状态。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-3/featured.jpg"/></item><item><title>解决 “.NET Framework 2.0 or later is required on this computer to run a Jenkins agent as a Windows service” 问题</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-windows-agent-connect-problem/</link><pubDate>Thu, 16 Jul 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-windows-agent-connect-problem/</guid><description>当 Jenkins Windows Agent 因缺少 .NET Framework 无法连接时，通过安装 .NET Framework 3.5 并设置 Jenkins Agent 服务来解决问题。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-windows-agent-connect-problem/featured.jpg"/></item><item><title>每个 Jenkins 用户都应该知道这三个最佳实践</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-best-practice/</link><pubDate>Mon, 06 Jul 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-best-practice/</guid><description>本文介绍了 Jenkins 的三个最佳实践：配置即代码、Jenkins 共享库和多分支流水线，帮助用户提升 Jenkins 的使用效率和质量。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-best-practice/featured.jpg"/></item><item><title>将 Jenkins Shell 返回的字符串处理为字符数组</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-2/</link><pubDate>Mon, 22 Jun 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-2/</guid><description>如何在 Jenkins Pipeline 中将 Shell 返回的字符串处理为字符数组，以便在后续步骤中进行处理和使用。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-2/featured.jpg"/></item><item><title>忽略 Jenkins Shell 步骤中的故障</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-1/</link><pubDate>Sun, 21 Jun 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-1/</guid><description>如何在 Jenkins 中使用 &lt;code&gt;set +e&lt;/code&gt; 和 &lt;code&gt;set -e&lt;/code&gt; 来控制 Shell 脚本的执行行为，以便在出现错误时不终止整个构建流程。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-tips-1/featured.jpg"/></item><item><title>这也能用Jenkins？快速实现一个定期批量登录远程虚拟机并支持添加新的主机名称的Job</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/vm-status-check-via-jenkins/</link><pubDate>Sat, 13 Jun 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/vm-status-check-via-jenkins/</guid><description>本文介绍了如何使用 Jenkins 实现定期批量登录远程虚拟机，并支持用户添加新的主机名称，提供了完整的实现代码和步骤。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/vm-status-check-via-jenkins/featured.jpg"/></item><item><title>解决 Jenkins Artifactory Plugin 仅在 AIX 上传制品到 https 协议的 Artifactory 失败的问题</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/java-net-socketexception-on-aix/</link><pubDate>Wed, 03 Jun 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/java-net-socketexception-on-aix/</guid><description>本文介绍了在 AIX 上使用 Jenkins Artifactory 插件上传制品到 https 协议的 Artifactory 失败的问题及其解决方法，包括设置环境变量和调整 Java 系统属性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/java-net-socketexception-on-aix/featured.jpg"/></item><item><title>从 “会写程序的干不过会写PPT的” —— 聊程序员写作</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/programmers-read-and-write/</link><pubDate>Sat, 30 May 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/programmers-read-and-write/</guid><description>本文探讨了程序员写作的重要性，强调了写作和表达能力在职业发展中的作用，并分享了个人在写作方面的经验和体会。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/programmers-read-and-write/featured.jpg"/></item><item><title>如何确保在提交 Jenkins Pipeline 前没有语法错误</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-pipeline-linter-connector/</link><pubDate>Sat, 23 May 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-pipeline-linter-connector/</guid><description>本文介绍了两种方法来确保在提交 Jenkins Pipeline 前没有语法错误：使用 REST API 进行语法校验和使用 VSCode 插件进行语法检查。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-pipeline-linter-connector/featured.jpg"/></item><item><title>使用 JMeter 进行性能测试</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jmeter-performance-testing/</link><pubDate>Sat, 09 May 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jmeter-performance-testing/</guid><description>介绍如何使用 JMeter 进行性能测试，包括录制脚本、在 GUI 和非 GUI 模式下运行测试，以及在 Jenkins 中实现自动化测试。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jmeter-performance-testing/featured.jpg"/></item><item><title>如何将 Bitbucket 仓库同步到 GitHub</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/sync-from-bitbucket-to-github/</link><pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/sync-from-bitbucket-to-github/</guid><description>介绍如何通过 Jenkins 将 Bitbucket 仓库的 master 分支同步到 GitHub。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/sync-from-bitbucket-to-github/featured.jpg"/></item><item><title>Jenkins 与 Bitbucket Webhooks 的配置和使用</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/bitbucket-webhooks/</link><pubDate>Tue, 28 Apr 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/bitbucket-webhooks/</guid><description>本文介绍如何在 Jenkins 中配置 Bitbucket Webhooks，以便在创建 Pull Request 时自动触发 Jenkins 构建。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/bitbucket-webhooks/featured.jpg"/></item><item><title>三种方法解决 Jenkins 声明式流水线 Exception Method code too large !</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-troubleshooting/</link><pubDate>Mon, 20 Apr 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-troubleshooting/</guid><description>本文介绍了三种方法来解决 Jenkins 声明式流水线中出现的 &amp;ldquo;Method code too large&amp;rdquo; 异常，包括将步骤放到管道外的方法、从声明式迁移到脚本式管道以及使用 Shared Libraries。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/jenkins-troubleshooting/featured.jpg"/></item><item><title>一款免费的 C/C++ 静态代码分析工具 Cppcheck 与 Jenkins 集成</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/cppcheck/</link><pubDate>Sun, 16 Feb 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/cppcheck/</guid><description>本文介绍了 Cppcheck 的安装、使用以及与 Jenkins 的集成方法，旨在提升 C/C++ 代码质量和静态分析能力。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/cppcheck/featured.jpg"/></item><item><title>HP-UX 安装工具以及一些使用总结</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/hpxu-tips/</link><pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/hpxu-tips/</guid><description>本文介绍了在 HP-UX 系统上安装 Java 8、gzip 和 gunzip 的方法，以及如何解决 HP-UX 上使用 bash 时遇到的库依赖问题。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/hpxu-tips/featured.jpg"/></item><item><title>最有用的 Linux 命令行技巧</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/linux-tips/</link><pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/linux-tips/</guid><description>本文介绍了一些最有用的 Linux 命令行技巧，以提高开发和运维的效率。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/linux-tips/featured.jpg"/></item><item><title>通过 Jenkins 定期自动给老板提供 Git 仓库的多维度代码分析报告</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/git-stats-jenkins/</link><pubDate>Tue, 21 Jan 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/git-stats-jenkins/</guid><description>本文介绍了如何使用 Jenkins 定期自动生成 Git 仓库的多维度代码分析报告，包括手动执行和定时执行的实现方式，帮助开发者和团队更好地了解代码质量和贡献情况。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/git-stats-jenkins/featured.jpg"/></item><item><title>AIX 上安装工具以及一些使用总结</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/aix-tips/</link><pubDate>Thu, 09 Jan 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/aix-tips/</guid><description>记录在使用 AIX 时所遇到的问题和解决办法，以备以后遇到同样问题不要再因为这些再浪费时间，希望也能帮助到你。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/aix-tips/featured.jpg"/></item><item><title>Solaris 安装工具以及一些使用总结</title><link>https://shenxianpeng.dev/zh-cn/posts/2020/solaris-tips/</link><pubDate>Tue, 07 Jan 2020 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2020/solaris-tips/</guid><description>本文记录了在使用 Solaris 时遇到的问题和解决办法，包括安装工具、配置网络、安装软件包等，帮助用户更高效地使用 Solaris 系统。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2020/solaris-tips/featured.jpg"/></item><item><title>Jenkins Warnings Next Generation 插件</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-warnings-next-generation-plugin/</link><pubDate>Sat, 28 Dec 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-warnings-next-generation-plugin/</guid><description>本文介绍了 Jenkins Warnings Next Generation 插件的功能和配置方法，包括如何收集编译器警告和静态分析工具报告的问题，并可视化结果。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-warnings-next-generation-plugin/featured.jpg"/></item><item><title>Git 历史统计信息生成器</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/git-stats/</link><pubDate>Tue, 17 Dec 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/git-stats/</guid><description>GitStats，一个用 Python 编写的 Git 历史统计信息生成工具，能够生成详细的代码提交统计报告，帮助开发者分析项目活跃度和贡献者情况。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/git-stats/featured.jpg"/></item><item><title>Black Duck 与 Jenkins 集成</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/blackduck-interate-with-jenkins/</link><pubDate>Sun, 08 Dec 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/blackduck-interate-with-jenkins/</guid><description>本文介绍如何将 Black Duck 与 Jenkins 集成，实现对代码仓库的自动化安全扫描和漏洞检测。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/blackduck-interate-with-jenkins/featured.jpg"/></item><item><title>Docker 常用命令</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/docker-commands/</link><pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/docker-commands/</guid><description>一个 Docker 常用命令小纸条，记录一些常用的 Docker 命令和操作，方便日常使用和参考。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/docker-commands/featured.jpg"/></item><item><title>Docker 版本概述</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/overview-of-docker-editions/</link><pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/overview-of-docker-editions/</guid><description>概述 Docker 的不同版本，包括社区版、企业版和企业级解决方案，适用于不同规模和需求的用户。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/overview-of-docker-editions/featured.jpg"/></item><item><title>定制一个 Docker 版 Jenkins 镜像</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/install-docker-jenkins/</link><pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/install-docker-jenkins/</guid><description>如何定制一个 Docker 版 Jenkins 镜像，并将其备份到 Artifactory，便于在需要时快速恢复 Jenkins 环境。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/install-docker-jenkins/featured.jpg"/></item><item><title>Artifactory 与 Jenkins 集成</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/artifactory-integrate-with-jenkins/</link><pubDate>Sun, 17 Nov 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/artifactory-integrate-with-jenkins/</guid><description>本文介绍如何将 JFrog Artifactory 与 Jenkins 集成，实现持续集成和制品管理。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/artifactory-integrate-with-jenkins/featured.jpg"/></item><item><title>初识 JFrog Artifactory</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/artifactory-install-and-upgrade/</link><pubDate>Sun, 10 Nov 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/artifactory-install-and-upgrade/</guid><description>JFrog Artifactory 是一个强大的二进制存储库管理器，本文介绍其安装、升级和使用方法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/artifactory-install-and-upgrade/featured.jpg"/></item><item><title>如何设置 NFS 共享以及在不同的平台 Windows/Linux/Unix 进行挂载</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/nfs/</link><pubDate>Tue, 10 Sep 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/nfs/</guid><description>本文介绍了如何设置 NFS 共享以及在不同平台（Windows/Linux/Unix）上进行挂载的步骤和命令。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/nfs/featured.jpg"/></item><item><title>解决 Could not read from remote repository 问题</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/could-not-read-from-remote-repository/</link><pubDate>Sun, 01 Sep 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/could-not-read-from-remote-repository/</guid><description>解决在使用 Git 克隆代码时遇到的 &amp;ldquo;Could not read from remote repository&amp;rdquo; 错误，分析原因并提供解决方案。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/could-not-read-from-remote-repository/featured.jpg"/></item><item><title>Git 提交合并（Squash）</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/git-commit-squash/</link><pubDate>Tue, 20 Aug 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/git-commit-squash/</guid><description>介绍如何将多个 Git 提交合并为一个提交，包括本地和已推送到远程的情况，分别使用交互式 rebase 和在 Bitbucket 中的合并策略。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/git-commit-squash/featured.jpg"/></item><item><title>如何通过 Jenkins 进行资源的锁定和释放</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-lock-resource/</link><pubDate>Sat, 10 Aug 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-lock-resource/</guid><description>本文介绍了如何使用 Jenkins 的 Lockable Resources 插件来管理和锁定资源，确保在多任务环境中资源的独占性和安全性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-lock-resource/featured.jpg"/></item><item><title>Git 分支策略</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/git-branching-strategy/</link><pubDate>Sun, 28 Jul 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/git-branching-strategy/</guid><description>介绍大型项目的 Git 分支策略，包括 master、develop、release 和 hotfix 分支的作用和使用方法，帮助团队更好地管理代码和版本发布。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/git-branching-strategy/featured.jpg"/></item><item><title>通过 Jenkins 来提交修改的代码 git push by Jenkins</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/git-push-by-jenkins/</link><pubDate>Mon, 22 Jul 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/git-push-by-jenkins/</guid><description>如何通过 Jenkins Pipeline 脚本来提交修改的代码到 Git 仓库，包括克隆仓库、修改代码和推送更改等步骤。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/git-push-by-jenkins/featured.jpg"/></item><item><title>在 Jenkins pipeline 中执行 sudo 的时候不需要输入密码</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/execute-sudo-without-password/</link><pubDate>Tue, 16 Jul 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/execute-sudo-without-password/</guid><description>本文介绍了如何在 Jenkins Pipeline 中执行 sudo 命令而无需输入密码，提供了具体的实现方法和示例代码。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/execute-sudo-without-password/featured.jpg"/></item><item><title>Git 管理</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/git-management/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/git-management/</guid><description>本文介绍了 Git 的常见管理操作，包括分支管理、提交规范、代码审查等，帮助开发者更好地使用 Git 进行版本控制。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/git-management/featured.jpg"/></item><item><title>Hexo 添加 Disqus 留言功能</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/hexo-add-disqus/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/hexo-add-disqus/</guid><description>在 Hexo 博客中集成 Disqus 评论系统，允许读者留言和互动。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/hexo-add-disqus/featured.jpg"/></item><item><title>Jenkinsfile example - 实现交互、clone 多个仓库以及 git push</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/jenkinsfile-example/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/jenkinsfile-example/</guid><description>这个 Jenkinsfile 示例展示了如何在 Jenkins Pipeline 中实现交互式输入、克隆多个 Git 仓库，并在构建完成后将代码推送到远程仓库。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/jenkinsfile-example/featured.jpg"/></item><item><title>C/C++ 代码覆盖率工具</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/code-coverage-tools/</link><pubDate>Tue, 21 May 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/code-coverage-tools/</guid><description>代码覆盖率衡量自动化测试覆盖的代码行、语句或代码块的比例，是评估 QA 质量的重要指标。本文列出了常见的 C/C++ 代码覆盖率工具及其特性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/code-coverage-tools/featured.jpg"/></item><item><title>代码覆盖率工具 Squish Coco 使用示例</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/squishcoco/</link><pubDate>Tue, 21 May 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/squishcoco/</guid><description>介绍代码覆盖率工具 Squish Coco，并展示在 Visual Studio C++ 项目中如何安装、配置、执行和查看覆盖率结果。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/squishcoco/featured.jpg"/></item><item><title>GitSCM clone code don't display branch</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/gitscm-clone-code-don-t-display-branch/</link><pubDate>Tue, 14 May 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/gitscm-clone-code-don-t-display-branch/</guid><description>如何在 Jenkins 中使用 GitSCM插件克隆代码时，确保正确显示分支信息，避免出现 HEAD detached 状态的问题。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/gitscm-clone-code-don-t-display-branch/featured.jpg"/></item><item><title>通过参数化上传文件到 FTP 服务器</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/upload-to-ftp-parameterization-by-bat/</link><pubDate>Mon, 13 May 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/upload-to-ftp-parameterization-by-bat/</guid><description>本文介绍了如何使用 Windows Batch 脚本通过参数化的方式上传文件到 FTP 服务器，避免在脚本中硬编码 FTP 凭据。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/upload-to-ftp-parameterization-by-bat/featured.jpg"/></item><item><title>Jenkins Linux Agent 配置</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-linux-agent/</link><pubDate>Sun, 12 May 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-linux-agent/</guid><description>本文提供了 Jenkins Linux Agent 的逐步配置指南，包括 Java 运行时的准备、节点创建以及常见问题的排查方法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-linux-agent/featured.jpg"/></item><item><title>Jenkins Windows Agent 配置</title><link>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-windows-agent/</link><pubDate>Sun, 12 May 2019 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-windows-agent/</guid><description>本文提供 Jenkins Windows Agent 的详细配置步骤，包括 Java 运行时准备、节点创建以及常见问题的排查方法。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2019/jenkins-windows-agent/featured.jpg"/></item><item><title>如何做好功能测试</title><link>https://shenxianpeng.dev/zh-cn/posts/2018/how-to-do-functional-testing/</link><pubDate>Tue, 07 Aug 2018 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2018/how-to-do-functional-testing/</guid><description>介绍功能测试的基本流程、用例设计、项目控制、上线回归等方面的建议，帮助测试人员提升功能测试的质量和效率。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2018/how-to-do-functional-testing/featured.jpg"/></item><item><title>做了9年测试，我为何转开发？</title><link>https://shenxianpeng.dev/zh-cn/posts/2018/why-i-move-to-development/</link><pubDate>Sat, 21 Jul 2018 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2018/why-i-move-to-development/</guid><description>本文记录了我从测试转为开发的经历和感悟，分享了在陪产假期间的学习和工作安排，包括阅读书籍、参与开源项目、体育锻炼等，强调了如何在照顾家庭的同时保持学习和成长。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2018/why-i-move-to-development/featured.jpg"/></item><item><title>Error: Permission denied (publickey)</title><link>https://shenxianpeng.dev/zh-cn/posts/2018/permission-denied-publickey/</link><pubDate>Sun, 06 May 2018 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2018/permission-denied-publickey/</guid><description>本文介绍了如何在配置多个 SSH Git Key 时解决 &amp;ldquo;Permission denied (publickey)&amp;rdquo; 错误，确保 GitHub 和 Bitbucket 的 SSH 连接正常工作。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2018/permission-denied-publickey/featured.jpg"/></item><item><title>我眼中的高级测试工程师</title><link>https://shenxianpeng.dev/zh-cn/posts/2018/senior-test-engineer/</link><pubDate>Sun, 06 May 2018 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2018/senior-test-engineer/</guid><description>本文介绍了高级测试工程师所需的技能和经验，包括测试理论、业务能力、工具使用、代码能力等方面，帮助读者了解如何成为一名优秀的高级测试工程师。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2018/senior-test-engineer/featured.jpg"/></item><item><title>DevOps 实践</title><link>https://shenxianpeng.dev/zh-cn/posts/2018/devops-practice/</link><pubDate>Sat, 14 Apr 2018 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2018/devops-practice/</guid><description>本文介绍了 DevOps 实践的核心概念、目标和实施方法，强调了持续集成、持续交付和自动化的重要性。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2018/devops-practice/featured.jpg"/></item><item><title>Jenkinsfile 配置</title><link>https://shenxianpeng.dev/zh-cn/posts/2018/jenkinsfile-configure/</link><pubDate>Sat, 14 Apr 2018 00:00:00 +0000</pubDate><author>xianpeng.shen@gmail.com (沈显鹏)</author><guid>https://shenxianpeng.dev/zh-cn/posts/2018/jenkinsfile-configure/</guid><description>本文介绍了如何使用 Jenkinsfile 配置 Jenkins Pipeline，包括构建、测试和发布阶段的示例，以及如何处理邮件通知。</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shenxianpeng.dev/zh-cn/posts/2018/jenkinsfile-configure/featured.jpg"/></item></channel></rss>