三点学习的启示


这是学习笔记的第 1950 篇文章


  今天有三点学习的启示,要说启示,必然会有相关的背景故事。

第一个:模糊的标准可以给出示例,共同提高

今天在处理一个业务需求的时候,发现开发同学的需求写得比较详细,但是过程不够专业,从我们的角度来说,提交的脚本应该是可以执行的。但是这位同学提交的是一些文字的描述,从描述和过程来看,他对于里面额数据导入过程不太熟悉,他知道需要使用LOAD DATA命令,但是使用细节不大清楚。

所以保险起见,他加了一些描述:

附件中的数据格式样例如下:

        test|2|20170724|144|1|10

        数据说明:平台|包ID|时间|事件ID|数1|数2

在这种情况下,如果还是一味要求脚本可执行就有些为难这位开发同学了,所以我做了一个折衷的方式。

操作完成后,我把使用的命令发给了他,然后告知他后续如果有请求就可以按照何种按时来提交了。

命令内容如下:

LOAD DATA LOCAL INFILE 'test_data.log' INTO TABLE test_data     FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n'  (platform,package_id,cdate,event_id,uniq,num);
Query OK, 2619634 rows affected, 4 warnings (19.10 sec)
Records: 2619834  Deleted: 0  Skipped: 200  Warnings: 4

从这件事情的反应来看,开发同学是能够接受的,同时我们也能够把自己额标准适当降一降,在这种情况下,我们如果一味要求提供可执行的脚本,因为这种一种信息不对等的情况,效果会很不好,既然我们希望开发同学能够提交较为标准的SQL或者命令,我们给出一个模板或者实例,后续也可以作为一个切入点来推广。

第二个:看待事物的本质,找出更适合的方案

今天下午团队内部聊了下周期表的事情,本来从聊这个事情的时候,大家总体是感觉周期表是比较简单,但是如果展开来说,发现周期表的流程和体系是比较庞大的。

 周期表是带有时间属性的表,这个时间属性是能够被程序逻辑识别的。我们可以把一张表由普通标转变为周期表,那么我们就需要做两类事情,一类事情是周期表的创建,一类事情是后期表的删除。

周期表的创建可以是批量操作,如果中间因为系统稳定性和可靠性的原因导致任务执行失败,对于整体的任务情况不会产生影响,创建的幅度是建议为3个月以内,这样我们可以相对容易衡量业务的发展情况。我们可以统一配置周期表服务,这样就可以把实现方式统一,通过统一的配置化管理来统筹管理这些周期表,通过周期表预警和自动化工单来满足周期表的变更需求,而对于护具删除需求则可以通过类似crontab的每日执行频率来喊出数据,比如一个数据库test1的表t1需要删除,我们可以把它挪到数据库test2下面,按照这种积累的情况,我们可以适当的删除数据,这个频率可以缩小到以天为单位,这样一来数据就是一种流动的状态,而且是可持续改进的状态,当然整个过程中如果对这些流程不啊清晰,可能会觉得现有的手工操作也能够支持现有需求,但是如果把它作为一种服务,其实通过集成流程就会把这些看起来模糊的问题细化,做到可以衡量的标准。


第二个:找到一种较为合理的学习方式


对于很多技术而言,我们都有自己的一些学习方法,比如博客,图书或者搜索引擎,但是我们其实很容易忽略一个重要资料,那就是官方文档,比如Python学习,我们如果不参考官方文档,通过一些博客文章等,得到的结果是相对碎片,在这里还是建议有更系统的学习,比如对于时间的处理,有哪些可供调用的方法,通过官方文档我们可以得到较为准确的信息,可以通过文档的相关性进行关联学习,这是一种相对体系化的学习方式。
比如可以推荐几个链接:

Python官方文档,2.7版本,可以下载文档。

https://docs.python.org/2.7/download.html

Lua在线文档

https://www.lua.org/ftp/#manuals

MySQL源码文档:

https://dev.mysql.com/doc/dev/mysql-server/latest/

MySQL内核文档:

https://dev.mysql.com/doc/internals/en/




640?


猜你喜欢

转载自blog.csdn.net/weixin_36250635/article/details/89369212