论坛首页 Java企业应用论坛

敲响OO时代的丧钟!——DJ对于数据持久化的支持(3)

浏览 192927 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-27  
关于DJ的开发思路

http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!344.entry
0 请登录后投票
   发表时间:2005-07-28  
强制使用组合的方式来构建系统。
0 请登录后投票
   发表时间:2005-07-28  
一种新的语言(7)

http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!347.entry
0 请登录后投票
   发表时间:2005-07-28  
引用
1、编码阶段,这个没什么好多说的,就是coding
2、预编译阶段,就是将DJ的代码,编译为java的代码,这个阶段,是DJ编译器校验的阶段,在这个阶段,DJ编译器会运行各个代码的 test:部分,只有通过测试的代码,才能够被编译为实际的java代码,以及进一步的class。在编译出来的java代码中,test:部分,自然是消失了。
3、debug阶段,就是保留所有check:部分的代码,做系统的试运行。在试运行过程中,所有被触发而报错的check代码,都将被认为是有价值的check。反之,如果一个check从来都返回为真,就说明这个check没有实际存在的必要。与此类似的还有event部分的代码——这个明天会介绍到——也是只有被触发的代码,才是有意义的。
4、release阶段,就是将所有真正有效的代码编译出来组成的系统。那些test:与check:,将根据实际的情况记录,不再被编译到正式发行的系统之中。


这基本上是一种反潮流的做法!软件开发的发展方向应该是越简单越快速越好,而不是从一个源代码走到程序跑起来,竟然要经过4道工序!

JDO1.0就是因为需要比Hibernate多增加了一道静态增强,而广为人所垢病!而你则增加了3道工序,可以想像一下,从写好源代码到发布,要经历何等漫长的周期!

为什么现在Python/Ruby这么叫好?本质上的原因就是极大的简化了代码的编写过程,也极大的简化了代码的编译打包和发布的过程。而DJ(豆浆的拼音缩写)通过丰富的关键词和代码自检查机制极大的复杂化了代码的编写过程,通过三道工序极大的复杂化了代码的发布过程。

再有一个很大的问题,如果运行程序代码报错,他报告的出错行号是无法和你的豆浆源代码对应起来的,这对于调试来说,是一个很大的障碍。

总之,看了你的blog的第6和第7篇,我个人的感觉就是豆浆语言是反编程语言发展潮流的。
0 请登录后投票
   发表时间:2005-07-29  
庄表伟 写道
熟悉AOP的朋友可能会发现,这样定义的Channel,非常像一个一个的aspect,而我这个动态对象中的channel,与aspect最大的区别是,方面必须依附于某一个具体的对象,甚至只能依附于对象中的某些方法,仅仅在方法被调用时,才得以唤醒。而在dclass里,每一个channel都是平等的关系,相互之间没有任何依附。
ry

不是我不明白,世界变化太快!
AOP的目的之一难道不是在原有对象“不知道”的原则下,加入新的关注点需要代码?
你把这些channel都放入dclass算是怎么回事阿?dclass不是要依赖于channel?
并且在你调用的代码中都明显的加入了对channel的引用,这算哪门子AOP噢???
0 请登录后投票
   发表时间:2005-07-29  
如果丢掉了测试代码,是不是意味着如果扩展一个类库,就不能得到父类的检查支持?
0 请登录后投票
   发表时间:2005-07-29  
robbin 写道
这基本上是一种反潮流的做法!软件开发的发展方向应该是越简单越快速越好,而不是从一个源代码走到程序跑起来,竟然要经过4道工序!

JDO1.0就是因为需要比Hibernate多增加了一道静态增强,而广为人所垢病!而你则增加了3道工序,可以想像一下,从写好源代码到发布,要经历何等漫长的周期!

为什么现在Python/Ruby这么叫好?本质上的原因就是极大的简化了代码的编写过程,也极大的简化了代码的编译打包和发布的过程。而DJ(豆浆的拼音缩写)通过丰富的关键词和代码自检查机制极大的复杂化了代码的编写过程,通过三道工序极大的复杂化了代码的发布过程。

再有一个很大的问题,如果运行程序代码报错,他报告的出错行号是无法和你的豆浆源代码对应起来的,这对于调试来说,是一个很大的障碍。

总之,看了你的blog的第6和第7篇,我个人的感觉就是豆浆语言是反编程语言发展潮流的。


是不是符合潮流,这种事情我是不考虑的,你觉得呢?

我将4道工序明确的出来,并不意味着增加了新的工序。

举个例子,你在依照TDD的模式进行开发的时候,是不是随时随地的换带两个帽子?测试->编程->测试->编程。

这两顶帽子,是不是在两个工序之间来回呢?

再举个例子,你在编译源代码的时候,有没有debug和release两种模式的选择?在正式发表之前,用debug编译模式,以得到更多明确的出错信息,在正式发布时,以release方式编译,以得到更好的性能。

你觉得这是不是也是两道工序呢?

再举个例子,你的系统已经release了,结果发现性能上不够理想,需要做性能调优,这其中的甘苦,你应该也是深有体会吧,在性能调优期间,需要做多少代码、SQL、瓶颈分析呢?这个分析的过程,是不是也是一道工序呢?

现在Python/Ruby这么被人看好,你有没有想过他们的缺点在哪里?

至于行号问题,当初也有人这么怀疑过AspectJ,后来证明AspectJ可以正确的显示出行号了,这个怀疑也就不存在了。

“反编程语言发展潮流的”这个大帽子,还是不要急着给我带吧。
0 请登录后投票
   发表时间:2005-07-29  
partech 写道
庄表伟 写道
熟悉AOP的朋友可能会发现,这样定义的Channel,非常像一个一个的aspect,而我这个动态对象中的channel,与aspect最大的区别是,方面必须依附于某一个具体的对象,甚至只能依附于对象中的某些方法,仅仅在方法被调用时,才得以唤醒。而在dclass里,每一个channel都是平等的关系,相互之间没有任何依附。
ry

不是我不明白,世界变化太快!
AOP的目的之一难道不是在原有对象“不知道”的原则下,加入新的关注点需要代码?
你把这些channel都放入dclass算是怎么回事阿?dclass不是要依赖于channel?
并且在你调用的代码中都明显的加入了对channel的引用,这算哪门子AOP噢???


还没有介绍完呢,channel不但可以静态的定义在dclass中,也可以动态的插入到一个动态对象之中,但是这需要在dclass定义时,明确允许插入新的channel。
0 请登录后投票
   发表时间:2005-07-29  
wolfsquare 写道
如果丢掉了测试代码,是不是意味着如果扩展一个类库,就不能得到父类的检查支持?


是这样的
0 请登录后投票
   发表时间:2005-07-29  
庄表伟 写道
robbin 写道
这基本上是一种反潮流的做法!软件开发的发展方向应该是越简单越快速越好,而不是从一个源代码走到程序跑起来,竟然要经过4道工序!

JDO1.0就是因为需要比Hibernate多增加了一道静态增强,而广为人所垢病!而你则增加了3道工序,可以想像一下,从写好源代码到发布,要经历何等漫长的周期!

为什么现在Python/Ruby这么叫好?本质上的原因就是极大的简化了代码的编写过程,也极大的简化了代码的编译打包和发布的过程。而DJ(豆浆的拼音缩写)通过丰富的关键词和代码自检查机制极大的复杂化了代码的编写过程,通过三道工序极大的复杂化了代码的发布过程。

再有一个很大的问题,如果运行程序代码报错,他报告的出错行号是无法和你的豆浆源代码对应起来的,这对于调试来说,是一个很大的障碍。

总之,看了你的blog的第6和第7篇,我个人的感觉就是豆浆语言是反编程语言发展潮流的。


是不是符合潮流,这种事情我是不考虑的,你觉得呢?

我将4道工序明确的出来,并不意味着增加了新的工序。

举个例子,你在依照TDD的模式进行开发的时候,是不是随时随地的换带两个帽子?测试->编程->测试->编程。

这两顶帽子,是不是在两个工序之间来回呢?

再举个例子,你在编译源代码的时候,有没有debug和release两种模式的选择?在正式发表之前,用debug编译模式,以得到更多明确的出错信息,在正式发布时,以release方式编译,以得到更好的性能。

你觉得这是不是也是两道工序呢?

再举个例子,你的系统已经release了,结果发现性能上不够理想,需要做性能调优,这其中的甘苦,你应该也是深有体会吧,在性能调优期间,需要做多少代码、SQL、瓶颈分析呢?这个分析的过程,是不是也是一道工序呢?

现在Python/Ruby这么被人看好,你有没有想过他们的缺点在哪里?

至于行号问题,当初也有人这么怀疑过AspectJ,后来证明AspectJ可以正确的显示出行号了,这个怀疑也就不存在了。

“反编程语言发展潮流的”这个大帽子,还是不要急着给我带吧。


这个话题无关DJ设计本身,其实有点跑题了,所以我也不准备认真争论这个问题。潮流不潮流其实很重要,如果从编写代码到最后发布要搞到如此麻烦的地步,是无法吸引程序员去使用的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics