如无必要,勿增实体

初次接触到 如无必要,勿增实体 是在《西部世界》这部美剧中,今日早晨我在看贝叶斯定理的相关文章的时候,恰巧又温习到这句话,想聊一下该语句是怎么影响我的生活的。

以往

参加新的工作以后,很多东西都发生了变化。比如以前是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
2
3
4
总之,我们要拿来。我们要或使用,或存放,或毁灭。  
那么,主人是新主人,宅子也就会成为新宅子。
然而首先要这人沉着,勇猛,有辨别,不自私。
没有拿来的,人不能自成为新人,没有拿来的,文艺不能自成为新文艺。

没有拿来的,技术不能自成为新技术。不需要创造重复的轮子,但是手上也需要有适合自己的工具。

总结

奥卡姆剃刀原理也好,Dry原则也好,RPA也好,AI也好,甚至西部世界也好都说明了一个道理:
人从事重复简单的工作,能带来的是熟练程度的提升,但是在更年轻力壮的人或者机器人面前,他并不具备足够的竞争力。

参考资料