<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[首席技术总监的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/forcj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; forcj]]></copyright><item><title><![CDATA[代码评审怎么做才不伤人：从挑错到共同兜底]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/165427848</link><guid>https://blog.youkuaiyun.com/forcj/article/details/165427848</guid><author>forcj</author><pubDate>Tue, 15 Sep 2026 08:26:37 +0800</pubDate><description><![CDATA[很多团队的 Code Review，要么变成橡皮图章，要么变成公开处刑。 好的评审不是炫耀谁更聪明，而是：在合并前，用较低成本把缺陷、知识与风格债拦在门外。

读完本文，你可以带走：

评审流程的最小闭环

该看什么、不该纠缠什么

评论怎么写才像协作而不是审判

一张团队可直接采用的清单]]></description><category></category></item><item><title><![CDATA[数据库索引到底在加速什么：从全表扫描到精准查找]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/165282402</link><guid>https://blog.youkuaiyun.com/forcj/article/details/165282402</guid><author>forcj</author><pubDate>Mon, 14 Sep 2026 09:04:00 +0800</pubDate><description><![CDATA[慢 SQL 一来，第一反应常常是「加个索引」。 加对了，起飞；加错了，写入变慢、空间上涨，查询却依然全表扫描。

读完本文，你可以带走：

索引本质在避免什么

全表扫描 vs 索引查找的直观对比

什么字段值得建、什么情况建了也没用

一张上线前自检清单]]></description><category></category></item><item><title><![CDATA[源码解读：Go context——取消与超时是怎么层层传下去的]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/165115112</link><guid>https://blog.youkuaiyun.com/forcj/article/details/165115112</guid><author>forcj</author><pubDate>Sat, 12 Sep 2026 13:45:22 +0800</pubDate><description><![CDATA[Go 里几乎无处不在的 `context.Context`，很多人会用：`WithTimeout`、`WithCancel`、`ctx.Done()`。  
码书阁这一篇不逐行贴标准库全文，而是抓住设计精髓：

> 为什么用一棵「可取消的树」，而不是全局旗标？

读完你可以带走：

- context 的四类派生方式
- 取消信号如何向下传播
- 使用上的三条铁律与两个常见坑]]></description><category></category></item><item><title><![CDATA[一文讲清楚 HTTPS：加密的不是网站，是通道]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/165114804</link><guid>https://blog.youkuaiyun.com/forcj/article/details/165114804</guid><author>forcj</author><pubDate>Sat, 12 Sep 2026 13:40:28 +0800</pubDate><description><![CDATA[浏览器地址栏那把小锁，到底锁住了什么？ 很多人以为「网站被加密了」——更准确的说法是：浏览器与服务器之间的通信通道被保护了。

读完本文，你可以带走：

HTTP 与 HTTPS 的本质差别

TLS 在解决哪三类问题

证书大致在信任链里扮演什么角色

开发者日常最该注意的几件事]]></description><category></category></item><item><title><![CDATA[一文讲清楚 Prompt 工程：别再只靠「你是一个专家」]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164812389</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164812389</guid><author>forcj</author><pubDate>Thu, 10 Sep 2026 10:25:07 +0800</pubDate><description><![CDATA[很多人用大模型的第一招是：在开头写「你是一个资深专家」。 有时有用，更多时候只是安慰剂——真正拉开效果差距的，是 结构化约束、示例、输出格式与评测闭环。

读完本文，你可以带走：

Prompt 的分层结构（系统 / 示例 / 用户 / 格式）

五条比「扮演专家」更管用的写法

什么时候该上 RAG / Agent，而不是继续堆 Prompt]]></description><category></category></item><item><title><![CDATA[码书阁精读：DDIA 开篇三问——可靠、可扩展、可维护]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164607542</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164607542</guid><author>forcj</author><pubDate>Tue, 08 Sep 2026 13:28:30 +0800</pubDate><description><![CDATA[《Designing Data-Intensive Applications》（数据密集型应用系统设计）开篇并不急着讲 Kafka 或共识算法，而是先抛出三个问题：

> 系统可靠吗？扩展得动吗？以后还改得动吗？

这三问像一把尺子。码书阁这一篇，不复述全书，只把开篇三问拆成**架构评审能直接用的检查清单**。

读完你可以带走：

- Reliability / Scalability / Maintainability 的工程含义
- 评审会上怎么问，才不像空话
- 一张可打印的架构三问表]]></description><category></category></item><item><title><![CDATA[一文讲清楚 gRPC 与 REST：该怎么选]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457942</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457942</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 14:08:40 +0800</pubDate><description><![CDATA[做服务间通信时，团队最容易吵起来的话题之一是：REST 还是 gRPC？  
两边往往都对，但都可能在错误场景里坚持了正确的技术。

读完本文，你可以带走：

- 一句话区分两者
- 一张够用的差异对照表
- 对外 / 对内怎么分层使用
- 可直接拿到评审会的选型清单]]></description><category></category></item><item><title><![CDATA[零信任安全入门：为什么“内网安全”已经不够用]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457871</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457871</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 14:06:55 +0800</pubDate><description><![CDATA[企业安全曾像一座城堡：外边高墙（防火墙、VPN），里边默认信任。  
今天员工远程办公、业务跑在多云与 SaaS、API 暴露面扩大——「内网」边界越来越模糊。

读完本文，你可以带走：

- 零信任的四条原则（不是某个盒子的广告词）
- 旧边界模型坏在哪里
- 身份 / 设备 / 应用 / 数据四层落点
- 研发可执行的防御清单与分阶段路线]]></description><category></category></item><item><title><![CDATA[技术负责人的第一年：从写代码到做决策]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457830</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457830</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 14:04:05 +0800</pubDate><description><![CDATA[优秀工程师升上 Tech Lead 后，常有一种诡异失落：代码变少、会议变多、靠自己能搞定的事现在要靠一群人，反而更焦虑。

这不是你变弱了，是考核函数变了。

读完本文，你可以带走：

- 身份迁移：你的「产品」变成了什么
- 第一年的三条主线
- 还要不要写代码、怎么带人、怎么自检]]></description><category></category></item><item><title><![CDATA[特征工程入门：模型效果差，往往不是算法的锅]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457784</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457784</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 14:02:08 +0800</pubDate><description><![CDATA[机器学习项目里有一个极其常见的循环：换模型、调参到深夜、线上依旧平平。  
最后复盘才发现：不是算法不够炫，是**特征没有把业务信号翻译成模型能读懂的语言**。

读完本文，你可以带走：

- 特征工程到底在干什么
- 一条防泄漏的务实流水线
- 三类在业务数据里特别值钱的特征
- 一个可执行的一周计划]]></description><category></category></item><item><title><![CDATA[可观测性三件套：日志、指标与链路追踪]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457719</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457719</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 13:59:52 +0800</pubDate><description><![CDATA[单机时代，「出问题看日志」往往够用。  
到了微服务与云原生：一次请求穿过多个服务与队列，故障间歇出现，每个团队都说「我这边是绿的」。

这时需要的不是更多 `println`，而是 **可观测性**：  
仅通过外部信号，推断内部状态并定位问题。

读完本文，你可以带走：

- Logs / Metrics / Traces 各自回答什么
- 「发现 → 定位 → 证实」的作战顺序
- 中小团队的最小可行方案]]></description><category></category></item><item><title><![CDATA[接口设计的五条铁律：从能用到好用]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457674</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457674</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 13:57:42 +0800</pubDate><description><![CDATA[第一版接口往往都能跑通 Demo。  
真正拉开差距的，是半年后：客户端要不要全体发版？字段还敢不敢删？新同事能不能只看文档就联调完？

读完本文，你可以带走：

- 五条可直接上评审会的铁律
- 兼容、错误模型、幂等与安全的最低标准
- 一张发接口前的 8 项检查清单]]></description><category></category></item><item><title><![CDATA[一文讲清楚虚拟内存：程序如何“假装”有无限内存]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457622</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457622</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 13:54:44 +0800</pubDate><description><![CDATA[你在代码里 `new` / `malloc` / 创建一个大数组时，拿的到底是什么内存？  
如果答案只是「物理内存条」，很多现象解释不通。

读完本文，你可以带走：

- 虚拟内存一句话结论
- 分页、缺页、写时复制怎么串起来
- 如何解释段错误、RSS/VSZ、fork 很快
- 五条和日常开发相关的实践建议]]></description><category></category></item><item><title><![CDATA[进程与线程：程序员必须分清的两件事]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457537</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457537</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 13:52:46 +0800</pubDate><description><![CDATA[面试里最高频、也最容易「会背不会用」的一对概念，大概就是进程和线程。 很多人能背「进程是资源分配单位，线程是调度单位」，线上却照样把线程池开到 5000。

读完本文，你可以带走：

用工厂比喻建立直觉

一张够用的对比表

并发 / 并行 / 异步怎么分

按 CPU / I/O / 隔离场景怎么选]]></description><category></category></item><item><title><![CDATA[Context Window 与 KV Cache：模型“记性”的底层账本]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457511</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457511</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 13:49:43 +0800</pubDate><description><![CDATA[对话聊着聊着，AI 开始「忘事」——五分钟前说用 PostgreSQL，转头又建议 MySQL。  
用户侧说「上下文不够了」；工程侧更准确的说法是：你撞上了 **Context Window** 的边界，以及背后 **KV Cache** 的成本账本。

读完本文，你可以带走：

- 上下文窗口里到底装了什么
- 为什么窗口不能无限做大
- KV Cache 如何让多轮对话不至于每次从头算
- 五条可落地的「记性管理」策略]]></description><category></category></item><item><title><![CDATA[一文讲清楚 RAG：为什么大模型需要“外挂知识库”]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/164457446</link><guid>https://blog.youkuaiyun.com/forcj/article/details/164457446</guid><author>forcj</author><pubDate>Mon, 07 Sep 2026 13:46:43 +0800</pubDate><description><![CDATA[大模型很会说话，却经常不知道你公司的事，还会一本正经地胡说。  
RAG（检索增强生成）几乎成了落地标配：给模型一本可更新的“开卷参考书”。

读完本文，你可以带走：

- RAG 各角色怎么分工（用「开卷考试」理解）
- 一条标准流水线，以及最容易翻车的两步
- 何时上 RAG、何时别硬上，以及最小落地清单]]></description><category></category></item><item><title><![CDATA[ 深入理解 Tokens：AI 时代的“数字货币”与“认知边界”]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/162512816</link><guid>https://blog.youkuaiyun.com/forcj/article/details/162512816</guid><author>forcj</author><pubDate>Thu, 02 Jul 2026 11:02:20 +0800</pubDate><description><![CDATA[在人工智能（尤其是大语言模型）飞速普及的今天，我们频繁地听到一个词——Tokens。无论是使用 Cursor 编写代码、与 ChatGPT 对话，还是调用 API 开发应用，Tokens 都是绕不开的核心概念。
它不仅是 AI 服务计费的“数字货币”，更是决定模型“记忆力”与“理解力”的认知边界。本文将从原理、换算、成本到实战优化，为你彻底讲透 Tokens。]]></description><category></category></item><item><title><![CDATA[C++23新特性在CLion中的实战体验：从配置到高能语法落地]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/162473518</link><guid>https://blog.youkuaiyun.com/forcj/article/details/162473518</guid><author>forcj</author><pubDate>Wed, 01 Jul 2026 09:06:17 +0800</pubDate><description><![CDATA[本文介绍了C++23的核心特性及其在CLion 2024.1中的实践应用。C++23通过优化开发体验，引入了std::println简化输出、Deducing this减少重载、std::expected改进错误处理，以及import std提升模块化编译效率。CLion提供智能提示、静态分析和调试支持，帮助开发者高效使用这些特性。同时，文章建议调整CLion的内存配置以优化性能。C++23与CLion的结合，显著提升了现代C++的开发体验。]]></description><category></category></item><item><title><![CDATA[Ollama、llama.cpp 与 LM Studio 本地部署性能实测对比]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/162221978</link><guid>https://blog.youkuaiyun.com/forcj/article/details/162221978</guid><author>forcj</author><pubDate>Tue, 23 Jun 2026 08:22:00 +0800</pubDate><description><![CDATA[在相同硬件（RTX4090）和模型（Qwen2.5-72BQ4_K_M）下，测试llama.cpp、LMStudio和Ollama的性能表现。llama.cpp显存占用最低（~21.5GB）、推理速度最快（108 tokens/s），适合开发者；LMStudio显存适中（~23.4GB），图形界面易用，性能接近原生；Ollama显存开销最大（~27.2GB），API优先设计适合后端集成，但性能较差。]]></description><category></category></item><item><title><![CDATA[解构 AI Agent：从 LLM 到自主智能体的进化之路]]></title><link>https://blog.youkuaiyun.com/forcj/article/details/162189685</link><guid>https://blog.youkuaiyun.com/forcj/article/details/162189685</guid><author>forcj</author><pubDate>Mon, 22 Jun 2026 09:24:57 +0800</pubDate><description><![CDATA[在过去的一年里，大语言模型（LLM）以其惊人的文本生成能力震撼了世界。然而，在实际的工程落地中，我们发现单纯的 LLM 更像是一个“博学的顾问”——它知识渊博，但却是被动的。你问一句，它答一句；对话结束，它的任务也就终止了。它无法主动去修改服务器配置、无法持续监控数据流，更无法独立完成一个复杂的跨系统任务。]]></description><category></category></item></channel></rss>