开发工具的使用工具或被工具使用
背景一
今天线上突然遇见一个BUG,测试反应在之前的版本并没有出现过,这一块覆盖测试在当前版本之前没有发现问题,然后根据需求,当前版本不应该修改这个出现BUG的文件,然后我就接过来处理这个bug,由于业务比较复杂,理解起来有点困难,改了三次没有通过测试后,我就有点心浮气躁,开始责怪当初写这部分代码的同事(该同事已经离开当前团队),代码中确实有很多问题,没有注释,SQL格式很乱,而且大小写混杂,简直就是一个泥潭很快就要把我陷进去了,然后测试同事提起之前版本测试没有问题的事情,然后另外同事开始上一个版本的测试,发现确实没有问题,然后开始追查git提交记录,发现最后一个版本是我提交的,然后对比之后发现,我提交的版本中我把两个方法中的重复代码进行重构之后抽离一个新的公共方法,看起来没有问题,idea的代码重复检测确实提示有重复,但是实际上两个重复的代码中有一个方法的调用不一样,就比如一个使用的新增,一个是删除,然而idea重构代码之后只保留一个更新的代码,新增方法直接就被抛弃了,而我也没有进行测试,所以直接导致了这次线上事故.
背景二
最近因为版权问题,公司开始审查禁用Navicat数据库操作软件,之前一两年我一直使用这个工具,这次禁用之后,一时间找不到好的替代品,一天之内我换了三个软件,直到现在用的mysql-workbranch,之所以换这些,要么有的用的不顺手,有的不带代码提示,写起SQL来总是不顺手,感觉少点什么,似乎没有Navicat就不会写了.
思考
这件两件事情发生之后,让我重新审视这个重构快捷键和Navicat,甚至是整个开发工具体系,为了能快速高效的写代码,开始使用的这些智能工具,最后尽然成了问题的起因,想想现在社会确实约来越多的智能产品,充斥我们的身边,然而他们给我们带来的不仅是方便,更多的是一种习惯性的约束,前段时间我还嘲讽现在的人工智能几乎都是人工智障,现在居然被智障给耍了,这不得不说是一种讽刺,实际上智能工具带给我们的应该是更快捷的操作,同时人的思考力决定了这个人的价值,不应该让工具来带代替我们思考,一旦思考都被替代,人也就失去了价值.
总结
我们常说开发中的编码能力,这个说的是你对编程语言的掌握程度,对开发认知的掌握程度,而不是你对工具的掌握程度,你去面试的时候面试官也不会问你,你对什么开发工具使用精通,而在开发中却连hello world都不会写,程序员界不需要这样的程序员.