上一篇:吴恩达机器学习笔记-1(2019-03-24 23:26:22)
文章大纲

20分钟的工作被折腾一天的心得

2019-04-03 00:03:39

从昨天上午,接手一项任务。

了解是怎么一回儿事,并开始写脚本,一上午就过去了。

下午接着写,跟负责人确认,人家说有专门写文档指导我要做什么,我领到文档的时候是下午四点左右了(上午负责人不在)。

前面整个流程就不吐槽了,最终任务就是:将excel表里数据按照他的要求调用接口推送数据。


估计是一整天被搞晕乎了,最后弄清楚就是遍历excel数据,一条条调用接口推送就ok了,然后我就热血上涌的立马开干了,之前写的也就无需用了。


接着就记录,我是如何把自己一步一步埋进自己挖的大坑里去的,希望自己能够吸取教训。

1.收到Excel数据,要推送的统计数据,被我不小心用其它列数据给覆盖了,导致自己导入用的单期数据,而不是统计好的。

心得:任何接收到的数据文件,记得先备份


其实覆盖的那一片刻,我就想回退来着,但工作老被打断,导致回来没接上,结果直接用错了列数据,用到单期数据了,因为也没看到统计的数据列(被我覆盖了)。

心得:立即响应也要有自己的内心度量


2.数据有一列是用户手机号,要根据手机号推数据。Excel里手机号是有重复的,我却脑子短路的把它作为了数组key值。相比埋怨上面被打断,这一步也折腾得自己够呛。完全就是脑子短路,事后也不明白为啥我非得要给数组安个key值,这个算是工作中必须考虑的难免偶尔犯傻的范畴吧。


3.针对第1步失误,要补数据,按(期数-1)*单期数据重新补送了。没想又来个份额。

这主要还是第1步导致总统计数据丢失,才造成这一步还不能将数据补送到位。


4.因为第2步的失误,开始找出遗漏的数据。我昨晚为了想尽快解决问题,居然人工对着300多条数据进行比对判断,然后重新补送数据。今天检查当时补送的数据,发现还是有问题。

心得:数据量没小到20以内,千万不要犯傻的用自己的肉眼去判断。程序员不仅得想法设法尽快的完成任务,但也得尽量保证正确性,而人工的正确性不可预估。


5.今天把推送日志里数据,全部手动批量处理又插入到数据库了,然后group by手机号求和,用两个临时表,一个存储导入的值,一个存储excel里要求要导入的值,然后按手机号join一下,就找出了补送出了问题的用户。

心得:批量执行数据导入推送,一定要在执行导入脚本的时候,就将记录存储到db里,这样统计查找就都很方便,就不用还多一步骤的处理日志文件里的数据,然后又将日志数据导入db。


还好以前操作过sublime text的列编辑,为我转移日志的数据到db的工作提供了很大帮助。

下面是超好用的Sublime Text多行编辑的快捷方式:

1,鼠标选中多行,按下 Ctrl Shift L (Command Shift L) 即可同时编辑这些行;
2,鼠标选中文本,反复按 CTRL D (Command D) 即可继续向下同时选中下一个相同的文本进行同时编辑;
3,鼠标选中文本,按下 Alt F3 (Win) 或 Ctrl Command G(Mac) 即可一次性选择全部的相同文本进行同时编辑;
4,Shift 鼠标右键 (Win) 或 Option 鼠标左键 (Mac) 或使用鼠标中键可以用鼠标进行竖向多行选择;
5,Ctrl 鼠标左键(Win) 或 Command 鼠标左键(Mac) 可以手动选择同时要编辑。



虽然期间不知为何犯傻,但有些做得算是到位的也记录下,所以问题发生了,也不算糟糕到无法挽回的地步:

1.脚本带了备注参数,每次执行推送,都加了备注,还带了数据类型的参数,这为自己分辨日志提供了大大的好处:在这一段日志里我是因为什么原因导入的哪张excel表的数据。

2.无论成功失败,都有添加记录日志。推送期间有一两笔curl推送失败,还要加了失败日志,可轻轻松松把数据补送。还好也有成功记录日志,不然后面让我找出我遗漏掉的数据,简直就是抓瞎了。


最大心得:能尽量用db存日志的,优先用db,这样查找成功失败,统计总和,与数据源比对等等,都快速很多,就可以尽快锁定导入出错的记录早点下班啦。



上一篇:吴恩达机器学习笔记-1(2019-03-24 23:26:22)
我要评论
评论列表