磨刀不误砍柴工,聊聊旧系统升级改造那些事儿

记得刚刚工做的时候,头儿告诉我说,程序猿三件宝:文本编辑器、VBA、正则表达式。熟练使用一种文本编辑器,学会VBA和正则表达式,会给你平常工做带来不少便利。正如咱们当时所在的w项目,不少代码转换,所以有着大量的文本处理,须要统计,发现相同问题的代码要写VBA工具去批量改正,这个时候用文本编辑器的行编辑功能就能很快把相关文本修改为相同格式便于用VBA工具作进一步处理,从而提升效率,减小手工修改带来的手误。java

在前面讲到在系统升级改造的时候若是涉及到代码的统一转换升级,制定了相关的代码转换规范,当代码格式命名足够规范的时候,经过开发工具,将特定格式的代码根据相关规则了转换成相应的代码,是能极大提升转换效率的。就如同咱们在W项目里面作的,将COBOL,JCL和CICS MAP文件进行转换,IBM COBOL转成MF-COBOL、VSAM文件操做转换成对Oracle数据库的代码,JCL转换成bat批处理文件,CICS map转换成jsp。经过VBA工具的开发,将重复机械的代码转换变成工具自动化处理,并标示出那些须要手工修改的地方,它能在几分钟内将上千份源代码文件处理完毕。程序员

wKioL1dzdD7yk3jCAAJpyC6MQGY436.png

从上图咱们就能看到在这个项目的代码转换过程当中就使用了COBOL转换工具和页面转换工具,将须要修改的代码进行相应的转换,以适用于下一流程的工具所需输入。在此项目当中咱们开发了各式工具超过30种,这些工具备力的支持了咱们代码的转换工做;甚至在当时项目未采用bug管理系统的时候,全部bug都是使用excel文件进行管理,但一个个文件难以详尽统计其分类,查看其修正进度和具体缘由,因而咱们又开发了统计分析Bug报告的统计VBA工具,经过使用VBA读取标准的格式下的报告,进而统计输出咱们所需的报告。正则表达式

对于项目工具的开发,有着如下几个步骤:数据库

wKiom1dbgf-BIN9VAADETRpOmXw855.png

工具的开发对于软件开发来说,咱们都是站在前人的肩膀上前行,如同各类各样的框架,它们也是工具,所以学会使用工具,进而创造工具,甚至开源本身的工具以造福更多人。在项目开发的过程中通用工具的开发,每每已经成为项目核心成员天天要作的工做,在解决项目痛点的同时,提升劳动效率和下降项目风险有着关键的做用。网络

如同我参与的一个GIAS级项目,在转换客户的客户化程序的时候,客户出于方方面面的缘由未及时提供原有系统界面截图,致使咱们转换后的页面没法知晓其原有页面布局及相关须要显示的字段,是的客户化程序的转换停滞不前。我基于前面W项目的工具开发经验,使用VBA开发了RPG MAP转HTML的工具,解决了客户不能提供具体程序截图的这一问题,使得项目可以继续推动。数据结构

在大公司里面,开发工具更是做为一项重要任务,但切忌用力过猛,在合适的场景下它是工具,在不合适的场景下,它也许会成为项目的障碍。我曾参与了某公司的一个代码生成工具的开发,开发它的目的为了解决公司项目开发当中的一些共通问题,好比由于业务变化快,数据架构师改了数据结构,程序代码来不及改。它主要功能是将ERWin生成的数据结构生成对应的java代码,SQL脚本,配置文件等等,且在通过少量配置就能运行的工程,相似Spring ROO这样的生产力工具。这个工具想法很好,从V1一直作到Vn,通过了一、2×××发,你们以为还不错,前面一、2代在公司项目当中也作过推广,有些许使用的项目,反馈并非特别好。架构

因而项目架构师开始构建新一代的工具Vn,前先后后作了两年,效果也出来了,不少地方确实达到了以前预想的结果。可是我后面发现没有项目愿意用它了,没有了上层的推进是一方面;在另一方面,作的过于复杂也是其不受欢迎的缘由,使用者须要花费较长的时间来学会使用它,并且它生成的代码过于复杂在调试的时候尤为不便,作成了大而全的东西,至关于本来咱们只须要一个小小的手推车,结果他给你造了一辆重卡,虽然能知足你的须要,可是使用成本维护过高,且学习曲线还陡,没有咱们项目的人对其进行培训,其余项目的成员难以自行使用。框架

重复造轮子自己没有错,造合适的轮子才更有意义。大公司有钱能够任性,采用跨国团队开发一个巨无霸工具,虽然某些指标比流行的ORM框架要好,但到头来却没有多少项目采用,未免使人唏嘘。机器学习

所以开发工具亦有如下几条值得注意:jsp

wKioL1dbg1nQIFeiAAIBWCJCysE500.png

学好和利用工具是咱们程序员的必备素质,偶尔在生活中也是能够帮家人朋友处理一些棘手的事情,好比个人一位朋友接手管理某酒店的工程部,可是工程单仍是传统的excel管理,一样的统计监管要求使得他难以一份份的去查看下面工做的状况,所以找我为他写了一个VBA工具,解决了他工做中的难题。

此外还能够成为泡妞神器,帮妹子解决一些工做上的效率问题,写过一个自动化生成游戏NPC名字工具,经过配置瞬间生成一系列,成千上万个NPC名字供她挑选啊, 亦有经过解析游戏文案excel,自动生成对话Lua脚本的工具,这些都极大减小了妹子加班的时间啊。看到了妹子崇敬的眼神了没?

做者介绍

王巍,涟拓网络架构师,先后就任于Achievo、IBM、HP,关注前沿技术,分布式系统架构,组件化系统开发,机器学习和大数据,如今创业公司负责系统架构,乐于与你们一块儿聊聊架构。

相关文章
相关标签/搜索