博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跟用户沟通,问题尽量分析清楚,以及解决问题
阅读量:6526 次
发布时间:2019-06-24

本文共 1161 字,大约阅读时间需要 3 分钟。

分享一下上个星期,开发与跟用户沟通历程。

前提,以前旧系统,人事资料是一笔笔人手录入。现在公司在减少人手,提高效率。因此Insus.NET需要修改旧系统,实现批量导入。
下面一些截图来自邮件。
经用户使用之后,还有一些特殊情况是在开发时是没有想到的。当遇上下面的资料时,用户反馈:
原因是有旧系统内,存储雇员工号,只能存储整型。看到用户反馈的问题,我们会想到什么,怎样回用户的邮件?下面是Insus.NET的回复

从用户提供的数据。我们需要知道第位字母由什么来替代?替代规则是什么。这都是需要跟用户了解清楚。下面用户回复:

上图中,与用户了解到,打少了字,正确是“四五百人”。
经分析,第一位和第三位,如果有出现字母是没有什么问题,Insus.NET觉得第二位,将会出现下面的问题,回复用户如下:

从上面回复中,跟用户说明替换规则将有一些异常,得说清楚。看看用户怎样回复:
问题弄清楚之后,我们就可以做事了。
第二位将会有A~F,将替换为1~6。可以创建一个列表:

 

某一天,用户需要再添加几个G,H,I...只是在J以前的,还可以在此列表添加。

下面是替换方法:

 分别处理前三位字符,符合条件即替换之。看上去很复杂,维护起来看代码还得看上半天,产生另外一个版本:

第二版本,稍微有些简化。方法是先把处理的字符串切割为两段,前三位字符串为一段,余下为一段,并存入阵列中。然后跟一种方案一样去判断与替换。

 切切拼拼,还是觉得复杂,是否有更好的方法? 下面分享Insus.NET第三次修改的,需要做的,是写一个方法,也就是产生一切相关的字符,然后用来匹配。此方法算得上是封装:

 

 我们再回过头去看用户提供的原资料,要么是两位,要么是三位字符。第一位与第三位算得上是固定了。关键在于第二位。因此Insus.NET再创建一个字符模版集。

下面再来看看替换方法:

上面的代码示例中,高亮部分的代码,是对Dictionary数据集时行倒排序,目的是先匹配三位,再匹配两位。经过这样重构与修改,我们还可以封装为另外一个方法:
最后变成了:

OK,完成了。

下面内容于2014-06-30 10:55分补充:
其实上面有一个方法:

是需要手动每个字母,这样有可能会出错,下面是Insus.NET重新修改,防止出错的机率减少:

这样只需传入最后的一个字母,也达到方法封装。

 

下面内容于2014-08-13 13:45分补充:
上面有个方法GetReplaceResult(string str),可以效率优化一下:
它是有带有字符的才会跑这程序块,如果遇上全是数字的字符串,我们就不必跑了:

还有一个方法replStr()效率也有问题,如下:

 

其中有循环两次Letters(),意味着它需要产生两次这个函数。因此Insus.NET把它重构一下:

 

 

转载地址:http://pbjbo.baihongyu.com/

你可能感兴趣的文章
Linux学习之CentOS(十八)--与Linux文件和目录管理相关的一些重要命令②
查看>>
vim一些挺方便的功能
查看>>
开源Java时间工具类Joda-Time体验
查看>>
如何新建UML2项目?详细操作步骤介绍
查看>>
[精讲17] 组策略
查看>>
控制流
查看>>
interlij的快捷键
查看>>
如何在Rancher上运行Elasticsearch
查看>>
shell 找出数组元素中的最大值
查看>>
Vmware虚拟机linux系统混合模式上网
查看>>
MySQL在导入的时候遇到的错误
查看>>
存储初创公司Datera带着Amazon EBS走出隐身模式
查看>>
纵观视频监控市场这几个方面值得关注
查看>>
北大访问教授吴霁虹:如何把握AI产业化机遇并建立竞争优势 | CITE 2017
查看>>
LINUX 常用命令整理
查看>>
【云周刊】第134期:阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景...
查看>>
iOS 位枚举
查看>>
关注ERP之根,基础数据的准备
查看>>
中兴计划2017年泰国收入实现50%的增长
查看>>
德国禁止Facebook利用WhatsApp用户信息:没法律基础
查看>>