跳到主要内容

被一个报错卡了六天,最后是少打了个字

周工转码中
周工转码中

· 阅读约 4 分钟

这周基本没干别的,就为了一个报错。

事情是这样的,上个月我开始自己琢磨写个小工具,给我们小区那几个工头用——就是排班表,谁哪天在哪个标段,谁请假了,谁替班。原来他们在微信群里喊,喊乱了就有人漏上工。我寻思这个不难,表格加个查询的事。

前面挺顺。数据存起来,页面能填能看,我还加了个导出表格的功能,想着工头们不一定爱看网页,导出来发群里也成。我甚至给它起了个名,叫"班表",土是土,实在。

然后就卡住了。

我有一个查询,按人名查他这周排了几天。用我自己名字试,出来;用我老婆的名字试,也出来;但是有几个名字就是查不出来,页面上干瞪眼,啥也不显示。也不是报错,就是不返回东西。我一开始以为是数据没存进去,跑去数据库里翻了半天,人在那儿,好好的。

这属于什么情况呢,就相当于你按图纸下了料,料也在库房,吊上去就是装不进去。那只能怀疑图纸本身。

我开始看代码。我这水平,看代码是慢的,一天能捋明白两百行就算不错。先从页面这头往上追,追到接口,接口那头再去数据库取。中间加了好几处打印,像在工地上埋检测点,看水到底从哪儿漏的。打印出来的东西,人名的位置是有的,长度也对得上,可一到筛选那一步就空了。

那天晚上快十二点了,我两个娃都睡了,我坐在客厅茶几上,笔记本屏幕调到最暗。我老婆出来倒水,问我还弄呢。我说快了。其实一点头绪都没有。

后面两天我走了歪路。我先怀疑是中文的事,是不是编码不对。这个思路来自我们那会儿做试块送检,同样的料,换个实验室结果就不一样,你得先排除是"地方"的问题。我把名字全改成拼音,还是不行。不是全不行,是原来不行的那几个还是不行,行的还是行。这就说明不是编码。

又怀疑是空格。人名字前后带了看不见的空格,这个我在Excel里吃过亏。加了个去空格的,还是那几个查不出来。

我心里有点毛了。因为不是全错,是错一部分,这种错最难缠。工地上最怕的也是这个,整面墙塌了你知道是哪儿的问题,就一道缝,你天天盯着它,它就那么一道缝。

后来我干脆把这几个查不出来的名字单独拎出来比对。老王、小李、还有他们说的那个"张工"。查不出来的名字有一个共同点——里面都有同一个字,"工"。

我当时还不知道这意味着啥,就觉得邪门。然后我盯着那个筛选条件看了可能有半个钟头,那半个钟头我啥也没干,就盯着。

看出来了。我写的是 name = "张工",用了单等号。

单等号在代码里不是"等于",是"赋值",就是把右边的东西塞给左边。所以我那句话的意思不是"找出名字等于张工的记录",是"把所有记录的名字都改成张工"。

我靠。

前面那几天为什么有的名字能查出来?因为那些名字本来就在我复制的那堆表里,数据乱了但页面看着还是有东西。真正被我改乱的地方,我当时根本没注意到。

从差一个等号,到查了六天。

我坐那儿愣了一会儿,没觉得解脱,就觉得蠢。这个错在任何一个干过半年的人手里,最多两分钟。我之所以六天没看出来,是因为我不敢信是这么简单的原因,我总觉得是我这个外行不懂什么深的地方。就像工地上来了个新监理,看见哪儿不对先怀疑是材料问题,其实是他自己卷尺没拉直。

第二天早上我跟老王说了这事——他是我们小区里那个真干过工头的,五十多岁,我拿他当第一个用户。我说就少打一个字。他说,那不就跟我那回一样么,钢筋下料单上多个零,白搭进去半个月工资。

我说是一个道理。

我又改了一版,把那个等号补上,顺手把所有的筛选都检查了一遍。班表现在能用了,老王他们那几个工头试了几天,说还行,就是导出表格的格式不太好看。这个我下周弄。

四十岁怎么了,四十岁学东西是慢,一个等号能找六天。但找出来了,工具就能用,老王他们月底排班不用在群里喊了。

下周继续投简历。

周工转码中
周工转码中

干了二十年土木,四十岁转码第六个月。手艺人学新手艺。

查看主页 →