背景
2013年暑假的网盘大战后,我开始使用网盘。考虑到网盘的大容量,且云端貌似比PC更安全,所以打算在网盘建个数据库存储我的电子文件。刚开始采用的管理规范太简单,很快我就觉得还是太混乱了。
不知是玩MATLAB斯认为“一切皆矩阵”,还是玩ACM听人说“一切皆网络流”,2014年,反应向来迟钝的我,用了这么多年电脑,才突然明白:”我所有的电子资源,一切皆文件“。之前分什么文本、音乐、视频、电子书、软件神马的太麻烦了,这种分类方式还不如交给计算机完成。所有的东西肯定都是以文件为介质,那么用一个文件夹存储就行了。
所以从此以后,我的数据库都以文件夹为基本单位进行整理。那么为文件夹添加时间标签是必不可少的(这样按文件名排序,就能按时间顺序列出所有的文件夹,按文件夹的建立时间排序是不准的),最简单的不外乎是”20130413“这样的标志,但我闲这个太长,就先设高一级的年份文件夹,如”2013年“,然后里面的文件只要用”0413“的月日标签。但到了2014年我就后悔了,我觉得很多14年工作的开展,还是要和很多13年的资源结合,且层级太多还是太麻烦。
于是,我在2014年4月7日设计一个日期编号系统,也就是管理规范0.1版诞生了。
第0.1版
时间编号代码
这里我自定义了个名词”时间编号代码“,简称”时间编号“。由“一个大写字母(代表year)+ 一个小写字母(代表month)+ 两位数字(代表day)”,组成的时间代码。如2015年4月12日是Od12。
注意:
1. 数字不足两位时必须补充前导0。
2. 允许使用虚拟时间(如On50),使文件夹在排序中获得特殊位置。
3. 该份编号代码目前有效期为2001年1月~2026年12月。
连接符
0.1版的时候没想到连接符有大作用,统一指定用’-‘。后来为了区别从网盘下载下来,之前整理过比较正式的文件夹,连接符用’=‘。
这样,一个标准的数据库文件夹,名称由”时间编号 连接符 文件名“三部分组成。如”Mi08-三大数学软件安装包“。
第0.2版
更(zuo)新(an)动机
0.1版使用了一年比较顺利,相安无事。把忙碌的2014年里资源整理的井井有条。但由于数据库的文件夹越来越多,到了后期,开始出现一些问题。如以下一些具体案例:
①”Ne25-Python公开课学习“本来是打算学完后,再以标准版本上传到网盘。可实际上很多这样类似的项目因为时间问题烂尾了~~我能分清哪些文件是完善版,哪些是正在编辑处理的吗?
②14年数学建模国赛的培训、竞赛资料放在”Ni15-14年建模国赛资料(完整版)“里,上传到网盘后,我只需要留下论文及tex源码等部分资源。虽然PC上的文件是网盘的子集,但还是很容易造成版本的混乱。万一后来想起国赛一些细节,做了补充,或更改论文错别字等更新操作怎么办?这样的文件一多,我还分的清哪些是网盘里的拷贝,哪些是拷贝后做了更新要重新上传的吗?
③一段时候后,发现以前的文件封装不好,很多小事,如”Lj21-大二下省计算机报名“,用一个文件夹单元存储太浪费了,需要做资源整合。整合有两大类,一类是把类似的东西集成在一起成为大全,一类是把重复的东西放在一起去冗余。这类文件夹也应该跟普通文件夹区分开。
④”Mi07-章X共享的电影“是别人分享给我的一些好看的电影。很多软件、书籍等资源类似Mi07,是从ta人或网络上找到的,出于尊重及保存源文件目的,我肯定要保存原始版本,这类资源与我原创的资源有很大的区别。然后有时我会进行二次加工,也必须与源文件很好的区分开。
为此,我在2014年10月20日,就设计了仓库的概念,减轻太多文件夹单元的压力。每个仓库存放一个人生时间段的文件。’(0)KPHM’是高中之前所有,’(1)SWQZ’是高中时期,’(2)CODE’是大学时期。括号里的编号没有前导0,因为暂不打算把人生划分超过9个时期,就算有,也是几十年后的事了。编号后用四个大写字母作为代号,有特殊含义。
连接符与文件状态
上述谈到的四个事例,对应这几个问题:如何区分编辑中与完善版的文件;一份文件完善后,如何区别部分数据的拷贝,及进行更新的文件;如何区分对多文件进行二次加工的文件;如何标记不能更改的引用类型源文件。
4月12日晚,做毕设设计做到头晕脑胀的我,觉得应该重新理一理毕业设计规划。结果我跑来架构文件归档体系了~~ 这时我就想到可以利用不同的连接符来表示文件不同的状态,及类型,不过代价也是做的跟0.1版不兼容,要花一段时间更新旧文件。下面是本次版本更新的图示及内容:
① 图中红圈代表只读文件,紫色文字代表这是一类规范的文件档案。虚线表示出发节点类型可选性的可以再转化为=类型,但有时为了方便,长时间保留+&^类型也是可以的。
②-、+号应该很好理解,代表删减,添加。&来源于编程中的 “and” 操作,区别于”并”操作,强调取其精华去其糟粕。^在数学中表示指数的含义,用其代表多文件集成。@就更好理解了,引用的意思。
③在特殊情况下,可以不使用连接符,用空格代替,防止在一些特殊计算机语言中,这些古怪的符号有歧义,带来路径索引的不便。
④@类需要设置书签等任何小修改时,都需要派生一份~类进行处理。
⑤派生文件最好要指明来源。有时为了区别数据库的README与原文件的README冲突,或者不想在分享资源时显示时间编号,可以新建一级文件夹。如原来放在“Oc03=matlab2014a下载/“的安装包,放在”Oc03=matlab2014a下载/matlab2014a下载“。
⑥标准文件的名称最好不要变更,防止-+&^指明来源时产生差错。其余类型文件,时间编号和文件名可随时随意更改成适合的名字。
⑦+符号后面可以再加一个时间编号,然后与文件名空格隔开,如。这样能比较好的显示是在什么时间点对什么时间点的原始版本进行的更新。其它一些符号需要的时候,也可以使用这种标记方法。
按这样的规范处理后,文件结构大概是这样的: