博客 · 第 6 页
关于工程、设计与一些随手记录。
技术债的利息长什么样
技术债不是「代码写得丑」,而是「以后每次改动都要多付的那部分」。判断标准是可测量的:改一行要动几个文件、跑多久测试、有几处需要同时改。
时区与夏令时:存 UTC,存本地时间一定会出事
夏令时会让某一天有 23 或 25 小时,且切换时刻的本地时间可能不存在或出现两次。只存 UTC 时间戳,展示时再转,是唯一稳的模型。
把 AI 的思考过程做成一棵能翻的树
给搜索过程做可视化,难点不在画树,而在数据要是真的、面板不能把棋盘顶来顶去、以及它得按需加载不拖累不点它的人。
Unicode 规范化:看起来一样的两个字符串为什么不相等
é 可以是一个码点,也可以是 e 加组合重音。比较、存储、索引之前先统一成 NFC,否则同形异码会让查重和登录全部失效。
URL 编码的三个陷阱:空格、加号与双重编码
查询串里的 + 是空格,路径里的 + 是加号;同一个字符在路径与查询里的编码规则不同;编码两次会得到看似正常却永远匹配不上的值。
写中国象棋规则,四处最容易错的地方
蹩马腿、塞象眼、炮打隔子、将帅照面。我把走法生成拆成几何层与合法性层,前者只管兵种怎么走,后者统一兜住送将,四处坑各配了断言。
