W wen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-15 #1 十几個人開發一個系統,中間層應怎樣組織,一個中間層還是多個? 歡迎各位大蝦談談自已的開發經驗! 多謝!
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-15 #2 中间层的组织不看人的多少,而看系统的逻辑关系,拿出来大家看看吧!
W wen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-15 #3 多謝LeeChange ERP系統包括系統管理,總帳,應收應付,生產制造等等,有的部份是几個人開發,有的 是一個人開發,各部份之間又有數据關聯.請問這种情況如何划分邏輯關系和分割 中間層呢? 多個人總用一個中間層,應怎樣組織來提高效率?
多謝LeeChange ERP系統包括系統管理,總帳,應收應付,生產制造等等,有的部份是几個人開發,有的 是一個人開發,各部份之間又有數据關聯.請問這种情況如何划分邏輯關系和分割 中間層呢? 多個人總用一個中間層,應怎樣組織來提高效率?
C Crane Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-16 #4 我正好也在作此类项目,我们开始也按业务模块将中间层分开,但后来发现很麻烦!! 所以我的意见是,如果业务之间没有非常非常明显的界限,那么中间层的块约少越 好,这样便于组织数据,另外,最好是开发组横向开发,即每个人只负责一层.客户 端一定要只向服务端发服务代号而不是固定的Sql语句,然后服务端要有一个 服务命令维护表,不同的服务代号对应不同的Sql,这样才可实现真正的三层. 然后中间层如果多人开发,最好按功能模块分工,一些人作存,一些人作统计 一些人作报表等等.
我正好也在作此类项目,我们开始也按业务模块将中间层分开,但后来发现很麻烦!! 所以我的意见是,如果业务之间没有非常非常明显的界限,那么中间层的块约少越 好,这样便于组织数据,另外,最好是开发组横向开发,即每个人只负责一层.客户 端一定要只向服务端发服务代号而不是固定的Sql语句,然后服务端要有一个 服务命令维护表,不同的服务代号对应不同的Sql,这样才可实现真正的三层. 然后中间层如果多人开发,最好按功能模块分工,一些人作存,一些人作统计 一些人作报表等等.
W wen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-16 #5 多謝Crane的寶貴意見,請再作一下解釋: 服務命令表是以什么形式存在?能舉個例子嗎? 謝謝!
C Crane Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-16 #6 你在库里建一个维护表,字段有:服务号,SQL语句,然后加用到的sql语句全添到 此表中,编号,客户端向服务端发服务号和辅助信息比如要替换的内容等.服务端 先解析此服务号,再执行相应的sql语句,这样才可实现客户端代码的相对稳定
你在库里建一个维护表,字段有:服务号,SQL语句,然后加用到的sql语句全添到 此表中,编号,客户端向服务端发服务号和辅助信息比如要替换的内容等.服务端 先解析此服务号,再执行相应的sql语句,这样才可实现客户端代码的相对稳定
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-16 #7 中间层不能过多,这个意见我同意,不然逻辑关系会把自己也绕进去的. 如用一个中间层,所有参与开发的人得一起设计,至少是人人对中间层都很了解. 至于商用规则的定义,可放在中间层,也可放在数据库服务器上,不放在客户端就行. Sql语句的变化象孙猴子,如用代号不知长整形够不够(夸张了一点) 直接传SQL语句也没什么,MIDAS提供了多种方法.
中间层不能过多,这个意见我同意,不然逻辑关系会把自己也绕进去的. 如用一个中间层,所有参与开发的人得一起设计,至少是人人对中间层都很了解. 至于商用规则的定义,可放在中间层,也可放在数据库服务器上,不放在客户端就行. Sql语句的变化象孙猴子,如用代号不知长整形够不够(夸张了一点) 直接传SQL语句也没什么,MIDAS提供了多种方法.
C Crane Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #8 首先,本来人人对中间层都应该了解,商业逻辑,我个人认为应放在 中间层,否则还叫什么3层结构,另外,SQL应该灵活应用,不应写的 很死,多用参数.直传SQL的话虽然可以,但是假如服务端仅有一个 字段或表名改变就会导致所有的客户端需要升级.
首先,本来人人对中间层都应该了解,商业逻辑,我个人认为应放在 中间层,否则还叫什么3层结构,另外,SQL应该灵活应用,不应写的 很死,多用参数.直传SQL的话虽然可以,但是假如服务端仅有一个 字段或表名改变就会导致所有的客户端需要升级.
W wen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #9 本人比較贊同商業邏輯放在中間層. sql語句用代號傳遞,開發時溝通量大了,運行速度是否變慢(多次解譯),這樣的效率 如何,請Crane談談,多謝! 附加間一個問題:中間層我用ado,再用adoquery關聯多個表資料向前提送數据. 這時向后端提交數据時要自已寫程式拆分數据,工作量很大,后台的數据一致性也較難 保護.請問各位,你們是怎樣處理的?
本人比較贊同商業邏輯放在中間層. sql語句用代號傳遞,開發時溝通量大了,運行速度是否變慢(多次解譯),這樣的效率 如何,請Crane談談,多謝! 附加間一個問題:中間層我用ado,再用adoquery關聯多個表資料向前提送數据. 這時向后端提交數据時要自已寫程式拆分數据,工作量很大,后台的數据一致性也較難 保護.請問各位,你們是怎樣處理的?
S szwgl Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-21 #10 crane: 能不能把你所说的表的内容 列几条出来。
C Crane Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-24 #11 no(string) sql(string) 1 select * from table1 2 delete * from table1 where XXXX=aram ... ... ... 然后将其查到后给Tquery 否则比如c端发了固定的select * from table1 如果今后公司合并,表名重起,客户端就惨啦
no(string) sql(string) 1 select * from table1 2 delete * from table1 where XXXX=aram ... ... ... 然后将其查到后给Tquery 否则比如c端发了固定的select * from table1 如果今后公司合并,表名重起,客户端就惨啦
X xyzer Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-25 #12 数据服务层也应该利用一下,这一层只包含必要的数据访问组件,商业逻辑还是 放在中间层比较好。 包含数据服务层组件可使得逻辑层尽量不依赖于具体的数据结构。
W wen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-26 #14 本人目前准備采用一虛擬接口,把多個中間層結舍在一起,效果還不錯,正在完善階段.
L littlebear Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-11 #16 我觉得可以做多个Remote Data Module,然后在Add to Project. 最好,一个Remote Data Module实现单独的逻辑功能!