工具是编程的铠甲(下篇):从文件对比、全文搜索到数据库设计
上篇讲了远程连接、文件传输、本地搜索这三类工具(《工具是编程的铠甲(上篇):从远程连接、文件传输到本地秒搜》),这篇继续把剩下几款补完。
这篇主要是对比、搜索、标注、设计 这一类偏工程向的工具:Beyond Compare (文件/文件夹对比)、自己编写的全文搜索工具 (文档太多时的刚需)、JsonView (JSON 查看)、PxCook (UI 标注)、pdman (数据库设计),以及发布文章离不开的掘金/知乎图片上传工具。
有同学可能已经发现:我确实喜欢「自己造轮子」,但造的也都是刀刃上的工具。工具的目的是提高效率,适合自己的就是最好的。
一. 掘金/知乎图片上传工具
编写很多文档后,总有一些值得发布到掘金、知乎。如果截图比较多,就要一张一张地替换成外链。我前面二十多篇文章都是这样过来的,真是文章上传五分钟,图片上传半小时,确实很麻烦。
我的《用 Qoder 做掘金图片一键替换工具:从「你行不行」到真跑通了》正好解决了这个问题。具体怎么操作可以参照那篇,我也无法保证后面还能完全复刻------这就是 AI 编程的不确定性,为了这个功能,我至少试了多个工具,只有 Qoder 完成了。
我当时就生成了 exe 文件发到桌面。登录只要第一次登录后就可以了,打开后如下:

选择 md 文件,最好图片是放在 md 目录下面。代码我也没认真看,但 image/images 应该是没问题的。
上传全部,图片上传完成后如下图:

单击「保存为新文件」:


显示还是有点问题,好像说是防盗链,那就到掘金写文章里导入:


这次不知道为什么导入有一张失败,这种错误是偶尔的。但大部分是可以的,这就节省了大量时间。
知乎版本也是一样的:

补充说明:这个工具的用法和「前置阅读」里 Qoder 那篇文章是配套的,核心就是本地 md 用相对路径,上传后自动替换成图床外链再另存。偶尔有一两张失败,重新跑一次就行,不要被吓到。
二. 自己编写的全文搜索工具
上篇说了要记录文章,但文章太多,查询起来也不方便。Windows 的搜索慢,Everything 又只能搜文件名,没法搜内容。所以我就自己编写了一个全文搜索工具,类似百度,全文搜索。
Elasticsearch 那些代码比较老旧,我用起来不顺手,就干脆自己写。我编写过一系列文章,「私文简搜 DocSolo」就是相关的,你可以自己编写,也可以通过我开源的代码自己运行一下。
后面我改成过聊天方式,也写过文章,你也可以按文章自己编写。
这个工具非常有用。都说「好记性不如烂笔头」,但文章太多了,就是好笔头不如烂记性了------记了找不到等于没记。所以一定要有自己的全文搜索工具。
这是我以前写的搜索工具,登录以后才可以全文搜索:



我按文章编写的「私文简搜」界面更简洁,代码结构更合理:

大家可以按前面的文章自己编写一套。
补充说明:我写这个工具的目的不是推荐前面的文章,而是说这个工具非常有必要。特别是公司有一套这样的工具,一个人的知识就是全公司的知识,对公司的发展非常有利。
三. Beyond Compare:文件对比
前面我专门写过《基于 FreeMarker 的 SaaS 文档系统代码生成器设计与实现》,当时就说过一个核心痛点:生成器生成的代码,和我们根据业务修改后的代码,必然存在差异;另外,多人协作时,你和同事修改了同一个文件,也需要快速定位差异。这时候,文件比较工具就成了刚需,我常用的是 Beyond Compare。
它的核心优势是「全能且精准」:支持的文件类型种类多,会用不同颜色标注差异。特别是配合代码生成器时------比如数据库中增加了字段,代码又已编写,用文件比较工具就非常方便,只对比哪些已改变的部分,从而不影响代码、不会弄丢代码。
工具的使用非常简单,有二进制对比、直接比较等。而代码生成器生成的正好是分目录的,所以文件夹比较就非常有用:

这个就不做太多介绍了,大家知道有这东西就行,在要用的时候能想起来。
踩坑记录:多人协作时,两个人改了同一个文件,合并前先比较一下,能把冲突消解在提交之前,比合并工具弹一堆冲突再一个个手选省心得多。
四. JsonView:JSON 查看
做前后端调试时,返回的数据大多是 JSON 格式。我看黑马的教程,每次要查看 JSON 都是通过在线解析,每次都要搜索「json 在线解析」,然后从中选一个:


这是我从以前文章里找到的 JSON:
json
{
"success": true,
"status": 200,
"message": "操作成功",
"data": {
"id": "260708340N6TMP8S32W",
"name": "一级目录",
"parentId": null,
"extro": null,
"createdBy": "26070733Z0DN27RX2A8",
"createdTime": "2026-07-08 20:08:09",
"updatedBy": null,
"updatedTime": "2026-07-08 20:08:09"
}
}

我推荐另一个工具 JsonView,是 .NET 编写的,有时要安装。查看 JSON 就像在线解析一样:

工具是编程的铠甲,可以使用在线的,也可以使用 JsonView,主要是要使用,而不是将时间放在争辩谁优谁劣上。这一点要特别注意。
补充说明:在线解析要联网、要等页面加载,本地工具双击即开。不管用哪个,调试时快速看清 JSON 结构就够了,别本末倒置去研究工具本身。
五. PxCook:UI 标注
如果涉及前端开发(比如我之前做的 Vue3、Vant 移动端),或者需要和前端同事协作,标注工具必不可少。PxCook 是我用过的比较顺手的一款,核心优势是「简单、精准、全平台兼容」。
- 核心功能:设计师给的 UI 图,导入 PxCook 后能直接标注尺寸、颜色、字体------前端开发时不用再反复问设计师「这个按钮多大」「这个字体是什么」,自己就能精准取参;
- 协作技巧:支持多人共享标注项目,设计师更新 UI 图后,前端能实时看到最新标注;还能直接导出 CSS 代码(比如颜色值、尺寸样式),复制粘贴就能用,减少手写错误;
- 后端也能用:哪怕你不做前端,有时候看 UI 图理解业务需求时,用 PxCook 放大查看细节,也能更清晰地知道接口需要返回哪些字段,避免开发偏差。
以前做 Android 开发时,经常要获取颜色值、大小、间距,而我们也没标注得那么详细,就需要我自己来判断获取,这时就需要 PxCook:







工具怎么使用,可以查看官方教程。
六. pdman:数据库设计
以前做数据库设计一直用的是 PowerDesigner,直到发现 pdman 这个工具(当然我使用的是比较老的版本)。数据库设计是后端开发的基础,设计得好,后续开发能少踩很多坑。pdman 比传统的 PowerDesigner 更轻量化,也更贴合国内开发者的使用习惯。
重点说下它的核心优势,尤其是对后续项目讲解的帮助:
- 专注核心字段,提升效率 :设计表结构时,能自动带出一些常用字段(比如
id、create_time、update_time、del_flag等),不用每次都手动添加------规范字段名的同时,还能节省设计时间; - 联动接口文档:后面讲 Knife4j(接口文档工具)时会发现,pdman 里设计的字段注释、字段类型,能和接口文档的字段说明对应上------相当于「一次设计,多处复用」,后续讲解项目时,从数据库设计到接口开发能一条龙串起来,逻辑更清晰;
- 实用功能:支持导出 SQL 脚本(直接执行就能创建表)、生成数据库设计文档(Markdown/PDF 格式),团队协作时,规范的设计文档能减少沟通成本。

在设置里配置默认字段,这样每张表都会自动带上:

数据库连接我一般是不用的,因为真正的库不能通过这些工具生成。既然能用 SQL 创建,就直接使用代码信息手动执行 SQL:

补充说明:pdman 的设计结果可以导出成 Markdown 设计文档,和上篇 Typora 那一套是配套的------设计文档写完就能归档,配合全文搜索工具,后期要查某个字段的设计依据,一搜就出来了。
七. 小结
下篇讲了六个偏工程向的工具:
- 掘金/知乎图片上传工具:Qoder 写的,发布文章时把本地相对路径图片一键替换成外链,省下大量时间;
- 自己编写的全文搜索工具:Everything 只能搜文件名,全文搜内容还得靠自己写的工具,「好笔头不如烂记性」;
- Beyond Compare:文件/文件夹对比,配合代码生成器只用对比已改变的,不会弄丢代码;
- JsonView:本地 JSON 查看,和在线解析效果一样,但不用联网等加载;
- PxCook:UI 标注,前端取尺寸、颜色、字体,后端看接口字段,都很方便;
- pdman:轻量级数据库设计工具,自动带常用字段,还能导出 SQL 和设计文档。
踩坑汇总:
| 问题 | 解决方案 |
|---|---|
| 图片上传偶尔失败一两张 | 重新跑一次工具,大部分都能成功 |
| 文档太多找不到内容 | 用自建全文搜索工具,而不是 Windows/Everything(后者只搜文件名) |
| 多人改了同一个文件 | 提交前用 Beyond Compare 先对比,把冲突消解在合并之前 |
| JSON 结构看不清 | 用 JsonView 或在线解析,别纠结哪个好,用起来就行 |
工具肯定不止这几种,特别是全文搜索工具,还是自己编写的。工具的目的是提高效率,只要能提高效率,就是好的工具。如果你在工作生活中用到了好的工具,欢迎留言,也为我提供一些帮助。
这篇就先记录到这里。工具是编程的铠甲,希望这两篇能给你一些参考,我们下个系列见。