我是个偏执的人,总是喜欢为一丁点小事,搞特别大的阵仗,明明可以向南走,我偏要向北走,就算绕远路也全不在乎。

事情是这样的,我打算做一个文件同步的工具APP,用来存储我的Markdown笔记,代替坚果云。方案是dokan + rust + webdav。开发过程中遇到了无数困难,每一次困难都是当头一棒把我打倒在地,但每一次我都没有放弃,洗个澡来又是一条好汉,又能干劲满满。

前前后后调试了差不多快50多个小时,但今天确实是崩溃了,我放弃了。想了下自己纯粹是闲得慌做这玩意,明明有现成的坚果云不用,非要自己做一个,费时费力不说,那天写出个bug来把关键的数据弄丢就舒服了。

第一次看到dokan这个库就心动了,它可以在用户态写文件系统,所谓文件系统就是在“我的电脑”里可以新建一个盘,然后这个对这个盘里所有的文件操作底层逻辑都可以自己去实现。比如我可以做一个zip-fs,把一个zip文件映射到一个盘上,这样对这个盘所做的文件修改会直接打包到这个zip文件里,很是方便。

我觉得这个可玩性非常强,加上看到dokan还有rust绑定,就直接入坑了,谁知道我这个操作是真的在“入坑”,入大坑。dokan最简单的示例代码都有足足1600多行!后面官方提供了3个代码例子,3个例子就有3种不一样的写法,一时间竟然不知道该以哪个为准。

前前后后调试了差不多快50多个小时,然后发现总是有一些小毛病,比如新建文件夹之后要按F5才会刷新,打开txt文件的时候文件数据会“串台”,有时候明明文件存在它提示不存在等等等等,非常的心累。

后来测试中发现rust的示例代码都有问题,但是c + +版本示例代码没问题,我去查看了rust绑定的源代码,也没看出啥名堂来,这事反正就特别奇怪。或许把dokan相关的逻辑用c + +写,其它逻辑用rust做,这样也许会好很多,毕竟这俩语言交互还是挺容易的。

我又为一碟醋包了盘饺子,气人的是这饺子还没包出来。

在B站关注了一位UP主,刚关注那会他24,现在他27了。几年过去能看得出来,当年的那种“锐气”,或者说“执行力”已经大打折扣了,年轻时的他为了干活,经常几宿不沾床。而现在从他身上已经看不到哪些年轻时的“棱角”了。

在过几年我也要24了,果然真正的年轻就那么短短几年,那几年里的脑子是最好使的时候,精力也是最充沛的时期,希望自己能趁着这些时间做点对自己有用的事情,终日把时间花在这些包饺子的项目上还是不太可取。