代码这行并不像大多人想的那样,不是所有人有几年工作经验就是大佬,要看这几年你做了什么,得到什么,入行两年,浑浑噩噩,本想想靠混经验拧螺丝混到30改行,幸好被人一朝点悟。不爱这一行,就不会有心去钻研,去走向更高端;不去积累,写完就忘,除了流程熟练,跟新手没啥区别;重复造轮子,不动脑子,不如去工厂。
写个菜鸟日记,记录自己犯的各种错误,提醒着自己,希望我能有所改变,或者达到更高的蜕变。
2021年2月9日 18:38:56
出现问题:
1.判断错误状态不全面,看到成功与失败都是20000就只考虑了状态码为20000的情况;
2.下面代码重复判断为空的情况;
3.为空判断写反
解决方案:
1.仔细看文档,看清楚了,记住,老是看完只记住一部分,直接忘记其他的存在算什么。物流商给的字段不能保证全部存在,一定记的先判断是否存在,在判断是否为空!!
2.代码有个全局的概念,复制过来的也要想下别人为什么这样写,复制过来放那,跟自己功能部分重复都不知道就太傻了。
3.写完测试两遍,跟自己想要的结果不一致心里不该有个疑问吗!?
2021年2月19日 20:30:27
出现问题: 1.同一条数据查询出两条结果;
2.出现一些无用代码,自己也不知道为什么加;
3.开始的代码出现问题,后面围绕这个问题写了一堆;
4.where条件数据验证
解决方案:
1.同一个数据存在两个字段一致的情况,分别查询再合并之后数据就多出来一条,可以优化where条件,一次查询出结果,提升效率并解决两条数据的问题,如下:
$where = "a.tracknumber in (\"{$search_value_str}\") or a.pxid in (\"{$search_value_str}\")";
2.还是复制过来代码没有细看的原因,觉得功能相似,就留下无用代码,但只要细看代码并明确需求,就很容易发现此处用不到;
3.出现问题,解决问题,超出自己能力范围的寻求别人帮助,我今天问了同事,结论跟我一样无法解决,然后我就心安理得的放弃解决那个多出数据的问题,下次记得跟组长确认,大佬总能知道我知识盲区的问题;
4.tp5框架查询方式where条件为空的时候会出现查询报错,我在查询数据为空的情况下去查询了一个不存在的数据,功能实现了,但是逻辑不应该如此,应该提前对where条件验证,存在往下走,不存在直接return提示.
2021年2月27日 12:48:34
出现问题:1.物流渠道提示:该物流渠道不允许线上发货!;
2.在js中使用??运算符报错;
解决方案:
1.这种一般是渠道代码错误,跟物流商确认;
2.个别浏览器不支持这种写法
2021年3月5日 09:42:16
首页查询,新增了一个查询条件去匹配备注中的某段文字,我理解为:既然要选这个条件,肯定是需要查询那段文字,然后就只做了:选中条件,直接模糊查询备注字段
出现问题:查询的条件有是否,做的时候没有考虑否的情况
修改:
case '15': // 是否配送合并计划
if($is_yes == 1)
{
$where[$alias['pkg'] . '.remarks'] = ['LIKE', "%配送合并计划%"];
}else{
$where[$alias['pkg'] . '.remarks'] = ['NOT LIKE', "%配送合并计划%"];
}
break;
2021年3月9日 15:20:33
最近工作有点少,出的bug也少,有点飘,复制来代码,一看能运行,直接提交,逻辑也没细看,结果,更新的时候还带着id,只存了创建人的姓名没存id,姓名不存在的时候居然存了之前的创建人姓名(id与姓名对不上号),自我感觉没问题,被问到的时候居然还理直气壮的解释了这个写法的用意…臊的慌…
2021-03-30 20:52:48
完成是什么?我一直以为是功能实现,今天发现是每一行代码都跑过,正确或者错误,得到了想要的测试结果。
一直以来奉行的是能跑就行原则,写个数据,运行,出结果,ok,在写个错误的数据,返回错误的结果,完美。这样一直忽略了数据来源问题,数据是自己造出来,而真实的生产环境生成,就会出现测试没问题,一跑就完蛋的情况。
今天就是流程都跑通了,但是header中的参数传错(后面发现只要那个参数不为空接口就会返回success),虽然没有返回我想要的数据,但是看返回信息结构与文档一致,ok,一定是发货时间太短,没有来得及生成,等等就行提交完事。
提交之后被组长发现错误指出才明白,对header中参数理解错误,一字之差,天真的以为文档作者和我一样不严谨,侥幸以为是一个意思。
2021-08-04 16:41:54
好久没写,是有些飘了,记录一个今天的错误。
需求:欧盟国家海关编码必传。
错误:1.没有弄清数据结构,循环报错;
2.没有去除海关编码两测的空格导致验证不通过,加个循环的vlaue前加个&,既能验证,又可以直接修改原数据,省去业务因空格原因去修改数据;
3.逻辑乱了,数据验证不严谨, 循环错误的数据,粗糙测试就过了
if(in_array($data['countrycode'], $this->eu_country)) //判断是否为欧盟国家
{
$no_hgbm_sku = [];
foreach($data['goods'] as $key => &$value) //循环商品详情数组
{
if(isset($value['goods_sn'])) //判断是否为组合sku
{
$value['goods_hgbm'] = trim($value['goods_hgbm']); //去除海关编码两边的空格并替换原数据
if(empty($value['goods_hgbm']) || strlen($value['goods_hgbm']) < 6 || is_numeric($value['goods_hgbm']) == false)
{
$no_hgbm_sku[] = $value['goods_sn'];
}
continue;
}
foreach($value as $combine_key => &$conbine_goods) //为组合sku验证
{
$conbine_goods['goods_hgbm'] = trim($conbine_goods['goods_hgbm']);
if(empty($conbine_goods['goods_hgbm']) || strlen($conbine_goods['goods_hgbm']) < 6 || is_numeric($conbine_goods['goods_hgbm']) == false)
{
$no_hgbm_sku[] = $conbine_goods['goods_sn'];
}
}
}
if($no_hgbm_sku)
{
$sku_str = join(',', $no_hgbm_sku);
return $this->back(0, "SKU【{$sku_str}】海关编码为空。欧盟国家海关编码不能为空且必须为大于6位的纯数字,请联系产品开发修改重试!");
}
}
}