|
原帖由 newkid 于 2011-2-15 22:59 发表 ![]()
你相当于做了一个报表工具,这里使用动态SQL是不可避免的。
至于这个业务规则引擎,现在做到哪一步了?你不妨拿些简化的例子出来讨论一下。必须承认做这类东西对一个爱动脑筋的程序员是很有诱惑力的,但是结局一般都不乐观:
1. 随着需求的深入,抽离的业务逻辑越来越灵活,到最后你相当于发明了一种语言,这种语言世界上只有几个人能懂。配置元数据比写程序还复杂,比程序还更看不懂。
2. 一不小心没配置好,这个规则引擎就会产生怪异的行为。
3. 配置的组合是无限的,但是你只能对其中的某些做测试,其他的只好听天由命。
4. 引擎部分的代码极其抽象,作者要能知道它会生成什么代码,那些生成的代码又是如何运作的。到最后只有作者本人能够维护这个引擎,其他人不敢动。
5. 有很多临时产生的需求,来不及修改殷勤,就采用元数据+客户化代码的方法。到最后, 客户化代码越来越多,因为大家发现这是解决问题的最佳方法!
这正是我参加的数个项目的真实写照,那些语言被用户学了又扔了
因此我现在也不学了,只学sql..
application with software come and go, data will live longer |
|