时间线 GitLab 内置变量实战(二):流水线的“编排信号”——触发源、父子流水线、Runner 与环境 2026-06-21 GitLab 内置变量实战(一):流水线的“身份识别”——分支、Tag、提交与 MR 2026-06-20 MCP 与 CLI:Agent 调用 Tool 的两条路径,谁在侵蚀谁? 2026-06-13 Agent 的“行为准则”——Skill 的本质与常见误解 2026-06-07 Agent 的“手脚”——Tool 的能力边界与进化史 2026-06-06 Hermes Memory Provider 与 Mem0:被忽视的记忆抽象层,打通 Agent 间知识共享 2026-05-24 Hermes Profile——多个 Agent 分身,一套工具搞定 2026-05-23 LiteLLM——统一 LLM 网关:从 API Key 乱象到企业级 AI 基础设施 2026-05-16 本地大模型实践(六):Hermes Agent——有记忆、会学习的自进化 AI Agent 2026-05-09 本地大模型实践(五):OpenClaw——给大模型装上“数字手脚”的本地 Agent 网关 2026-05-02 本地大模型实践(四):OpenHands——AI 全栈软件工程师的理想与现实 2026-04-25 本地大模型实践(三):Cline——VS Code 里的开源编程 Agent 2026-04-18 本地大模型实践(二):OpenCode——终端里的开源 AI 编程助手 2026-04-11 本地大模型实践(一):在内网搭建你的 AI 基础设施 2026-03-07 监控漫谈(五):链路追踪——当一次请求穿越了 20 个微服务,你该怎么查它经历了什么 2026-02-08 监控漫谈(四):告警设计——为什么你的告警让人“麻木” 2026-02-07 监控漫谈(三):指标监控——数字不会说谎,但你的 dashboard 会 2026-02-01 监控漫谈(二):日志采集——你排错时的第一手资料,却经常在最需要的时候找不到 2026-01-31 监控漫谈(一):监控不是什么高大上的东西——它就是系统的“体检报告” 2026-01-25 Vibe Coding(四):如何让 AI 真正理解你的项目 2026-01-24 Vibe Coding(三):AI 生成的代码,先怀疑再信任 2026-01-17 Vibe Coding(二):把 AI 当成一个新来的实习生 2026-01-10 Vibe Coding(一):你不是在写代码,你是在描述需求 2026-01-03 DevOps 方法论漫谈(六):有品位的开发做 DevOps——不只管“能不能跑”,还管“好不好看” 2025-12-21 DevOps 方法论漫谈(五):DevOps 工程师要会什么——一个非主流的能力模型 2025-12-20 DevOps 方法论漫谈(四):工具链思维——你的武器库里该有什么 2025-12-14 DevOps 方法论漫谈(三):哪个专业适合做 DevOps——专业背景如何塑造你的起点 2025-12-13 DevOps 方法论漫谈(二):DevOps 回环——端到端的软件交付全流程 2025-12-07 DevOps 方法论漫谈(一):文化先行——为什么先谈文化 2025-12-06 理解 AI(五):嵌入——AI 怎么理解语义 2025-11-29 理解 AI(四):Temperature 与 Top-P——AI 的创造力旋钮 2025-11-23 理解 AI(三):上下文窗口——AI 的短期记忆是怎么回事 2025-11-22 理解 AI(二):Token 是什么?——AI 的识字方式与分词逻辑 2025-11-16 理解 AI(一):AI 到底在学什么?——从概率到语言模型 2025-11-15 Jira 效率提升:常用快捷键指南 2025-11-15 Jira 查询利器:JQL 与过滤器 2025-11-09 Jira Scrum 敏捷看板实战 2025-11-08 Jira Issue 管理与工作流设计 2025-11-02 需求管理利器:Jira 概述与核心概念 2025-11-01 AssetBundle解包——使用AssetStudio提取Unity资源 2025-07-11 无法访问GitHub非科学上网解决办法 2025-06-26 学习Vue,成为web全栈开发者! 2025-05-10 文明与强大 2025-01-07 发布工程(七):选型对比与制品清理策略 2024-08-17 发布工程(六):JFrog Artifactory——企业级制品管理 2024-08-10 发布工程(五):Harbor——容器镜像仓库 2024-08-03 发布工程(四):Nexus——Java 私服与通用制品库 2024-07-27 发布工程(三):Changelog 与 Release Notes——让每个版本有迹可循 2024-07-20 发布工程(二):版本号规范——SemVer 与 CalVer 2024-07-13 发布工程(一):什么是发布——制品全生命周期的起点 2024-07-06 云原生部署(十):健康检查与零停机部署 2024-06-30 云原生部署(九):K8s 包管理——Helm 从入门到实战 2024-06-29 云原生部署(八):K8s 存储——Volume、PV、PVC 与 StorageClass 2024-06-23 云原生部署(七):K8s 网络模型——CNI 与 Service 发现 2024-06-22 云原生部署(六):K8s 核心概念——Pod、Deployment、Service、ConfigMap 与 Secret 2024-06-16 云原生部署(五):Kubernetes 架构核心——Master、Node 与 etcd 2024-06-15 云原生部署(四):容器镜像仓库——Docker Hub 与 Harbor 私服 2024-06-09 云原生部署(三):Dockerfile 指令详解与多阶段构建 2024-06-08 云原生部署(二):Docker 基础——镜像、容器与分层原理 2024-06-02 云原生部署(一):从物理机到容器的演进之路 2024-06-01 游戏构建:Unreal 构建(四):Shader 编译噩梦——玩家为什么每次更新都要等二十分钟? 2024-05-11 游戏构建:Unreal 构建(三):Pak 文件——Unreal 的资源包裹方式 2024-05-04 游戏构建:Unreal 构建(二):Cook 是什么?为什么每次构建都要"做菜"? 2024-04-20 游戏构建:Unreal 构建(一):.uproject 是怎么变成一个 .exe 的? 2024-04-13 游戏构建:Unity 构建(五):IL2CPP 与跨平台——一次开发,多端发布是怎么实现的? 2024-04-06 游戏构建:Unity 构建(四):Addressables——一个改动大得多的"正确答案" 2024-03-30 游戏构建:Unity 构建(三):Scriptable Build Pipeline——用最小改动,换最大缓存提升 2024-03-23 游戏构建:Unity 构建(二):AssetBundle 两代接口——从手写打包到自动依赖,经历了什么? 2024-03-16 游戏构建:Unity 构建(一):点下 Build 按钮后,Unity 替你做了多少事? 2024-03-09 游戏构建漫谈(零):从 Java 到 Unity/Unreal,我重新理解了「构建」这个词 2024-01-13 反馈体系漫谈(五):通知策略设计——什么时候通知谁 2023-09-09 反馈体系漫谈(四):即时通讯通知——Webhook 连接一切 2023-09-02 反馈体系漫谈(三):短信通知——紧急事态的终极兜底 2023-08-26 反馈体系漫谈(二):邮件通知——最古老也最可靠的通道 2023-08-19 反馈体系漫谈(一):从“看见问题”到“触发行动” 2023-08-12 构建工具(十一):构建系统全景图——从 make 到 Bazel 该怎么选 2023-08-05 构建工具(十):Bazel 入门——Google 级别的构建系统 2023-07-30 构建工具(九):Ninja——构建界的闪电侠 2023-07-29 构建工具(八):交叉编译——在你的 x86 电脑上编译 ARM 程序 2023-07-23 构建工具(七):多目录项目的 CMake 组织——像搭积木一样管理代码 2023-07-22 构建工具(六):现代 CMake 之道——target_* 与接口传播 2023-07-16 构建工具(五):CMake 入门——为什么你的项目需要一个 CMakeLists.txt 2023-07-15 构建工具(四):pkg-config——解决依赖地狱的那把钥匙 2023-07-09 构建工具(三):静态库 vs 动态库——.a、.so、.dylib 到底有什么不同 2023-07-08 构建工具(二):GCC 编译四阶段——你的 .c 文件到底经历了什么 2023-07-02 构建工具(一):从手敲 gcc 到 Makefile——构建工具的第一次进化 2023-07-01 Git 分支模型(四):Trunk-Based Development 2023-06-18 Git 分支模型(三):GitLab Flow 2023-06-17 Git 分支模型(二):GitHub Flow 2023-06-11 Git 分支模型(一):Git Flow 2023-06-10 Gradle增量构建和构建缓存优化 2023-06-03 Gradle自定义插件——三种方式对比 2023-05-28 Gradle Wrapper——统一团队的构建环境 2023-05-27 Gradle多模块项目构建 2023-05-21 Gradle Task详解——自定义任务和任务依赖 2023-05-20 Maven仓库配置——settings.xml详解 2023-05-14 Maven Profile——不同环境使用不同配置 2023-05-13 Maven常用插件介绍——compiler、surefire、jar、assembly 2023-05-07 Maven依赖管理——scope、传递依赖和排除 2023-05-06 Maven生命周期和常用命令速查 2023-04-30 Ant自定义任务——用Groovy/JavaScript编写内联脚本 2023-04-29 Ant执行外部命令和脚本 2023-04-23 Ant条件判断——if/unless和condition的使用 2023-04-22 Ant常用文件操作——复制、移动、删除、重命名 2023-04-16 Ant中加载和使用属性文件 2023-04-15 SVN 回退与撤销——出错了怎么办 2023-04-09 SVN 冲突解决详解——告别合并恐惧症 2023-04-08 SVN 分支与合并——主干开发的正确姿势 2023-04-02 Git Bisect——用二分法快速定位问题提交 2023-04-01 Git Rebase——让你的提交历史更优雅 2023-03-26 Git Stash——暂存工作区的临时修改 2023-03-25 2行代码就能实现HTML自动化转图片! 2023-03-18 区分gradle三个不同层次的依赖 2023-03-18 Invalid cookie header Invalid 'expires' attribute 2023-03-12 GitHub Actions 实现自动部署——从 push 到上线 2023-03-11 不打开编辑器配置UE4 Android NDK SDK和JDK 2023-03-11 找不到sun.misc.BASE64Encoder类报错原因及修复方法 2023-03-09 Windows10 WSL2安装Linux发行版,报错0x800701bc 2023-03-06 Visual Studio安装时,共享路径不能修改 2023-03-04 GitHub Actions 常见问题集锦(一) 2023-03-04 gradle构建涉及的几个文件介绍 2023-02-26 kotlin、kotlin-plugin、gradle、kotlin-gradle-plugin关系 2023-02-25 Gradle依赖使用最新版本 2023-02-19 GitHub Actions——GitHub 原生的自动化工作流 2023-02-18 .Net运行时分类 2023-02-18 Python执行Javascript代码 2023-02-12 Python微信机器人 2023-02-11 Windows bat如何打印当前目录(类似Linux下的pwd) 2023-02-09 Gitlab CI 变量与环境——让流水线"活"起来 2023-02-04 Gitlab CI 常见问题集锦(一) 2023-01-21 Git上传空文件夹的方法 2023-01-16 Unity国际版UnityHub直接下载链接 2023-01-14 统计Ant目标(Target)执行时间 2023-01-09 Gitlab CI——Gitlab 自带的 CI/CD 利器 2023-01-07 反编译python编译好的pyc文件为py文件 2023-01-04 Gradle禁用daemon 2022-12-14 Visual Studio SVN插件 2022-11-18 Windows通过注册表添加开机启动项 2022-10-02 GeForce Experience要登录才能使用,又总是注册不成功,绕过/禁用登录方法 2022-09-19 wget下载文件报错“无法验证xxx的由xxxx颁发的证书:颁发的证书已经过期”的解决方法 2022-08-13 D-pad是什么? 2022-07-03 临时和永久关闭selinux 2022-06-10 临时和永久关闭firewalld 2022-06-10 Windows查看系统启动时间 2022-05-10 源码编译虚幻引擎(UE4/UE5) 2022-04-14 Unity安装UI Toolkit 2022-04-07 Unity中使用资源的典型工作流程 2022-04-07 Mac上快速分离出视频中的音频文件 2022-03-06 Unity设置3D音效 2022-03-03 Windows文件共享开启匿名访问 2022-02-26 Windows 10启用长路径支持 2022-02-24 Node.js是编程语言吗? 2022-02-20 Unity打包AB,保持Hash值不变 2022-02-07 BuildAssetBundleOption.DisableWriteTypeTree选项有什么作用,要不要开启? 2022-01-07 在Visual Studio中调试Unity的代码 2022-01-06 SVN要忽略多个文件/文件夹,怎么配置svn:ignore 2022-01-04 SVN获取当前本地仓库的版本号 2022-01-04 SVN有些目录下的文件想保持不变,怎么忽略? 2022-01-03 FTP的passive参数的作用 2021-12-28 Visual Stuido中打开Unity工程脚本,方法无法跳转解决方法 2021-12-27 nginx配置http自动跳转https 2021-12-25 Windows批处理Batch怎么复制文件?Windows下类似Linux cp的命令是什么 2021-12-24 log4j2远程代码执行漏洞CVE-2021-44228修复方法 2021-12-23 iOS打包签名报unable to build chain to self-signed root for signer,CodeSign failed with a nonzero exit code解决办法 2021-12-22 armv6、armv7、armv7s、armv8、arm64的区别 2021-12-22 Android App Bundle(AAB)和APK的区别 2021-12-21 Windows使用批处理命令关闭进程 2021-12-20 国内免费的前端CSS、JS CDN加速网站 2021-05-09 Windows administrator用户没有管理员权限的解决方法 2021-04-24 Unity Android打包报错:Android SDK does not include your Target SDK of 28原因及解决方法 2021-04-22 grep命令如何取或? 2021-03-11 使用Windows批处理Batch脚本获取SVN变更文件列表 2021-02-07 从git工作目录中删除未跟踪文件 2021-01-17 域名公安备案信息样式优化 2020-11-07 CentOS 7安装PHP 2020-10-24 CentOS 7安装Nginx 2020-10-24 CentOS 7安装MariaDB 2020-10-24 Jenkins常见问题集锦(八) 2020-05-20 Jenkinsclient系列教程之查看基本信息(二) 2020-05-17 Jenkinsclient系列教程之介绍与安装(一) 2020-05-17 通过Jenkins启动的进程构建后总是退出?可使用keepRunning步骤优雅解决 2020-05-04 自动化革命与DevOps 2020-04-20 Jenkinsclient 1.0发布,功能强大的开源跨平台的Jenkins命令行客户端,采用国产木兰开源许可证 2020-04-17 如何将Python包托管到PyPI 2020-04-12 Jenkins插件更新中心地址修改工具,一键修改为国内镜像地址 2020-04-06 如何使用Jenkins声明式流水线 2020-03-31 Mac下Docker Desktop的Kubernetes一直处于starting状态的解决办法 2020-03-07 Groovy语法系列教程之集合(六)【完结】 2020-02-29 Groovy语法系列教程之布尔(五) 2020-02-28 Groovy语法系列教程之数字(四) 2020-02-22 Groovy语法系列教程之字符串(三) 2020-02-21 Groovy语法系列教程之关键字和标识符(二) 2020-02-16 一文搞清rake、Rakefile、gem、gemspec、bundler、bundle、Gemfile的关系 2020-02-15 Groovy语法系列教程之注释(一) 2020-02-15 开源可扩展图标集Octicons 2020-02-08 博客增加了新页面“参考书” 2020-02-07 由一个小问题说一说解决问题的思维 2020-02-04 新年新形象,网站换了新主题! 2020-02-03 JavaScript 中文字符转义问题 2020-02-03 Jenkins 体系结构 2020-01-26 我获得了Certified Jenkins Engineer认证及证书 2020-01-18 天真的矛与盾 2019-11-16 为什么人们会说“美丽的谎言”? 2019-11-15 罗永浩,下德不失德,是以无德的典型 2019-11-06 如何在macOS上搭建本地Jekyll环境 2019-11-02 使用Git和Markdown写博客,体验很好! 2019-10-28 中国人价值观的一体多元 2019-10-27 GitHub Pages 常见问题(一)- GitHub Pages添加categories和tages后访问报404 Not Found 2019-10-27 怎样使用GitHub Pages创建个人博客 2019-10-26 Jenkins常见问题集锦(七) 2019-08-14 Jenkins——the thing which auto everything 2019-08-06 Jenkins常见问题集锦(四) 2019-08-05 Jenkins常见问题集锦(三) 2019-08-03 Jenkins常见问题集锦(二) 2019-08-02 Jenkins常见问题集锦(一) 2019-08-01 哪吒传——观《哪吒之魔童降世》有感 2019-07-29 编程,是一件很文学的事儿! 2019-07-18 人生本无意义 2019-01-21 Java 代码覆盖率(二):JaCoCo 实战,从跑起来到看懂报告 2018-09-08 Java 代码覆盖率(一):从 Emma 到 JaCoCo,覆盖率到底是什么 2018-09-02 Java 单元测试(三):用 Mockito 隔离外部依赖 2018-09-01 Java 单元测试(二):JUnit 5 实战上手 2018-08-26 Java 单元测试(一):什么是单元测试,为什么要写 2018-08-25 Java 静态代码检查(六):用 SonarQube 搭建持续代码质量平台 2018-08-19 Java 静态代码检查(五):SpotBugs——FindBugs 的继任者 2018-08-18 Java 静态代码检查(四):FindBugs——字节码级别的 Bug 猎手 2018-08-12 Java 静态代码检查(三):用 PMD 发现不良实践 2018-08-11 Java 静态代码检查(二):用 Checkstyle 规范代码风格 2018-08-05 Java 静态代码检查(一):什么是静态检查 2018-08-04 天降大任于斯人,必先不从其所愿 2018-08-02 心与物 2018-07-17 中秋见月思 2015-09-27