文档处理软件

文档处理软件

寒假在机缘巧合下接受了某公司(以下称x公司)的一个外包任务,需求肯定是刚性需求啦,也是我第一份带合同的实习工作.


背景:

AI时代数据为王,数据集如同石油一般成为了当下企业的新动力,而未经过清洗的数据如同原油一般,不仅无法发挥其价值,贸然使用不可避免地会造成不同程度的污染.所以,经常在实验室被安排各种繁琐重复任务,有着良好'偷懒习惯',连标注20几个站点名拼音都得写代码实现的我有幸接手了这个软件的开发.

准备:

介于受人钱财,我一开始就没打算把代码开源,而且这是我的第一份正式实习工作,我自然不敢怠慢.考虑到x公司可能需要源码,自己平时用的gittab有不能在外网访问,github又不打算充钱,我特地注册了个账号并写了个gittee(免费,公开)自动上传脚本(没用官方接口,而用的爬虫,这有点low,源码好像传过github,下次作业可以写写);又考虑到数据集为word格式,我又安装了docx模块,学习了相关文档.并写了第一份需求分析文档,对方只要做下简单的选择然后提供一些材料就行...准备了不少了,实时证明,这些都是然并卵系列.

然而,不知为何,x公司并没有考核我的编程能力,第一个主要任务是让我做一个带GUI的window下的数据清洗软件,而且要求qq发源码.emmm,我一开始想象的是我写的脚本封装成服务后运行在linux下,配置部署好后根本不需要监管的那种.至于需求分析文档,忘了它吧.我最终还是靠面对面交流完成的.有三个需求,这里主要讲第一个:x公司收集到的数据是word文档,由于不可避免的认为失误和编辑器的不同,抑或更原始的数据质量参差不齐,收集上来数据会有各色各样的纰漏和格式错误.我需要写一个带GUI的软件整理这些数据,使其达到客户要求.

着手:

我还是太年轻了,第一个任务向对方报了4天时间(不知道什么原因扣钱很厉害),而上一个做了相似半成品的人拿了进一千.经理虽然不是学软件的,但听我报的天数后给我加了不少,我也确实用了不止四天.

虽然是半成品,我上家的源码还是有参考价值的.虽然不是很完美,但看得出来作者有较好的编程习惯,下意识地使用了面向对象思想,考虑到了多线程运行时绝大多数需要加锁的情况,对异常处理也有一定了解;缺点也不少,ui设计反人类是第一条,其次是界面丑,深入了解后还发现由于部分代码执行时缺少必要加锁操作,存在幽灵bug,代码逻辑存在很多不合理影响效率的地方,很多功能没按需求实现(继承他的需求文档帮我省了很多事).最最让人鄙视的是那一行time.sleep()的注释,赫然写着'为了让客户加钱'.稍微注意点有很多地方可以优化提速,却把精力放在坑钱上.不过也许只是一时兴起开个小玩笑而已,不然不至于这么明显.

清理逻辑蛮复杂的,实现全部需求花了我3/4天时间.其中比较得意的是段落格式设置,一个上家写了很长代码还没很好实现的功能,我直接把格式设置好保存模板,几行代码调用便完全实现.其它逻辑复杂繁多,也没啥好讲的;前端界面重写,没有浮夸的色彩搭配,人性化的交互设计,如果不当程序员的话,我也许是个设计师...好吧,用的就是那种很原始的界面色彩,但结构合理了很多.我很少写ui,这本应该是我耗时最多的部分,事实上,我用vb结合tkinter一天就完成了.还有点上瘾.接下来就是优化了.

交付:

听说后面需要慢慢改需求,也许问题不大.
gui

posted @ 2019-02-26 08:58  肝之炼金师  阅读(99)  评论(2)    收藏  举报