DEVTOOLBOX / GUIDES 决策指南 一类问题该怎么判断:选型树、不可逆点、出错时的定位顺序。每篇都指向可以直接动手的工具。 数据格式 JSON 决策指南:校验、格式化、结构查询与格式转换 大多数 JSON 事故不是解析器出错,而是在错误的那一层修数据。这篇按四类问题给出判据:什么时候只看 position,什么时候必须补 schema 校验,缩进与键序该由谁定,以及数组改 NDJSON、JSON 转 XML 之后到底有哪些信息再也拿不回来。 11 分钟阅读 编码 字符集、UTF-8、Base64 与 URL 转义:编码选择树 编码问题之所以难,是因为字符集、字符编码和传输编码被混成了一层。这篇按三层拆开,给出可验证的判据:什么情况下必须用 UTF-8,Base64 付出多少体积代价,URL 里加号与 %20 何时互换,乱码出现时先看哪一层。 10 分钟阅读 哈希与加密 哈希、HMAC 与加密怎么选:先定原语再定算法的判断顺序 这篇不逐个介绍算法,而是给一条可以照着走的判断顺序:先确定要回答的问题,是内容是否一致、是否由持密钥者生成、口令如何变成密钥,还是如何隐藏内容,再在那一类里选算法与参数。七节各给判据、代价与不可逆点,覆盖摘要比较的位宽、HMAC 的构造、口令存储参数与 nonce 重用。 10 分钟阅读 文本处理 文本处理决策指南:编码、归一化、大小写与计数的 7 个判断点 同一段文本,两个工具给出不同结论,多数时候不是工具坏了,而是编码、归一化形式、行尾、locale 与计数口径没对齐。这篇按七个决定点给判据:什么情况必须转 NFC,比较键该用折叠还是小写,长度按码点还是按字素簇算,以及哪几步做完就再也回不去。 10 分钟阅读 时间与日期 时间与日期歧义清单:Unix 时间戳、时区、ISO 8601 与周数怎么选 时间类缺陷大多不是算错,而是没分清瞬间、偏移、时区与墙上时间这四样东西。这篇按七类歧义逐条给判据:什么时候只能存 UTC,什么时候必须连时区标识一起存,ISO 8601 与 RFC 3339 各自留了什么没定,夏令时与加月运算的不可逆点在哪里,以及能把大半问题一次性压掉的存储与显示规则。 10 分钟阅读 文件与文档 PDF 处理流程决策指南:页面操作、内容操作与不可逆点的先后 PDF 的坑集中在两处:把看起来一样的操作当成同一件事(裁剪与脱敏、压平与压缩、写页标签与盖章页码),以及在错误的顺序上动手。这篇给出每一步的判据和代价,说明哪些操作永久丢信息、哪些默认值会害人,并给出一条从定源到签名的操作顺序。 10 分钟阅读 网络 网络排查决策指南:IP 与 CIDR 算术、IPv6、DNS、端口与 WHOIS 的判断顺序 网络问题难在同一个症状对应四层完全不同的原因,而四层的答案来源、保鲜期与可信度都不同。这篇不教你点按钮,而是给判断:先按「答案由谁发布」定层,再用可以手算的地址算术、记录类型与 TTL 语义、TCP 与 UDP 探测结果的含义、RDAP 记录的时效,逐层收敛。每一节都写清什么时候选哪种查法、代价是什么、哪一步丢信息不可逆。 10 分钟阅读 生成器 生成器决策指南:UUID 版本怎么选、随机源够不够、口令与二维码纠错等级的代价 生成类工具把「产出」做得太便宜,于是判断被跳过了。这篇不介绍按钮,只回答几个必须自己拍板的问题:v4 与 v7 各自在哪里失败、Math.random 与 CSPRNG 的实际差距、哪些口令规则反而在削弱口令、二维码每升一级纠错要付多少容量、测试数据该可复现还是像真的,以及「唯一」这句话背后依赖的四个假设。 10 分钟阅读 发布与产物 发布产物怎么发:版本号范围、文件权限、校验和与压缩格式的判断 这篇按发布链条给判断顺序:版本号是兼容承诺而不是计数,权限是文件系统元数据所以会随打包方式丢失,摘要只证明字节一致、来源必须靠签名,压缩格式按下游平台选而不是按习惯。七节各给判据、代价与不可逆点,落到一次发布可以照做的动作顺序。 10 分钟阅读