分类原则
大约 3 分钟
分类原则
个人总结原则
个人总结出来的一些原则,能够帮助更好的分类。必须遵守tag的需要严格遵守,否则建议遵守
不要分类
- 不要提前分类。在东西还不多时不要提前分类,东西多了再分类。借用程序里的一句话就是 ”过早的优化是万恶之源“。哪怕后期需要重构 (只要重构及时),也不会比一开始做很多优化多浪费太多的东西
- 不要过度分类。分类是为了提高效率,而不是为了你在这上面消耗精力
- 非归档工程不用太分类。从使用和存放角度上。工作区里简单分分就得了,工作区里同一时间使用的项目一般不会超过20个,如果太多了,就说明该归档了。工作区里如果像归档区分得那么详细,提高了项目深度,反而降低工作效率
- 归档保证项目完整性。从使用角度上。一个项目不要东一块西一块,要求别人拿到一个压缩包/文件夹后,可以继续完成里面的内容,而无需放在别处的其他素材。东西都绑一块就行了
分类二义性
对于一个新的东西究竟放A里还是B里
优化原则 (必须遵守)
例如:有Docs、CodeProject、SourceProject。他们往往并不只是在不同的文件夹那么简单,而是极有可能在存储设备上和管理系统上有所不同!
Docs可以纯小容量U盘/SD卡放Kindle里看书,大的东西就绝对不能往里放。
CodeProject可以用Git管理,二进制存储的SourceProject就绝对不能放里面去。
例如:一个项目即包含了三维项目、也包含游戏项目。根据优化原则,应该放游戏项目!三维管理软件 (如3D66) 无法管理这个项目,而游戏管理软件肯定是可以管理这个项目的。
包含原则 (必须遵守)
- 如果两个分类是纯包含关系,如Docs和MdDocs,当满足小的肯定是放小的那个(小类可看成是在大类里的一个文件夹的快捷方式,而且此时不用小类岂不是没用了)
优先级原则:规定冲突时的选择优先级,若无规定则再往下看
- 例如:我的Dev里有 Language、Platform、Type 三类,并规定了优先级 Platform > Type > Language。那么只要项目扯到一些跨平台的东西都应该放在多平台里
多人原则:分类到两个文件夹就像分派任务给两个人,且应尽力避免这两个人之间的交流。好好想想清楚他们各自的业务需要什么功能
同时多类
(难题)
平等类
- 例如:一个项目脑子抽风没做分离,同时有 Java后端、Vue前端。而两部分是无论从什么角度上看都是平等,无重无轻
多类
例如:一个项目即包含了三维项目、也包含游戏项目。根据优化原则,应该放游戏项目!三维管理软件 (如3D66) 无法管理这个项目,而游戏管理软件肯定是可以管理这个项目的。
但此时你无法在三维分类中找到对应的游戏所使用的那个资源。这是单类模式的必然性。
标签
一些根类
有三大类是指导前几层的分类策略的,这类型通常会被放在分类开始根类里,而不是在很后面才去区分。
至于他们之间的优先级不作硬规定,视具体情况而定。
我觉得这里可以有个专有名词:Big3
、ThreeRoot
- 性能优化
- 隐私优化
- 管理软件优化