6.1 书恨少
阅读提示: 书到用时方恨少,感觉自己已经很厉害了吧,能做几个页面,知道MVC的概念就以为自己掌握了J2EE吗?编写几个结构紧凑的程序就以为自己掌握了设计模式了吗?知道了struts、spring框架就觉得天下任我行了吗?再厉害点,了解了新的动态语言Groovy和Grails框架,就觉得自己真正懂得MVC的精髓了吗?回头看看吧,这里的领域是很局限的。能在linux环境下工作吗?懂得几个linux命令吗?会编写shell吗?编写的数据转换脚本高效吗?这些可都是现场割接数据转换必须的最基本的技能。古人云:活到老学到老,有他的道理啊,虽然我们现在站在了巨人的肩膀上,可是我们接触到的天空却更广阔了。 读这段注意以下内容: 1、 主动要求没有涉及到的工作内容,作为一个新人,主动的工作也能取得一定的进步。 2、 到现场做任何开发类的工作,都要注意保护好现场的数据,不要改动。 3、 作为现场负责人,应该注意考虑数据库用户的权限分配问题,从根源上杜绝犯错的可能性。 |
小菜和一个资深的数据转换专家小张一起到了被誉为“天府之国”的城市。要在这里展开一轮小菜不曾经历过的战斗。对于第一次坐飞机的小菜来说,路途上的一切都是惬意的,然而最令小菜感到欣慰的还是自己的女朋友非常理解自己出差的这个机会,并且主动为自己准备了送行晚餐(虽然是在小点的饭馆里进行的,也够小菜飘一阵子的了),还送自己到机场,叮咛有加。带着新奇、激动、兴奋、刺激、依恋、难舍等复杂的心情,小菜出差了,也圆了大学时代的一个梦。
小菜出差到现场主要的任务就是协助小张老师做数据转换工作,用PSM王老师的话说,小菜对业务的大概了解了,但是具体的细节还是欠缺的,而数据转换要求的就是细节,细节到每一个表,每一个字段,甚至是字段的长度定义,私下里还嘱咐小菜多向小张学习,学习他做事的方法,等着听小菜凯旋的号角呢。
在小菜他们到现场的时候,现场的负责人已经给他们两个安排好了住宿地点、工作地点、使用的数据库环境等,来了就可以开始工作了,丝毫没有耽误。小菜觉得这个部门的整体协调能力还是很强的。
小张老师给小菜大概讲述了一下接下来的工作事项,他们两个接下来的半个月里,需要给出数据转换的全套脚本,半个月后要经过3次的模拟数据转换,到时候还会有其他的人来帮助他们,比如测试人员了,模拟是为了统计一些数据,比如:数据转换需要多长时间、数据的准确性等。主要是为正式的转换做详细的计划,以保证正式数据转换的顺利进行。同时还要给出割接回退的脚本,以便在出现非常异常的情况下,将系统回复到初始状态。小菜不理解的是写脚本为什么要到现场来呢,在开发中心也能写呀,小张老师的回复是:现场的环境一切都是真实的、具体的。还特别嘱咐小菜,登陆现场的数据库不要做任何操作,只能看,可别乱修改犯错误了。小菜苦笑,现场负责人给我们分配的数据库用户只有阅读的权限,根本没有修改数据的权限,想犯点错误都难。
开始编写数据转换脚本了,小菜主动要求小张老师给自己分配点自己接触的比较少的部分,以便多方位的锻炼,小张老师看了一眼小菜,点点头,拍拍小菜的肩,小菜明白,这是鼓励,意思呢大概就是“孺子可教”吧。写数据转换脚本基本都是写存储过程,将数据从几张表关联查找必要的数据写入另外的表中,或者将一个表中的数据拆分成其他表中的数据。说起来容易,做起来可确实也不简单,尤其是这个系统比较庞大,表比较多。小菜很用心的写好了大体的框架,小菜觉得,做这种事情就像是盖房子,先搭好轮廓架子,然后该砌面的砌面,该盖顶的盖顶,该装玻璃的装玻璃。很快小菜写了个大概,趁小张老师空闲的时候拿给小张看看自己的成果,小张大概的看了一下,指出小菜丢掉了一些部分,有的地方分支缺少。告诉小菜,你先别忙着写代码了,先画个流程图吧,数据从哪里来的,怎么进行的判断到哪里去了,你这样改来改去的,很容易丢东西,也容易乱。
虽然小菜心里觉得没有必要,还是按照小张老师的说法做了,先画个图再说吧。这一画图可不得了了,小菜一下子感觉醍醐灌顶了,原来有一些似是而非,恍惚不清的东西,因为画图必须得标明,不得不明确的定义下来,原来这些东西是写代码的过程中考虑的,现在将这个思考的过程前移了,不再一会考虑代码的逻辑结构,一会判断数据的流向了,专注于一点更具有效率了。“磨刀不误砍柴工”这个道理说了很多遍了,什么时候能真正的理解呢,小菜是在按照这个图写代码的时候理解的。
时间很会捉弄人,越是火烧眉毛了,时间好像故意和你斗气,飞速的前进。半个月的时间在小菜紧张而又节奏的工作中要过去了,这期间小菜在小张老师的指导下,编写了部分数据转换脚本,也编写了自己对应部分的回退脚本,小菜觉得,转换和回退是一个互逆的操作过程。下周就要做模拟转换了。
小张分配下一阶段任务,数据转换都是在linux操作环境下进行的,linux下运行的程序叫做shell。也就是意味这小菜要编写shell了。这下小菜可傻眼了,linux的相关知识对于小菜来说可是处于启蒙阶段,说白了就是根本不懂。小菜一直觉得自己的知识挺丰富的了,一些框架啦,思想啦,知道的也可以车载斗量了,真到用的时候原来还是很少的可怜的。尤其是小菜上次在机房里看一个搞大型服务器的那个无名“专家”敲的哪些命令,天啊,自己一个都没有见过,从此后小菜变得虚心了。
小菜觉得一个有志于成功的开发人员,不应该总是停留在原地踏步,要不停的向前冲刺,不断的用新知识武装自己,尤其是现在新的技术每日千里的情况下,很快你就落后了。比如计划每个季度读一本技术方面的书籍、一本项目管理方面的书籍。。。。。。,至少要订购一个免费的刊物,直接发到自己的邮箱里,如果你还没有这么做,这里推荐一个吧(InfoQ中文网http://www.infoq.com/cn/)是个不错的刊物,会定期的给你发送邮件,里面的内容一般都是比较前卫的,不时的看看至少拓宽了知识面,刚开始看起来可能比较费劲,太多的概念都是陌生的,不要放弃,硬着头皮也要看,能懂多少懂多少吧,过了一个月、两个月,突然你发现自己一般都能看懂了,学习也是一个奇怪的事情,你难道不相信顿悟吗。请给自己每天至少留出一点半点学习的时间吧,工作间隙,别去遛弯、别去频繁的奔向WC、别去坐着发呆、别去聚在一起侃人是人非、别去吞云吐雾了,看InfoQ(或其他的地方)里面的知识吧,你会有意想不到的收获的,只要别书呆子了就行。当然这里并不是说缩小自己的生活圈,作为一个新人,重要的是充实自己,等有了一定的资本了再做别的吧,每个阶段都要有不同的目标。
友情提示: 1、 做事前先考虑一下怎么做,往往加快做的步伐,考虑虽然也需要时间,但是相对边考虑边做,有时候甚至是顾此失彼的做法,整体上还是缩短时间的,并且也有指导性。兵者云:谋后而动。你见过打仗也不看地图,不分析局势,带支人马乱打一气也能攻城略地的吗?你可别说韦小宝,那是金大师杜撰的搞笑情节。 2、 知识是无边的,一个人穷毕生也不可能学习所有的知识,不要怕自己的知识少,只要每天都在进步也就无愧了。千万不要今天觉得这个好,学几天,明天觉得哪个好,再搞两天。学就要学自己工作相关的,无关的只能作为了解,拓宽知识面,原因吗?工作最重要,你敢说不是吗? 3、 给自己编制一个学习计划,不说每天,每个季度吧,都有进步。 4、 遇到任务不要急着下手去编写代码,先画个流程图梳理一下思路,将可能的分支流程都想好了,按照流程图编码,可能事半功倍。开始这么做的时候可能觉得有点不适应,但是如果熟练了,肯定能体会到其中的奥妙的。 |
后面更精彩...........