<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>码上札记</title><link>https://x.yeelz.com/</link><description>野生程序员的技术笔记与成长记录</description><item><title>霜降：气肃而凝，露结为霜</title><link>https://x.yeelz.com/life/43.html</link><description>&lt;p&gt;今天霜降。二十四节气里的第十八个，也是秋天的最后一个节气。过了今天，冬天就算是真正在路上了。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023133513179273371344235.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;/p&gt;&lt;p&gt;古人说&amp;quot;气肃而凝，露结为霜&amp;quot;。清晨出门，草叶上一层薄薄的白，阳光一照亮晶晶的，空气里都是清冽的味道。这是一年里秋天最有仪式感的一个早晨。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023133519179273371971600.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;/p&gt;&lt;p&gt;霜降有三候：一候豺乃祭兽，二候草木黄落，三候蛰虫咸俯。叶子黄了落了，虫子也躲进洞里准备冬眠。天地都在做减法，人也该跟着收一收。&lt;/p&gt;&lt;p&gt;民间有个说法：霜降吃柿子，冬天不感冒。老祖宗的讲究未必全有科学道理，但霜降前后的柿子确实最甜——经过霜打的柿子，红得透亮，咬一口满嘴蜜。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023133525179273372538598.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;/p&gt;&lt;p&gt;一年走到这个节点，好像也该回头看看：春天发的芽、夏天流的汗，到秋天总算结了果。剩下的日子，添衣、早睡、吃点热乎的，把自己照顾好，等下一个春天。&lt;/p&gt;&lt;p&gt;天凉了，记得加件外套。&lt;/p&gt;</description><pubDate>Fri, 23 Oct 2026 08:00:00 +0800</pubDate></item><item><title>写代码三年，我踩过的那些坑</title><link>https://x.yeelz.com/notes/7.html</link><description>&lt;h3&gt;那些年踩过的坑&lt;/h3&gt;&lt;p&gt;写代码这几年，被各种问题按在地上摩擦过无数次。挑几个印象最深的写下来，也算给自己提个醒。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023125958179273159858106.jpg&quot; alt=&quot;深夜写代码&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;&lt;p&gt;第一个坑：本地好好的，上线就报错。多半是路径斜杠、环境变量、时区不一致这类环境差异。后来养成习惯——上线前先在测试环境完整跑一遍。&lt;/p&gt;&lt;p&gt;第二个坑：日志打的是天书。报错信息只写一句&quot;系统错误&quot;，出了问题根本查不到是哪行。现在凡是 catch，我都把请求参数和堆栈完整记下来。&lt;/p&gt;&lt;p&gt;第三个坑：过早优化。刚开始总想着写得&quot;优雅&quot;，结果绕了一大圈还不如直接 for 循环好读。先让代码跑对、再让它跑得快，最后才谈优雅。&lt;/p&gt;&lt;p&gt;坑踩多了就会发现，大部分 bug 不是技术问题，是习惯问题。慢慢来，比较快。&lt;/p&gt;</description><pubDate>Thu, 22 Oct 2026 21:30:00 +0800</pubDate></item><item><title>Code Review 到底在看什么？</title><link>https://x.yeelz.com/notes/27.html</link><description>&lt;h3&gt;Code Review 到底在看什么？&lt;/h3&gt;
&lt;p&gt;代码审查不是挑刺，而是保证质量、共享知识的重要环节。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023131344179273242451096.jpg&quot; alt=&quot;CodeReview&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;
&lt;p&gt;看这几点：逻辑对不对、边界情况考虑没、命名清不清楚、有没有明显的性能问题、测试覆盖了没。&lt;/p&gt;
&lt;p&gt;提意见时对事不对人，写代码的人也别把审查当否定。一来一回，整个团队的水平都在涨。&lt;/p&gt;</description><pubDate>Thu, 22 Oct 2026 18:20:00 +0800</pubDate></item><item><title>远程办公几年，我的几点体会</title><link>https://x.yeelz.com/notes/26.html</link><description>&lt;h3&gt;远程办公的几点体会&lt;/h3&gt;
&lt;p&gt;在家办公这几年，效率和体验都有，坑也不少。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023131338179273241857433.jpg&quot; alt=&quot;远程办公&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;
&lt;p&gt;好处是省下了通勤，时间整块，可以专注做事。坑在于边界容易模糊——工作和生活混在一起，反而更累。&lt;/p&gt;
&lt;p&gt;我的经验：固定一个专门的工位，到点上班到点下班，主动和同事多沟通，别让人感觉你&quot;消失了&quot;。&lt;/p&gt;</description><pubDate>Thu, 22 Oct 2026 08:45:00 +0800</pubDate></item><item><title>Git 常用命令速查：从入门到提交不慌</title><link>https://x.yeelz.com/tools/6.html</link><description>&lt;h3&gt;最常用的十条命令&lt;/h3&gt;&lt;p&gt;Git 命令有几百条，但日常开发 90% 的时间只用下面这些。背熟它们，提交代码就不会慌。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023125952179273159285443.jpg&quot; alt=&quot;Git 分支&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;git status               # 看当前改了啥
git add .                # 全部加入暂存
git commit -m &quot;说明&quot;      # 提交
git pull                 # 拉取远端最新
git push                 # 推到远端
git log --oneline        # 看提交历史
git checkout -b feat/xx  # 新建并切到分支
git merge feat/xx        # 合并分支
git reset --hard HEAD~1  # 回退最近一次提交&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;三个保命习惯&lt;/h3&gt;&lt;p&gt;第一，提交前一定 &lt;code&gt;git pull&lt;/code&gt;，别在本地改半天结果冲突一堆；第二，大改动拆成小提交，别一次改几十个文件；第三，重要分支别随便 &lt;code&gt;reset --hard&lt;/code&gt;，先用 &lt;code&gt;git stash&lt;/code&gt; 保命。&lt;/p&gt;</description><pubDate>Wed, 21 Oct 2026 22:15:00 +0800</pubDate></item><item><title>为什么我开始坚持写技术博客</title><link>https://x.yeelz.com/notes/25.html</link><description>&lt;h3&gt;为什么我开始写技术博客&lt;/h3&gt;
&lt;p&gt;写博客最初是为了记录，后来发现它带来的好处远超想象。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023131332179273241238954.jpg&quot; alt=&quot;写博客&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;
&lt;p&gt;第一，写一遍胜过读三遍——能讲清楚才是真懂；第二，过几个月回头看，自己解决过的问题一目了然；第三，偶尔被同行看到、交流两句，能认识不少人。&lt;/p&gt;
&lt;p&gt;不用写得多好，先开始写，比纠结排版和选题重要得多。&lt;/p&gt;</description><pubDate>Wed, 21 Oct 2026 09:30:00 +0800</pubDate></item><item><title>MySQL 索引为什么快？一次讲透 B+ 树</title><link>https://x.yeelz.com/database/5.html</link><description>&lt;h3&gt;索引为什么能快这么多？&lt;/h3&gt;&lt;p&gt;没有索引时，查一条数据要从头到尾扫全表，数据量大了就是灾难。加了合适的索引，MySQL 用 B+ 树把查找复杂度从 O(n) 降到 O(log n)。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023125944179273158454082.jpg&quot; alt=&quot;B+树索引&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;&lt;h3&gt;B+ 树是什么结构？&lt;/h3&gt;&lt;p&gt;想象一棵多层的多叉树：根节点和内部节点只存索引，真正的数据都存在最底层的叶子节点里，而且叶子之间用双向链表串起来。这样范围查询特别快：找到起点，沿着链表往后扫就行。&lt;/p&gt;&lt;h3&gt;几个实战要点&lt;/h3&gt;&lt;p&gt;第一，最左前缀原则：联合索引 &lt;code&gt;(a,b,c)&lt;/code&gt;，查 &lt;code&gt;a&lt;/code&gt;、&lt;code&gt;a,b&lt;/code&gt;、&lt;code&gt;a,b,c&lt;/code&gt; 才走索引；第二，不要在索引列上做函数运算，否则索引失效；第三，小表、区分度低的字段别建索引，写多读少的表也要谨慎。&lt;/p&gt;</description><pubDate>Tue, 20 Oct 2026 20:00:00 +0800</pubDate></item><item><title>新人最容易犯的 10 个编码错误</title><link>https://x.yeelz.com/notes/24.html</link><description>&lt;h3&gt;新手最容易犯的编码错误&lt;/h3&gt;
&lt;p&gt;刚入行那会儿，这些坑我一个没少踩。列出来给后来者提个醒。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023131325179273240591058.jpg&quot; alt=&quot;新手错误&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;
&lt;p&gt;第一，变量名随便起，过两周自己都看不懂；第二，不写注释，逻辑全靠脑补；第三，异常直接吞掉，&lt;code&gt;catch (e) {}&lt;/code&gt; 什么都不做；第四，密码写死在代码里。&lt;/p&gt;
&lt;p&gt;这些问题不难，但不改的话迟早翻车。代码是写给人看的，顺便能让机器跑就行。&lt;/p&gt;</description><pubDate>Mon, 19 Oct 2026 20:35:00 +0800</pubDate></item><item><title>治愈系日剧推荐：生活没那么糟</title><link>https://x.yeelz.com/life/42.html</link><description>&lt;p&gt;最近重温了一部很治愈的日剧，讲的是几个年轻人在小餐馆里的日常。没有大起大落，就是吃饭、散步、发呆，但看得人心里暖暖的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023132813179273329369987.jpg&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023132819179273329985977.jpg&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;
&lt;p&gt;好的治愈系作品不是让你哭，而是让你觉得：好好吃饭、好好睡觉、认真过每一天，本身就很了不起。&lt;/p&gt;
&lt;p&gt;累的时候就看一部吧，生活没那么糟。&lt;/p&gt;</description><pubDate>Sun, 18 Oct 2026 22:20:00 +0800</pubDate></item><item><title>RESTful API 设计入门：前后端分离时代的接口约定</title><link>https://x.yeelz.com/backend/4.html</link><description>&lt;h3&gt;什么是 RESTful？&lt;/h3&gt;&lt;p&gt;REST 不是标准，而是一套架构风格：用 URL 表示资源，用 HTTP 方法表示操作，用状态码表示结果。前后端分离之后，接口设计的好坏直接决定了协作效率。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://x.yeelz.com/zb_users/upload/2026/10/20261023125938179273157851675.jpg&quot; alt=&quot;RESTful API&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/p&gt;&lt;h3&gt;四条核心约定&lt;/h3&gt;&lt;p&gt;第一，URL 用名词复数，比如 &lt;code&gt;/api/users&lt;/code&gt;，不要写成 &lt;code&gt;/api/getUser&lt;/code&gt;；第二，用 HTTP 方法表达动作：GET 查询、POST 新增、PUT 更新、DELETE 删除；第三，返回统一 JSON 结构：&lt;/p&gt;&lt;pre&gt;&lt;code&gt;{
  &quot;code&quot;: 0,
  &quot;msg&quot;: &quot;ok&quot;,
  &quot;data&quot;: { &quot;id&quot;: 1, &quot;name&quot;: &quot;tom&quot; }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;第四，错误用合适的状态码：参数错 400、没权限 403、找不到 404、服务器错 500。&lt;/p&gt;&lt;h3&gt;一个常见误区&lt;/h3&gt;&lt;p&gt;不要把所有操作都塞进 POST。一个接口如果读的是数据，就老老实实 GET，缓存、日志、监控都会轻松很多。&lt;/p&gt;</description><pubDate>Sun, 18 Oct 2026 21:00:00 +0800</pubDate></item></channel></rss>