我和Tiny RDM一起勇敢迈向了1.2版本
7月份工作挺忙的,忙完之余也没剩多少时间继续更新项目了。好在还是发布了新版本,这一次它的版本号终于跳到了1.2。
勇敢迈出的版本号
由于近几个版本都是以修复老问题和优化体验为主,并没有增加明显性的新功能,所以一直扣扣搜搜徘徊在1.1.x。
这种状态从春节过后不久到现在持续了将近半年,本意是希望它尽可能地稳定可靠。但后来逐渐妥协了,不存在完美的产品,很多你本想做好的方面,的确就是“心有余而力不足”。比如有个问题是Windows下某些机器打开直接闪退,让我很是头疼,一来它是在部分机器上才会出现,我没有这样的运行环境,二来用户也没法提供崩溃日志,不过就算能提供,我猜测大概率是Webview运行时兼容问题所致,自己能够操作干预的空间不大。
承认自己能力不足,也算是一种和解吧,最起码,它在大部分用户的电脑上是正常的。这就跟你的产品不可能被所有用户都喜欢一样道理。
把这些没法解决的问题排除掉,再把属于锦上添花的新特性排除掉,修复一批很明显甚至影响使用的错误,它大概就是我心中的1.2版本了。
勇敢迈出的重写计划
最近独立开发群的群友再次问我,Tiny RDM的盈利模式是什么。我在电脑前苦笑着回复到:问得好,我也不知道。
虽然一直在考虑重写一个更好的付费版本,并且已经在着手这个事有挺长一段时间了。但这并不是一件容易的事,“开源”,“桌面软件”,“程序员工具”这些标签随便一个和“商业化”组合都是高难度,更何况我居然把它们全凑一起了。其次要选择更好的替代方案,也让我头疼了挺长时间,除了Web以外很少有符合我要求的UI框架,或者说开发效率上具有如此性价比的方案。而且接触新的框架需要花费大量时间重新学习相应的开发语言和设计理念以及用法,在没有出来一个半成品之前,这真是一个乏味的过程。
后来我决定用Avalonia重写,至于它是不是就是最佳方案,我觉得依然不是,如前面说的那样,不存在完美,只有你能接受妥协的方式。
提到Avalonia,问题确实不少,字体渲染首当其冲,而且基于MVVM的架构模式用法上也很啰嗦,让用惯HTML的我好久都没适应过来。当前正在给整套控件重写主题,只为了让它的控件样式尽可能接近现版本的Tiny RDM,我甚至以月为单位持续投入精力。至于这件事情值不值,它本身无法衡量,也无法预测,因为最终效果应该交给用户来评价。以现今我的认知,并不能判断它的实际价值几何,没有人能预估自己做的事情每一步都是对的,而当下我能做的就是享受创作过程,在自己依然敢于承担后果的阶段。
总之我发现自己在重写这件事上又开始像个典型程序员一样偏执了,但我坚信好事多磨,倘若今后证明这就是一条弯路,甚至是岔路,我也仍旧愿意为此买单。
勇敢展示项目的一年
算起来Tiny RDM从去年6月开始新建文件夹,8月开始正式对外公开,如今刚好公开一年了。
不得不感概,项目刚开放的时候,并没人关注它,我一度怀疑这是不是要成为失败案例了,毕竟类似开源项目早已占据用户心智。但我还是想法子通过各种途径让大家知道这个项目:在各个论坛社区介绍它,完善产品使用手册和官网,编写产品介绍文章,制作产品推广视频,尝试了多数软件产品能免费推广的方式。当然各种花里胡哨的推广背后,依然需要以一个能打动人心的产品为基石,以及追求美好的执念。
如今项目拿到了我迄今为止人生中最多的Star,也被一部分人所知悉和认可。我也能如当初设想的那样,和别人聊天时厚颜无耻地吹牛道:“我是Tiny RDM的作者”了。虽然它还谈不上成功(很多人把一个产品的成功定义为能让创作者财富自由,或者起码不用再上班工作也能靠它养活自己了,而Tiny RDM开源所带来的打赏甚至不够上班半天的工资),但它至少还没失败,并且在我心中,它已然成功。
如果你也曾怀疑过自己,最好能证明怀疑是对的,否则应该一律当做错觉处理。
勇敢分享成果
以前我不喜欢在网上发表东西的,一来是懒,觉得每天上班敲代码,还有两个多小时的通勤时间已经够累了;二来觉得也没什么值得或者能够发表的,毕竟长期面对冷冰冰的代码,能讨论的无非是“Golang适不适合做桌面客户端”诸如此类的话题。
但是近两年我也开始阅读大量书籍,学习各类开源项目,关注研究各种优秀应用,也会刻意在处理问题前做更多的思考。越是身处其中越能清醒理解,要想真正成为独立开发,并不是单单会写代码就行。
很喜欢产品沉思录里面的一句话:人们会被自己热爱的事物改变,而没有人因为给予而贫穷。
于是我尝试了发表分享,当然就是从“Golang适不适合做桌面客户端”类似的话题开始。然后意有了另一番领悟,我之前的想法其实是错误的,我将因果关系弄反了:不是有所成果才能做分享,恰恰是开始分享才会去思考应有何种成果。 写文章如此,做开源如此,做产品亦应如此。相应的,人也应该是有所行动,才可能有所悟及有所得。
至此,我觉得自己也迈进了1.2版本的新里程。
最后说到这里,如果有程序员读者还不知道Tiny RDM是什么,允许我在这简单介绍一下:它是一个具有现代外观的Redis桌面客户端,旨在为开发者和运维人员提供一个更顺手的生产力工具。