<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development on Youqing Han - DevOps Engineer</title>
    <link>https://hanyouqing.com/categories/development/</link>
    <description>Recent content in Development on Youqing Han - DevOps Engineer</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <managingEditor>ihanyouqing#gmail.com (#->@) (Youqing Han)</managingEditor>
    <webMaster>ihanyouqing#gmail.com (#->@) (Youqing Han)</webMaster>
    <lastBuildDate>Mon, 14 Sep 2026 11:00:00 +0800</lastBuildDate>
    <atom:link href="https://hanyouqing.com/categories/development/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Vibe Coding 上线之后：一次 150+ commit 的复盘</title>
      <link>https://hanyouqing.com/blog/2026/09/when-vibe-coding-hits-production/</link>
      <pubDate>Mon, 14 Sep 2026 11:00:00 +0800</pubDate><author>ihanyouqing#gmail.com (#->@) (Youqing Han)</author>
      <guid>https://hanyouqing.com/blog/2026/09/when-vibe-coding-hits-production/</guid>
      <description>&lt;p&gt;演示里 vibe coding 很爽：自然语言描述需求，几秒就出一版能跑的代码。真正麻烦的是上线以后。&lt;/p&gt;&#xA;&lt;p&gt;我参与的一个多服务集成功能：用 AI 辅助开发，功能第一周就能演示，但修到生产可用断断续续花了一个多月，累计 150+ commits，其中大约六成是 fix——回归、边界、字段名对不上、并发坑。能力不是问题，缺的是工作方式。&lt;/p&gt;&#xA;&lt;p&gt;一句话概括我后来信的原则：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;AI 写出来的代码，质量上限 ≈ 你给它的规格有多完整。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;下面是按那次复盘整理出来的经验和教训。&lt;/p&gt;&#xA;&lt;h2 id=&#34;六类常见翻车&#34;&gt;六类常见翻车&lt;/h2&gt;&#xA;&lt;p&gt;那次 post-mortem 里，问题大致落在这六类，后面复杂功能里也反复撞见：&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-接口契约漂移&#34;&gt;1. 接口契约漂移&lt;/h3&gt;&#xA;&lt;p&gt;同一概念拆到多个模块、多个 AI session 里实现时，命名各自为政。数据模型里是 &lt;code&gt;user_identifier&lt;/code&gt;，API 变成 &lt;code&gt;user_id&lt;/code&gt;，前端又写成 &lt;code&gt;userId&lt;/code&gt;。AI 没有跨会话记忆，没人盯就会散。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;表现：&lt;/strong&gt; 联调时才发现字段对不上；前端空白或显示错数据。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-外部系统的边角料&#34;&gt;2. 外部系统的边角料&lt;/h3&gt;&#xA;&lt;p&gt;训练数据里有通用文档，没有你们线上那版 SDK 的怪脾气。空字符串被拒、锁名最长 64、非法 ID 抛的是 validation 而不是 not-found——文档往往写得轻描淡写。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;表现：&lt;/strong&gt; 本地 happy path 全绿，生产里冒出没处理过的异常。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-内部基础设施的隐性约定&#34;&gt;3. 内部基础设施的隐性约定&lt;/h3&gt;&#xA;&lt;p&gt;审批流在非生产环境会跳步、异步任务要等事务提交后再发、分布式锁 key 有长度限制……这些东西通常不在 AI 能读到的文档里。它会按「通用正确」来写。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;表现：&lt;/strong&gt; 单测/隔离测都过，进 staging 端到端就怪。&lt;/p&gt;&#xA;&lt;h3 id=&#34;4-并发语义想当然&#34;&gt;4. 并发语义想当然&lt;/h3&gt;&#xA;&lt;p&gt;看起来像有保护的 ORM 调用，常常没有。&lt;code&gt;update()&lt;/code&gt; 按状态过滤再改计数，可能返回「匹配 1 行」——匹配了，但未必改了。行锁挡不了两个并发 insert 同时通过 uniqueness 检查。&lt;/p&gt;</description>
    </item>
    <item>
      <title>DevHelper: The Ultimate Native macOS Developer Toolkit</title>
      <link>https://hanyouqing.com/blog/2025/09/devhelper-the-ultimate-native-macos-developer-toolkit/</link>
      <pubDate>Wed, 03 Sep 2025 00:00:00 +0000</pubDate><author>ihanyouqing#gmail.com (#->@) (Youqing Han)</author>
      <guid>https://hanyouqing.com/blog/2025/09/devhelper-the-ultimate-native-macos-developer-toolkit/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/hengfeiyang/devhelper&#34;&gt;DevHelper&lt;/a&gt; appears to be a comprehensive native macOS application designed specifically for software developers, DevOps engineers, and technical professionals who need efficient access to essential development tools in a unified, high-performance environment.&lt;/p&gt;&#xA;&lt;h3 id=&#34;target-audience&#34;&gt;Target Audience&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Software Developers&lt;/strong&gt;: Frontend, backend, and full-stack developers&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DevOps Engineers&lt;/strong&gt;: Infrastructure and automation specialists&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data Engineers&lt;/strong&gt;: Working with various data formats and APIs&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security Developers&lt;/strong&gt;: Cryptographic and security testing needs&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;QA Engineers&lt;/strong&gt;: API testing and data validation requirements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;use-cases&#34;&gt;Use Cases&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Daily Development&lt;/strong&gt;: Quick access to common utilities during coding sessions&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;API Development&lt;/strong&gt;: Testing and debugging HTTP endpoints&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data Processing&lt;/strong&gt;: Formatting and validating JSON, SQL, and other data formats&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security Testing&lt;/strong&gt;: JWT validation, cryptographic operations, and hash generation&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code Review&lt;/strong&gt;: Formatting and comparing code snippets&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt;: IP queries, timestamp conversions, and regex testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;core-functionality&#34;&gt;Core Functionality&lt;/h3&gt;&#xA;&lt;p&gt;DevHelper consolidates 16 essential development tools into a single, native macOS application, eliminating the need to switch between multiple web-based tools or browser tabs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Complete macOS Development Environment Setup for SRE/DevOps Engineers</title>
      <link>https://hanyouqing.com/blog/2025/09/macos-devops-environment-setup/</link>
      <pubDate>Mon, 01 Sep 2025 00:00:00 +0000</pubDate><author>ihanyouqing#gmail.com (#->@) (Youqing Han)</author>
      <guid>https://hanyouqing.com/blog/2025/09/macos-devops-environment-setup/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;This guide is a synthesis of my personal configuration journey and best practices for SRE/DevOps engineers. It details how to set up a robust, reproducible macOS development environment, covering essential tools, configuration management, and automation strategies. The goal is to make environment setup painless, portable, and scalable—whether you’re starting over, joining a new team, or enabling seamless collaboration.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;Before we begin, ensure you have:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;macOS 12.0 (Monterey) or later&lt;/li&gt;&#xA;&lt;li&gt;Administrator access to your machine&lt;/li&gt;&#xA;&lt;li&gt;Basic familiarity with command line operations&lt;/li&gt;&#xA;&lt;li&gt;A GitHub account for configuration storage&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;core-development-tools&#34;&gt;Core Development Tools&lt;/h2&gt;&#xA;&lt;p&gt;Install required develop tools &amp;amp; Set update/upgrade&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Version Management Tools: A Comprehensive Guide</title>
      <link>https://hanyouqing.com/blog/2025/08/python-version-management-tools/</link>
      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><author>ihanyouqing#gmail.com (#->@) (Youqing Han)</author>
      <guid>https://hanyouqing.com/blog/2025/08/python-version-management-tools/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Python&amp;rsquo;s ecosystem offers a diverse range of tools for managing versions, dependencies, and virtual environments. Each tool serves specific use cases and comes with its own advantages and trade-offs. In this comprehensive guide, we&amp;rsquo;ll explore the most popular Python version management tools and their pros and cons.&lt;/p&gt;&#xA;&lt;h2 id=&#34;core-package-management-tools&#34;&gt;Core Package Management Tools&lt;/h2&gt;&#xA;&lt;h3 id=&#34;pip&#34;&gt;pip&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;pip&lt;/strong&gt; is Python&amp;rsquo;s default package installer and the foundation of Python package management. It&amp;rsquo;s the standard tool for installing packages from the Python Package Index (PyPI) and other package indexes.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
