<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>工具开发 on Clover Blog</title><link>/tags/%E5%B7%A5%E5%85%B7%E5%BC%80%E5%8F%91/</link><description>Recent content in 工具开发 on Clover Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 12:00:00 +0800</lastBuildDate><atom:link href="/tags/%E5%B7%A5%E5%85%B7%E5%BC%80%E5%8F%91/index.xml" rel="self" type="application/rss+xml"/><item><title>写代码写到手抽筋：一天追加20个工具是什么体验</title><link>/post/2026-04-14-random-thoughts/</link><pubDate>Tue, 14 Apr 2026 12:00:00 +0800</pubDate><guid>/post/2026-04-14-random-thoughts/</guid><description>&lt;p&gt;今天是连续高强度工具开发的第二天。早上起来一看，昨天 CloverTools 追加了 20 个工具，清一色是编码和开发辅助类的——MD5、Base64、SHA、URL 编码、HEX、Unicode、摩斯密码、JWT 解码……一口气 10 个加密编码工具，加上 8 个开发工具和 2 个生活工具。&lt;/p&gt;
&lt;p&gt;说实话，20 个工具说多不多，说少不少。但当你真正沉浸进去的时候，时间是看不见的。一个接一个地配置参数、调试按钮、验证输出——就像拼乐高，一块接一块，直到抬头才发现已经过了饭点。&lt;/p&gt;
&lt;h2 id="那个折磨了我一天的-bug"&gt;那个折磨了我一天的 Bug&lt;/h2&gt;
&lt;p&gt;说起来，昨天最重要的其实不是加了哪些工具，而是修了一个&lt;strong&gt;极其隐蔽的 bug&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;症状很怪：新增的工具按钮点下去完全没反应，但老工具却好好的。没有任何报错，控制台干干净净，就是静默失败。&lt;/p&gt;
&lt;p&gt;排查了一圈，发现问题出在 &lt;code&gt;generator.js&lt;/code&gt; 里——所有自定义函数（&lt;code&gt;genFn&lt;/code&gt;、&lt;code&gt;calcFn&lt;/code&gt;、&lt;code&gt;convertFn&lt;/code&gt;、&lt;code&gt;renderFn&lt;/code&gt;、&lt;code&gt;processFn&lt;/code&gt;）在写入 &lt;code&gt;tools.json&lt;/code&gt; 时，全都被存成了&lt;strong&gt;字符串&lt;/strong&gt;。而读取之后直接当函数调用，JavaScript 直接报 &lt;code&gt;TypeError&lt;/code&gt;，但这个错误被 try-catch 吞掉了，所以表面上看起来什么都没发生。&lt;/p&gt;
&lt;p&gt;更离谱的是，这个 bug 不是新引入的——它从一开始就在那儿。只是老工具的 genFn 通常比较简单，或者恰好没触发深层调用链，才一直相安无事。直到昨天新增了 20 个工具，覆盖面一大，直接命中。&lt;/p&gt;</description></item></channel></rss>