首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重复性的操作,你干不过计算机

最近,不管打开哪个技术网站,都能够看到大家在讨论有关人工智能的话题,这也使得很多程序员在考虑是不是要回炉重造去学习人工智能的知识,同时也使得Python在编程语言排行榜上的名词一路飙升。大家普遍讨论得比较多的问题就是未来到底有哪些工作会被机器取代,机器的智能到底会不会超越人类?很多专家都指出了,那么重复性高的工作很大可能会在不久的将来被机器取代,因为机器,或者是人工智能,非常擅长做大规模的重复性的操作。

这里我们不讨论人工智能,而是想聊聊机器擅长做重复性操作这个事。下面我举一个例子来说明。

在之前的某个项目中,我指导了某新员工对某个软件版本进行测试,该软件的主要功能是从数据库中扫描出满足条件的数据以执行相关操作。具体而言,数据库中有10个表(tb_test0~tb_test9),程序要周期性地从第1个表到第10个表中查询数据。为了验证程序处理的数据条数总条数是否正确,需要经常性地手动从这10个表中查找数据条数,并与程序处理的数据条数进行比较。

在每一轮的测试中,这位新员工的做法是在软件运行之前,先依次手动执行10条SQL语句从这10个表中查找数据条数并记录下来,然后将这10个数据加起来的结果存放到电脑上;当软件运行之后,将保存的结果与程序日志中的结果进行比较,看两者是否相等。按照他的这种做法,如果测试了100轮,那么就要手动执行100组如下的SQL语句:

selectcount(*) from tb_test0

select count(*)fromtb_test1

selectcount(*) from tb_test2

select count(*)fromtb_test3

selectcount(*) from tb_test4

select count(*)fromtb_test5

selectcount(*) from tb_test6

select count(*)fromtb_test7

selectcount(*) from tb_test8

select count(*)fromtb_test9

如此重复劳动是否有必要呢?我问该新员工是否有更好的做法来避免这种重复的劳动?他觉得应该有,但是还没有想到。

我们都知道,与人相比,计算机更适合做重复性的操作。具体到本文中提到的这个问题,可以考虑编写一个数据库脚本(更具体来说是一个存储过程)来从10个表中查找数据条数,我们每次只要用很简单的语句来调用这个脚本就能够得到数据总条数。

根据我的这个想法,该新员工编写了如下脚本:

create procedure pr_countnumasdeclare

@numoftable0int,

@numoftable1int,

@numoftable2int,

@numoftable3int,

@numoftable4int,

@numoftable5int,

@numoftable6int,

@numoftable7int,

@numoftable8int,

@numoftable9int,

@totalnumint

begin

select@numoftable0=count(*)from tb_test

select@numoftable1=count(*)from tb_test1

select@numoftable2=count(*)from tb_test2

select@numoftable3=count(*)from tb_test3

select@numoftable4=count(*)from tb_test4

select@numoftable5=count(*)from tb_test5

select@numoftable6=count(*)from tb_test6

select@numoftable7=count(*)from tb_test7

select@numoftable8=count(*)from tb_test8

select@numoftable9=count(*)from tb_test9

select@totalnum=@numoftable0+@numoftable1+@numoftable2+@numoftable3+@numoftable4+@numoftable5+@numoftable6+@numoftable7+@numoftable8+@numoftable9

select@totalnum

end

go

print'create procedure pr_countnum ok'

go

每次运行软件之前,我们只需要执行如下语句:

execpr_countnum;

即可得到10个表中的数据总条数。

在实际的研发工作中,特别是在已经到来的智能时代,为什么我们要尽量将重复性的操作让给计算机执行呢?我认为有如下原因:

第一,为了节约宝贵的研发时间。大家都知道,软件行业的从业人员经常加班,他们不是活雷锋,不是他们想加班,而是手上确实有很多事情做不完让他们不得不加班。在时间如此宝贵的情况下,如果你还把时间浪费在做大量重复的事情上,岂不是可惜?把重复的事情交给机器做,至少可以让我们将主要精力集中在重要的、有创意的事情上,做出来的产品的质量也更好。

第二,为了减少出错的机会。人和机器不一样,机器把某件事情重复做上N遍都不会出现问题,而人重复做某件事情的次数越多,出错的概率就越大。特别是涉及到数字的操作,当你重复做上10遍的时候,可能还一切正常,当你重复做上50遍的时候,可能头就已经晕了,这时得到的结果就会有问题了。

第三,为了体现研发人员的素质。就像前面提到的,一个将某个操作手动执行100遍的人和一个调用自己编写的脚本100遍的人,你会觉得谁的素质更高呢?当然是后者。在每天的工作中,我们会和很多的人打交道,如果你给他们留下了好的印象,那么后续的工作也更好开展了。

在实际的软件研发工作中,我们要合理利用资源,力争多、快、好、省地完成自己的工作。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171208G0WHKH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券