如无必要,勿增实体
序
初次接触到 如无必要,勿增实体 是在《西部世界》这部美剧中,今日早晨我在看贝叶斯定理的相关文章的时候,恰巧又温习到这句话,想聊一下该语句是怎么影响我的生活的。
以往
参加新的工作以后,很多东西都发生了变化。比如以前是B/S项目,现在是C/S项目。因为B/S的逻辑代码都存在于服务器端,基本上不用考虑源码被不良居心的人使用。而C/S架构存在源码泄露的风险,故需要对产品的Dll做混淆处理。
如果要制作一个安装包,避免不了以下这些步骤:
- SVN签出最新代码
- 重新生成解决方案
- Release目录内的dll拷贝到混淆工具指定路径
- 混淆结果拷贝到安装包制作路径
- 生成安装包发布到指定路径
在window下的tortoisesvn 可视化操作下,选中指定目录签出文件,并不麻烦。
在visual studio 2017下,打开几十个项目重新编译通过就有点麻烦,毕竟项目越多,Visual Studio加载越慢。
在多个Release目录中,选中指定的待混淆文件拷贝对混淆工具的指定路径是重复低效事件。
再将混淆结果拷贝到安装包制作路径再制作安装包是重复低效事件。
再将安装包拷贝到阿里云的Ftp服务器是重复低效事件。
1 | 原目录和目标目录的不断切换,不同工具的开启和调用,整个过程操作下来,顺利则30分钟,不顺利则一个小时。 |
如果一天做两个不同版本的安装包,一天就一个多小时重复在安装包的制作之上。这并不能体现出我的工作价值。
鲁迅先生说过:
1 | 无端地空耗别人的时间,其实无异于谋财害命。 |
若不想被谋财害命,需要作出一些改变。
反思
若是一年做一次安装包,写一个安装包部署手册就好了。一年之后再制作安装包的时候,参考该部署手册就能很好的解决问题了。
但是一周2~3次的安装包制作(不做解释^_^),一周就有三四个小时用于制作安装包了。
《西部世界》好歹是一个机器人的世界,我公司又是做的RPA的产品,怎么自己还在做这种重复低效无意义的事情?
- SVN可以通过命令行做签入签出的动作。
- Visual Studio 2017 也可以通过命令行执行重新生成解决方案的动作。
- 拷贝文件到指定目录的代码网上比比皆是。
- ftp也可以通过命令行执行上传下载文件的动作。
我能不能制作一个工具,一键就把以上所有实现都给完成了?
现在
参考了一些资料,花了几天终于折腾出来了一个发布工具(Ftp命令行这部分未实现),虽说这个发布并比不上docker的一件部署。
但是于我个人而言,却是近期以来
1 | 如无必要,勿增实体 |
的最佳实践,基于此工具,制作一个安装包的时间已经省到一半的时间了,这样也是惜时如金的一种表现吧。
这个基于Hexo主题的网站搭建也是一个Do not repeat yourself的实践,没有试图再去从零开始搭建一个网站框架,创作一个新型的电子垃圾也是迷途知返吧;
再引用一句鲁迅的名言
1 | 总之,我们要拿来。我们要或使用,或存放,或毁灭。 |
没有拿来的,技术不能自成为新技术。不需要创造重复的轮子,但是手上也需要有适合自己的工具。
总结
奥卡姆剃刀原理也好,Dry原则也好,RPA也好,AI也好,甚至西部世界也好都说明了一个道理:
人从事重复简单的工作,能带来的是熟练程度的提升,但是在更年轻力壮的人或者机器人面前,他并不具备足够的竞争力。
参考资料
如无必要,勿增实体