关于更新内容

这个月断断续续为Tiny RDM修复了不少小问题,并为提高使用体验做了很多小改动。这里也大概列几点比较重要的:

键浏览区增加不少快捷键

快捷按键确实是之前忽略的功能,继上次为命令行增加一些通用的快捷按键之后,这次开始给键浏览区也加入一些快捷按键,大概的按键如下。

1
2
3
4
5
6
7
上:切换到当前键视图中所选项的上一个临近项。
下:切换到当前键视图中所选项的下一个临近项。
左:如果当前所选项为层且展开状态,则折叠层;如果当前所选项为层且折叠状态,则切换到父级层节点。
右:如果当前所选项为层且折叠状态,则展开层;如果当前所选项为层且展开状态,则切换到当前层的第一个子节点;如果当前所选项为键,则切换到下一个同级节点;如果当前键节点为同级最后一个节点,则切换到其父级节点的下一个兄弟节点。
删除键:如果当前所选项为层,则执行前缀删除操作提示;如果当前所选项为键,则执行键删除操作提示。
Ctrl+C/Cmd+C:复制当前所选键名。
F5/Cmd+R:刷新当前所选键的内容。

这个我后面找个时间整理下全部快捷按键放到官网使用手册上。不过上面描述的上下左右按键还是比较抽象, 我想如果能做成视频介绍,应该对它的用法就很清晰了,这个功能手册视频也会排进计划。

支持非标准JSON格式的显示

微信群里面有小伙伴使用了非标准的JSON格式(FastJSON),大概格式会像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"@type": "com.ruoyi.common.core.domain.entity.SysDictData",
"createBy": "admin",
"default": false,
"dictCode": 28L,
"dictSort": 1L,
"dictType": "sys_common_status",
"dictValue": "0",
"isDefault": "N",
"listClass": "primary",
"params": {
"@type": "java.util.HashMap"
},
"status": "0"
}

这些文本在Go中使用内置方法格式化是识别不了的,所以会一直被认为是普通文本。后来我发现DevToys可以正常格式化这种内容,刚好它又是开源的,翻看了下代码,发现用到了https://github.com/ObuchiYuki/SwiftJSONFormatter 这个库,代码量不多实现原理也简单,于是果断将它转为Go版本。最终还是很好支持了这种类JSON结构的文本格式化显示。

HASH支持单字段刷新

这也是个被忽略的需求,我看了下其他相关的Redis GUI软件,也缺少这个功能。在HASH里面内容特别多的情况下(通常也导致了分批加载),每次如果只想实时查看某个字段的最新值,那么全局刷新确实是很费时的。

关于推广

五一前发布了B站首条Tiny RDM的介绍视频,到目前为止有4万播放了,作为第一次做视频,这个成绩我还是很满意的,后续也会尝试做一些Tiny RDM的使用指南相关视频。

后面计划再蹲一蹲BUG,继续完善下,差不多就开始尝试去海外的一些社区和平台宣传了。这是一个计划了很久的事情,也一直没有真正去做。但一直以来的想法还是希望Tiny RDM更完善点,少点小问题,才能给新用户更好的初次体验。不过其实这种想法如果放在商业软件上是不太正确的,商业独立软件提倡尽可能快推出市场来验证产品可行性,所以我感觉我在走一条大部分独立开发者不会走的路。

关于独立开发

最近在看的书是《思维的囚徒》,让我也开始思考写代码的意义是什么,独立开发的意义是什么,乃至程序员的意义是什么。这个思考我想等我有了答案的时候,再专门写一篇文章记录下来。如上面所说的,我在走的路大部分独立开发者都不走,做开源、企图寻求更好的实现方案、甚至还打算边做边公开记录。而正经的独立开发者现在早已加入到势不可挡的AI大潮中了。

实际上,我是希望我做的事情能实实在在给他人提供帮助和价值,而至于最终能挣多少钱,应该作为做好这个事情的反馈和奖赏。如果从这么一个角度来想的话,是不是它的意义开始显现了?有时候你急于想得到一样东西,反而越不容易得到。专注于事情本身,享受实施过程,目的不一定如你预期,但是这段旅程一定是有意义的。

今天就码字于此,共勉~