`
ske3
  • 浏览: 10126 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

我的两年研发工作之路(二)——最原始的设想3

阅读更多

    特性3:工作流的应用。

    关于这个没什么好讲的。相信大家都知道。

    特性4:数据流的应用。

    呵呵,这个就有得讲了。我不知道业界对数据流的定义,但我对它定义是:数据处理流程。像我这种做信息系统,其实就是将用户录入的数据,经过一定的逻辑处理后,放到数据库中。那么如果我们将数据的逻辑处理过程分解成N个小步骤,然后像工作引擎一样将他们串连起来,那就形成了数据流。比如说,用户在输入了其当月的税前工资,通过系统自动计算其当月实际拿到手的工资;那么我们就有以下这么一段逻辑:

    a、计算其应缴的税

    b、计算其应缴的公积金

    c、计算其应缴的养老金

    ……

    最后,计算出实际拿到手的工资。

    那么,我们将a、b、c等逻辑做成一个个小的组件,然后使用数据流引擎将这些组件根据先后顺序串联起来,如果复杂的话,在加上适当的分支,就像我们配置工作流一样。

    这样的话,我们软件不久很灵活了。如果,那天国家说不用交税(当然现实中这是一个美好的梦)了,我们只需要将数据流的配置文件进行修改即可,无需在修改代码了。

    不过说实话,这个特性最终没有在我的后续版本中实现。至于没有实现的原因,到是不因为没有找到对应的开源组件(其实有个俄罗斯的开源组件就是来处理这个的,其内部引擎是JBPM,它将JBPM进行二次开发后,做成了一个数据流组件)。原因是:我公司的业务实在是没什么逻辑好处理。基本上是,用户输入什么,就保存什么到数据库中;然后,通过ETL工具来进行复杂的逻辑运算。所以,数据流最终没有用起来。

    当然,我也考虑过将ETL工具内嵌到我的平台里,用它来做数据流的引擎。我还找到了一个能用的ETL,不过人家要买钱的,因此也就罢了。不过那个ETL软件好像是中国人开发,我是在学习Kettle时,在它们的论坛看到的。呵呵,为中国的程序员一下自豪。(大家别笑我傻)

    特性5:Ajax

    我们当时引入Ajax技术的目的不是为了界面好看,而是为了节约软件的成本。那要如何才能节约成本呢?原型复用!这个在特性1里面已经提到过。是的,我们在做需求调研,为用户做的原型都很漂亮,也花了我们UI设计师不少心血,这么好的东西怎么能丢弃呢?要复用这个纯HTML的东西,那么我们就抛弃了Structs、JSF等框架,亦然选择了AJAX。

    特性6:面向组件的编程

    由于之前我们公司是以项目的方式进行运作的。导致项目组与项目组之间没有相互的联系,当一个项目结束时,项目组也解散了。故而导致没有一个成果留下。所以,将这个特性也加到了平台特性里来了。

    特性7:DSL(Domain Specific Languages)

    呵呵,可以告诉大家,到目前还没实现。没实现的问题也不是出在技术上,Drools已经支持DSL了,而且作为规则引擎Drools也是我们需要的。但是,由于自身公司的不成熟,很多分析、设计人员还不了解DSL,而且公司的业务积累也还不够。故而,中途夭折了。

   

   OK,到这里,基本上将我2006年初对平台的一个规划总结了。这些最初的设想,在后来还做了很大的变化。这些就以后再说吧。

   <未完,待续……>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics