该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-19
peterwei 写道 sulong 写道 各位,不如把《领域驱动设计》那本书看一看,如果连这一方法学的经典书藉都没有看过,这样讨论没有多大意义。
DDD的好处不仅仅体现在代码上。它要解决的领域与实现的矛盾,不是具体的技术手段。具体的技术手段,就只强调独立的领域层代码,及模型绑定代码。其它的都是一些具体的技巧了。 书是好书,看过也不能代表什么。如果DDD,真的是银弹,我相信肯定早就流行了。它不流行,必要有它的缺点和局限性。 是因为现实的功利性。 |
|
返回顶楼 | |
发表时间:2011-04-19
引用楼主
说一下另一个框架Seam对于富血也做得不错了,但还不是完全富血,同样也绑带了JSF。
|
|
返回顶楼 | |
发表时间:2011-04-19
hatedance 写道 看不下去了,我来简单地告诉你们什么是ddd。具体的去jdon看看。
ddd就是利用ORM和AOP屏蔽数据库的sql和事务。比如 bool login(userid,password); { User user = repository.get(User.class,userid); return user.checkpassword(password); } 而不是select * from users where userid=? and password=? 比如学生选课 student.addClass(class){this.classes.put(class);} repository.update(student);//此处级联更新新增的class 而不是insert into classes values(....) 总之,这种代码几乎看不到sql,看不到commit,仿佛一切都在内存的集合里。hibernate的session基本上直接拿来当repository用就好了。 但显然DDD有其适合场景,有些时候性能成为大问题,必须用hql,甚至sql等办法来解决。 不管怎么样,select是必然要的。你说的这些根本代表不了DDD.很多贫血模式都是这么应用的。 |
|
返回顶楼 | |
发表时间:2011-04-21
领域模型只是一种思路,为什么没有流行起来是因为没有真正能够支持领域模型的充血Domain Object框架存在,Rails靠近了这个思路。由于java死板的语法的原因,在java中实现Domain Object,现在来说还不现实。除非再出现一个类似Hibernate那样划时代的Domain Object ORM框架出来。
另外: Spring Roo只适合做DEMO,或者说是一种前进道路上的不成功的尝试,真实的业务问题使用Spring Roo是不行的。 又另外: 我们自己也做了一个java充血模型框架,可以说的是比Spring Roo要好一些。但是依然解决不了领域模型框架的问题,可以说纯领域模型框架在现阶段是不存在的。 |
|
返回顶楼 | |
发表时间:2011-04-21
icewind_yx 写道 领域模型只是一种思路,为什么没有流行起来是因为没有真正能够支持领域模型的充血Domain Object框架存在,Rails靠近了这个思路。由于java死板的语法的原因,在java中实现Domain Object,现在来说还不现实。除非再出现一个类似Hibernate那样划时代的Domain Object ORM框架出来。
另外: Spring Roo只适合做DEMO,或者说是一种前进道路上的不成功的尝试,真实的业务问题使用Spring Roo是不行的。 又另外: 我们自己也做了一个java充血模型框架,可以说的是比Spring Roo要好一些。但是依然解决不了领域模型框架的问题,可以说纯领域模型框架在现阶段是不存在的。 好像这个思路已经有很多年了。你说Spring roo只适合做demo,但真的有些人开始在真的项目中使用了,如引子所说的CTO.我想应该有一定的成熟度和可行性了,要不然别人不会冒然行事。 哈哈,居然比Spring Roo还好些,口气不小嘛。你们参考了Spring roo了吗?万一能解决你们的问题呢?隐约能猜到你所在的公司,好像是我以前接触过的一家公司。 |
|
返回顶楼 | |
发表时间:2011-04-21
我又上来骂一句,呵呵。
当年整出什么Core J2EE设计模式,VO,DAO,Service,Facade出现了,当时人们眼前一亮,我靠,原来世界上面可以把层次分析得怎么清晰。后来,随着项目的扩大,又不行了。又跳出来骂,妈的,搞这么多测试,DAO都搞个接口,一大堆Service,Manager在里面。老子还不如搞一个Util类去处理。这个时候,又反思为什么太多的DO或者VO作为贫血对象,我习惯成为Thin Object,而相反为Rich Object。 我记得一次和某CTO分析系统时,我提出JSF和EJB的方案,被他批评了,他认为层次华清晰地MVC是一个银弹,我对他说确实很“淫——荡”。 很多系统架构师很容易被洗脑,很少去看非主流技术。 说到整体,有状态的EJB不正是干Rich Object的吗,有人说性能不好怎么低,复杂,都是瞎扯。首先,看看业务和开发效率,难道Rich就不能OOP吗?只要是Java对象都能OOP,只代码风格和关注点不同。 对不起,我又冲动了! |
|
返回顶楼 | |
发表时间:2011-04-21
最后修改:2011-04-21
mercyblitz 写道 我又上来骂一句,呵呵。
当年整出什么Core J2EE设计模式,VO,DAO,Service,Facade出现了,当时人们眼前一亮,我靠,原来世界上面可以把层次分析得怎么清晰。后来,随着项目的扩大,又不行了。又跳出来骂,妈的,搞这么多测试,DAO都搞个接口,一大堆Service,Manager在里面。老子还不如搞一个Util类去处理。这个时候,又反思为什么太多的DO或者VO作为贫血对象,我习惯成为Thin Object,而相反为Rich Object。 我记得一次和某CTO分析系统时,我提出JSF和EJB的方案,被他批评了,他认为层次华清晰地MVC是一个银弹,我对他说确实很“淫——荡”。 很多系统架构师很容易被洗脑,很少去看非主流技术。 说到整体,有状态的EJB不正是干Rich Object的吗,有人说性能不好怎么低,复杂,都是瞎扯。首先,看看业务和开发效率,难道Rich就不能OOP吗?只要是Java对象都能OOP,只代码风格和关注点不同。 对不起,我又冲动了! 那你Rich了吗?你们的团队Rich了吗?说实话,我们现在的团队,还是老一套,走主流的一套。是Web应用. web层-vo(将来可能rmi or hessian)-spring-po-dao-hibernate.今天讨论还有个小弟提出0配置和无vo、无接口方式,他说我们是为了接口而接口。哈哈。结果当然是部门经理主流派战胜,有权嘛。我做为夹心层,只能分析各自的优缺点,然后稍偏向小弟。但是说了一句:各有优缺点,这个由老大拍板。但其实thin的也挺好的。 |
|
返回顶楼 | |
发表时间:2011-04-21
peterwei 写道 mercyblitz 写道 我又上来骂一句,呵呵。
当年整出什么Core J2EE设计模式,VO,DAO,Service,Facade出现了,当时人们眼前一亮,我靠,原来世界上面可以把层次分析得怎么清晰。后来,随着项目的扩大,又不行了。又跳出来骂,妈的,搞这么多测试,DAO都搞个接口,一大堆Service,Manager在里面。老子还不如搞一个Util类去处理。这个时候,又反思为什么太多的DO或者VO作为贫血对象,我习惯成为Thin Object,而相反为Rich Object。 我记得一次和某CTO分析系统时,我提出JSF和EJB的方案,被他批评了,他认为层次华清晰地MVC是一个银弹,我对他说确实很“淫——荡”。 很多系统架构师很容易被洗脑,很少去看非主流技术。 说到整体,有状态的EJB不正是干Rich Object的吗,有人说性能不好怎么低,复杂,都是瞎扯。首先,看看业务和开发效率,难道Rich就不能OOP吗?只要是Java对象都能OOP,只代码风格和关注点不同。 对不起,我又冲动了! 那你Rich了吗?你们的团队Rich了吗?说实话,我们现在的团队,还是老一套,走主流的一套。是Web应用. web层-vo(将来可能rmi or hessian)-spring-po-dao-hibernate.今天讨论还有个小弟提出0配置和无vo、无接口方式,他说我们是为了接口而接口。哈哈。结果当然是部门经理主流派战胜,有权嘛。我做为夹心层,只能分析各自的优缺点,然后稍偏向小弟。但是说了一句:各有优缺点,这个由老大拍板。但其实thin的也挺好的。 官大一级压人呀!多元化的思想,很难形成规模! |
|
返回顶楼 | |
发表时间:2011-04-21
引用 说到整体,有状态的EJB不正是干Rich Object的吗,有人说性能不好怎么低,复杂,都是瞎扯。首先,看看业务和开发效率,难道Rich就不能OOP吗?只要是Java对象都能OOP,只代码风格和关注点不同。
banq那帮人应该就是搞这个Rich的。好吧,07年的时候我也搞过半年ejb,但是当时两个架构师否决了ejb,从此一直走在spring道路上。实际上Rich在开发速度上确实很快,我有过小段时间的实践。但是很多人担心业务越来越复杂后,可维护性的问题。我其实也有这个担心,所以不敢说特别坚定,只能说拭目以待。 |
|
返回顶楼 | |
发表时间:2011-04-22
mercyblitz 写道 peterwei 写道 mercyblitz 写道 我又上来骂一句,呵呵。
当年整出什么Core J2EE设计模式,VO,DAO,Service,Facade出现了,当时人们眼前一亮,我靠,原来世界上面可以把层次分析得怎么清晰。后来,随着项目的扩大,又不行了。又跳出来骂,妈的,搞这么多测试,DAO都搞个接口,一大堆Service,Manager在里面。老子还不如搞一个Util类去处理。这个时候,又反思为什么太多的DO或者VO作为贫血对象,我习惯成为Thin Object,而相反为Rich Object。 我记得一次和某CTO分析系统时,我提出JSF和EJB的方案,被他批评了,他认为层次华清晰地MVC是一个银弹,我对他说确实很“淫——荡”。 很多系统架构师很容易被洗脑,很少去看非主流技术。 说到整体,有状态的EJB不正是干Rich Object的吗,有人说性能不好怎么低,复杂,都是瞎扯。首先,看看业务和开发效率,难道Rich就不能OOP吗?只要是Java对象都能OOP,只代码风格和关注点不同。 对不起,我又冲动了! 那你Rich了吗?你们的团队Rich了吗?说实话,我们现在的团队,还是老一套,走主流的一套。是Web应用. web层-vo(将来可能rmi or hessian)-spring-po-dao-hibernate.今天讨论还有个小弟提出0配置和无vo、无接口方式,他说我们是为了接口而接口。哈哈。结果当然是部门经理主流派战胜,有权嘛。我做为夹心层,只能分析各自的优缺点,然后稍偏向小弟。但是说了一句:各有优缺点,这个由老大拍板。但其实thin的也挺好的。 官大一级压人呀!多元化的思想,很难形成规模! 哈哈,你就敢保证你们团队里是统一思想的?你们只是每个人憋在心里而已。大家都隐而不发,心里很多小九九谁也不知道谁罢了。我们是比较open.不过比较open也挺头疼的,小弟们总会提出各种各样的idea。还要说服他们。 |
|
返回顶楼 | |