<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>工程实践 on Jeanphilo Blog</title><link>https://shio-chan-dev.github.io/jeanblog/zh/categories/%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5/</link><description>Recent content in 工程实践 on Jeanphilo Blog</description><generator>Hugo -- 0.159.2</generator><language>zh-cn</language><lastBuildDate>Thu, 05 Mar 2026 16:54:59 +0800</lastBuildDate><atom:link href="https://shio-chan-dev.github.io/jeanblog/zh/categories/%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5/index.xml" rel="self" type="application/rss+xml"/><item><title>先等价迁移，再行为改造：AI 协作时代最稳的工程工作流</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/equivalence-migration-then-behavior-refactor-workflow/</link><pubDate>Thu, 05 Mar 2026 16:54:59 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/equivalence-migration-then-behavior-refactor-workflow/</guid><description>一套面向 AI 协作开发的双阶段工作流：先做行为等价迁移，再做行为改造，配合任务记账与 worktree 隔离，减少返工与回归。</description></item><item><title>先定不变量与契约，再写实现：Evans/Fowler 实战法</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/invariants-contract-before-implementation/</link><pubDate>Wed, 11 Feb 2026 07:53:37 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/invariants-contract-before-implementation/</guid><description>解释“先定不变量/契约，再写实现”到底在工程上多了什么，并给出可执行的落地模板。</description></item><item><title>AI 辅助编程不黑盒：责任主线工作流实战</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/ai-assisted-coding-responsibility-workflow/</link><pubDate>Sat, 07 Feb 2026 13:16:00 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/ai-assisted-coding-responsibility-workflow/</guid><description>用一套可执行的 commit 与分支流程，把 AI 变成加速器而不是黑盒来源。</description></item><item><title>Java 栈的内存泄漏：为什么 pop 之后仍然占用</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/java-stack-memory-leak/</link><pubDate>Sat, 24 Jan 2026 15:29:20 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/java-stack-memory-leak/</guid><description>通过经典栈实现示例解释 Java 的内存泄漏与修复方式。</description></item><item><title>如何重构嵌套错误码：从深层 if 到清晰流程</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/refactor-nested-error-codes/</link><pubDate>Sat, 24 Jan 2026 15:29:20 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/refactor-nested-error-codes/</guid><description>用早返回与小函数拆分重构深层嵌套错误处理。</description></item><item><title>本周我学到了什么：工程师的复盘模板</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-did-you-learn-this-week/</link><pubDate>Sat, 24 Jan 2026 13:35:15 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-did-you-learn-this-week/</guid><description>给出每周学习复盘的结构化模板，帮助持续成长。</description></item><item><title>最近读过的 5 本书：工程师视角的清单</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/five-books-recently/</link><pubDate>Sat, 24 Jan 2026 13:35:15 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/five-books-recently/</guid><description>给出工程师常读的 5 本书清单，并说明适用场景。</description></item><item><title>软件开发是艺术、技艺还是工程？</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/software-dev-art-craft-engineering/</link><pubDate>Sat, 24 Jan 2026 13:27:25 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/software-dev-art-craft-engineering/</guid><description>从工程管理视角讨论软件开发的本质与平衡。</description></item><item><title>什么样的代码可读性强：结构、命名与认知负担</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/readable-code-principles/</link><pubDate>Sat, 24 Jan 2026 13:27:25 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/readable-code-principles/</guid><description>从结构、命名与认知负担角度定义“可读性强的代码”。</description></item><item><title>重复造轮子、NIH 与狗粮文化：何时有价值</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/reinventing-wheel-nih-dogfooding/</link><pubDate>Sat, 24 Jan 2026 13:27:25 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/reinventing-wheel-nih-dogfooding/</guid><description>讨论重复造轮子、非我发明症与狗粮文化的取舍。</description></item><item><title>为什么要自动化：节省时间与降低错误</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/automate-your-workflow/</link><pubDate>Sat, 24 Jan 2026 12:53:37 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/automate-your-workflow/</guid><description>说明自动化对工程效率与质量的价值，并给出实践建议。</description></item><item><title>Greenfield vs Brownfield：新项目还是老系统？</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/greenfield-vs-brownfield/</link><pubDate>Sat, 24 Jan 2026 12:47:45 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/greenfield-vs-brownfield/</guid><description>对比新建项目与遗留系统的利弊，并给出选择与落地策略。</description></item><item><title>如何处理遗留代码：安全改动与渐进式重构</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/legacy-code-management/</link><pubDate>Sat, 24 Jan 2026 12:47:45 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/legacy-code-management/</guid><description>给出处理遗留代码的工程策略，包括测试保护网与渐进式改造。</description></item><item><title>为什么软件维护困难：复杂性、耦合与人</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/why-software-maintenance-hard/</link><pubDate>Sat, 24 Jan 2026 12:47:45 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/why-software-maintenance-hard/</guid><description>分析软件维护困难的原因，并给出缓解策略。</description></item><item><title>下一步该自动化什么：识别高收益自动化机会</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-to-automate-next/</link><pubDate>Sat, 24 Jan 2026 12:45:38 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-to-automate-next/</guid><description>给出识别自动化机会的工程方法，包括频率、成本与风险维度。</description></item><item><title>依赖地狱（Dependency Hell）怎么解：版本、隔离与治理</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/dependency-hell/</link><pubDate>Sat, 24 Jan 2026 12:45:38 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/dependency-hell/</guid><description>从版本冲突与传递依赖出发，给出依赖地狱的治理方法与工具策略。</description></item><item><title>测试如何影响软件设计：可测试性驱动的结构选择</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/testing-in-design/</link><pubDate>Sat, 24 Jan 2026 12:42:52 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/testing-in-design/</guid><description>从可测试性出发解释测试如何影响设计决策，并给出可落地的结构建议。</description></item><item><title>代码中的注释有用吗：什么时候写、写什么</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/comments-in-code/</link><pubDate>Sat, 24 Jan 2026 12:42:52 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/comments-in-code/</guid><description>解释注释的价值与风险，并给出可执行的注释策略。</description></item><item><title>为什么 TDD 先写测试：反馈、设计与信心</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/tdd-tests-first/</link><pubDate>Sat, 24 Jan 2026 12:42:52 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/tdd-tests-first/</guid><description>解释 TDD 先写测试的原因，以及它如何改善设计与反馈速度。</description></item><item><title>重构何时有用：时机、信号与风险控制</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/refactoring-when/</link><pubDate>Sat, 24 Jan 2026 12:42:52 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/refactoring-when/</guid><description>解释重构适用场景、触发信号与风险控制方法。</description></item><item><title>什么是好代码：可读、可测、可演进</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-is-good-code/</link><pubDate>Sat, 24 Jan 2026 12:33:47 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-is-good-code/</guid><description>从可读性、正确性与演进成本出发定义好代码，并给出可执行的判断清单。</description></item><item><title>什么是专业的开发者：责任、质量与协作</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-is-professional-developer/</link><pubDate>Sat, 24 Jan 2026 12:33:47 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/what-is-professional-developer/</guid><description>从责任心、质量意识与协作能力出发，定义专业开发者的标准与实践。</description></item><item><title>为什么大公司创新更慢：结构、风险与激励</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/why-large-companies-slow-innovation/</link><pubDate>Sat, 24 Jan 2026 12:33:47 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/why-large-companies-slow-innovation/</guid><description>分析大公司创新变慢的结构性原因，并给出工程层面的改进策略。</description></item><item><title>为什么写软件很难：不确定性、复杂性与人</title><link>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/why-software-is-hard/</link><pubDate>Sat, 24 Jan 2026 11:06:00 +0800</pubDate><guid>https://shio-chan-dev.github.io/jeanblog/zh/dev/engineering/why-software-is-hard/</guid><description>从需求变化、复杂性与协作成本出发解释软件开发的困难，并给出可落地的缓解策略。</description></item></channel></rss>