[转载]我们能提高工作效率

[转载]我们能提高工作效率 – Vincent.Q – 博客园.

作为软件公司,客户需求每天都会出现,帮助客户实现需求也是必须的,否则就要喝西北风了.如何处理这些需求,如果快速简便的处理这些需求,成为每个 软件公司所要面对的事情,如果你的客户需求响应时间多于你的竞争对手,那客户在下一次选购产品时,我们可能就会因此失去竞争力.

客户的 需求也是五花八门的,本人目前只接触过ERP和HIS软件,因此可以归纳为管理类软件,即和Db数据库打交道.总体可归纳为两种,即:功能需求和业务需 求.分别举个例子,功能需求是指将datagrid所展示出来的数据,导出至excel文件或者将excel文件导入至Db中.业务需求是指增加一张检验 单或检查单.

这里只讨论业务需求的处理,因为功能需求相比业务需求来说,它的范围是有限的.比如框架只需满足这些功能就可以了,如果有 额外需求,可以通过功能的叠加处理,因此,它是容易掌控的,只要有一套经过几年积累的框架即可.

业务需求我们无法掌控,因为我们不知道 客户现在在想什么,以后怎么想?可能有人会说,那是因为我们对客户的行业需求不清晰.是的,没错,相当正确.可是,目前中国的IT公司大部分都是在摸着石 头过河,这里面有政策,市场,行业规则等很多因素控制,总之,不是我们所能控制的,所以客户提出的业务需求,我们只有及时的解决和回复,才能在目前的市场 中站稳脚根.

业务需求相对Db来说,就是增删改查的功能,如果再细化的话,其实是可以归纳为很多功能需求的集合.举个刚才数据导出的例 子:现在客户要求客户ID字段值也要求导出!

接下来,我们的流程可能是这样的

1. 找到调数据导出功能的页面,然后找到该功能代码

2. 在代码中加入客户ID栏目值

3. 将代码所属pbl生成pbd或者dll文件,再提交至质保部

4. 质保部对该需求测试,测试成功再给客户发升级包

以 上,该需求已处理完成.

我们现在采用另外一种处理方式来看看可不可以节省时间

1. datagrid控件的展示数据功能,我们对此进行拆分.,它所需要的SQL语句和栏目属性是不同的,其他功能完全一致,比如数据需要导出和导入,数据检 索等.

2. 我们将不同的部分,即容易变化的部分封装起来.其实我们在编码过程中,要创建一个类,也就是这个原 因,将容易变化的东西封装起来.

如图-1所示:将datagrid控件所需的数据源单独存放起来.

clip_image002

图-1

如图-2所示,将 datagrid控件所需栏目格式单独保存起来.同时,也可以配置哪些栏目需要导出或导出,是不是下拉菜单等.

clip_image004

图-2

3. 经过上述步骤的处理,我们回头再看看那个导出需求如何处理

a) 首先,在图1所示的SQL数据源中加入此字段

b) 其次,在图2所示的栏目属性中加入此栏目信息

经过以下步骤,整个需求解决过程结束.我们看看省略了那些步骤:

a) 修改代码的过程

b) 交由质保部测试的过程

c) 发客户升级包的过程.因此,修改配置文件只需实施员参与即可.

下面,我们再谈页面的功能,看看有什么能够优化的?页面如果根据功能划分的话,可分为以下3个页面

l frmSheet祖先页面

l frmSheetBill,单据页面,维护单条数据

l frmSheetList,列表页面,展示批量数据

也有很多其他功能不同的页面,不过,都可以在此基础上扩展.我们以列表页面为例,如 图-3所示

clip_image006

图-3

1. 最上面是工具栏,属于功能区

我们通过图-4所示的方式加载工具栏即可.它可以将一个页面所需的功能全部通过字符串的方式存储起来,以后 若是对功能名称有所增加或删减,通过修改配置文件即可,如图-5所示.需要说明一点:如果功能的流程有所变化,还是要修改代码的.

clip_image007

图-4

clip_image009

图-5

2. 中间是检索区域,提供常用检索条件,如果是比较复杂的检索,弹出高级检索页面即可.

创建一个自定义检索控件,可以动态生成检索控件即 可.这里说下检索方式,前面提到的数据源SQL语句,一般是select … from ….很少有where条件,那如何加载数据呢?如图-6所示即可

clip_image011

图-6

3. 最下面的datagrid控件,展示批量数据.

首先加载栏目属性,其他次拼接检索条件生成dictionary对象(可理解为 where条件),通过倒数第二行代码生成datatable,最后加载至控件即可.看这个方法,专属于这个控件的代码相当于,目前只是收集检索条件(也 是可以封装成控件的),其余部分均是公用的.

我们再看看工具栏的事件是如何处理的,如图-7所示

clip_image012

图-7

规范的命名,清晰的功能 名称,一看就知道该功能是做什么的?开发员不必再单独创建额外事件,这样方便问题查找.

我们再看看对方法集的封装,如图-8和图-9所 示

clip_image013

图-8

clip_image014

图-9

通过以上方法的封装, 比如有功能需要从xml文件读入数据,只须调此方法即可,不需要自己再单独写方法,不是很方便?而且也容易维护

我很期待中国什么时候能 出现一个非常完善的中间件(也可理解为某个行业软件的开发平台),来结束这种各自为战的局面.现在的IT企业,可能每个企业里都会有一套所谓的”框架”, 这样就重复造了轮子.我也想了很久为啥软件公司不用其他公司专门的框架,原因有如下几点:

1. 自己造的轮子,心里踏实,想什么时候改选,就什么时候改造

2. 体现公司本身的研发实力,本身就是开发软件的,还用其他的,太跌份了

3. 有的软件公司把自己的软件比作是自己的孩子,所以,大家都喜欢亲生的,不喜欢领养或别人生的,呵呵.

以上谈论,都是个 人歪谈,若引起某些人的共愤,还请见谅.希望我上面写的东西能给大家一些参考吧.

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏