论坛首页 Java企业应用论坛

Douyu 0.6.1发布了,这是一个超乎您想象的Web框架

浏览 24130 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-06-01  
迷迷糊糊看了,哎。就是感慨,什么时候才能像LZ这样写出自己的东西呢。coding2年多了,还没算入行呢。。
0 请登录后投票
   发表时间:2011-06-01  
楼主果然强大,希望楼主可以放些图上去 ,和一些简单的讲解,最好有一个开发文档,
0 请登录后投票
   发表时间:2011-06-01  
楼主,按照这个路径http://douyu.googlecode.com/svn/trunk/ douyu-read-only在SVN上检出你这项目的源码,提示没有此文件夹~~
0 请登录后投票
   发表时间:2011-06-01  
一样的错误啊,没有此文件夹
0 请登录后投票
   发表时间:2011-06-01  
nirvana1988 写道
楼主,按照这个路径http://douyu.googlecode.com/svn/trunk/ douyu-read-only在SVN上检出你这项目的源码,提示没有此文件夹~~





google code的svn不太稳定,时好时坏,我的同事他们试了,能下下来的:

引用
svn checkout http://douyu.googlecode.com/svn/trunk/ douyu-read-only



源代码压缩包: 点我

 

0 请登录后投票
   发表时间:2011-06-01  
chunquedong 写道
那个“最炫的功能”是怎么实现的呀?
我猜想有两种可能:
  1.把模板内联进来。
  2.用另一个对象捕获所有本地变量。


jiangshaolin 写道
AlwenS 写道
楼主 写道
最炫的功能:
可以在JSP、Velocity、FreeMaker中直接访问控制器Action中的本地变量:


为啥没人吐槽这个功能呢? 的确很炫,居然可以访问局部变量,应该是对javac动了手脚了,使bytecode记录了更多信息了吧?对性能有影响不?


这个肯定多少会影响一点性能,最方便之处应该是不用request.setAttribute()吧。
如果设的值多,肯定会方便很多,不用写一堆的request.setAttribute()。




这是douyu.mvc.ViewManager接口的所有api,
任何实现了这个接口的第三方模板引擎都可以集成进来,

package douyu.mvc;

public interface ViewManager {
	/**
	 * 输出默认视图,默认视图的位置通常会根据控制器类名和Action名来决定
	 */
	public void out();

	public void out(String viewFileName);

	public void put(String key, Object value);
}
 

当你调用out方法时,javac会根据out所在位置根据变量可见性的规则,帮你把当前能访问的本地变量put进去了,

所以这个代码:

@Controller  
public class ViewManagerExample {  
    public void soCool(ViewManager v, String name, int age) {  
        Date date = new Date();  
        v.out("/ViewTest.vm");  
    }  
}
 
实际上变成了:
@Controller  
public class ViewManagerExample {  
    public void soCool(ViewManager v, String name, int age) {  
        Date date = new Date();

		v.put("name", name);
		v.put("age", age);
		v.put("date", date);

        v.out("/ViewTest.vm");  
    }  
}
 


put这几个值没啥性能影响的,javac编译器不帮你put,你也会手工put,
唯一差别是有些变量你不想put出去的,结果javac编译器通通都帮你put了。(当然这问题也是很好解决的)

 

0 请登录后投票
   发表时间:2011-06-01  



vb2005xu 写道
斗鱼 o(︶︿︶)o 唉 早这样 我也不会去关注 nutz了 现在 感觉你这个 其实比不上 nutz


nutz,也不错,学哪个都无所谓,

学新东西的关键是这个东西会不会让你对周边的东西产生兴趣。

就我个人而言,我从不指望douyu能做到怎样怎样,没人用我都不在乎。

但是,在做douyu的过程中让我对很多东西产生了浓厚的兴趣,
并且去深入研究了很多底层技术,比如编译器、web容器、JDBC驱动、网络框架的实现。

所以,只要你在这个学习的过程中收获很多,没必要在乎什么。



这段话说的好,能够做自己的喜欢的事,实属不易啊.
0 请登录后投票
   发表时间:2011-06-01   最后修改:2011-06-01
新闻和论坛两个地方都发,回复起来不太方便,
新闻回复的格式看起来没有论坛好,所以一些相对技术性的问题,就回到论坛了。

zdmcjm 写道
这个框架是不是只支持方法参数的注入,能在controller中定义实例变量吗?
controller是singleton的还是propotype,还是都支持?


controller是singleton的,
在controller中可以定义实例变量,但是要小心在多线程时的并发问题。
当然也可以轻松做到让controller变成多实例的,但是为了保持和servlet一致,目前只支持singleton。

目前只支持方法参数的注入,
通过实例变量注入也是很容易做的,暂时没想到这个功能的强大必要性,
因为完全可以在action中在其他地方访问被spring注入的东西,
controller的功能越简单越好。


finallygo 写道

自动提取HTML表单参数 中注入的参数,是根据参数名,还是参数类型?


根据参数名,
注入时会自动帮你把字符串转成相应类型.


finallygo 写道
wendal 写道
我的理解:
douyu:
ServletAPI --> 调用Java编译器处理Java源文件

JSP:
ServletAPI --> 调用Java编译器处理JSP文件

Javac其实保留了本地变量名的(debug=true),只是在JDK中没有提供相关的映射方法.
解析字节码是能够拿到的.

Freemaker等模板功能,也就是封装一下吧.

我觉得之前的那个douyu,更有创新性.


这个版本,"真的"超乎我的想象

我也觉得之前那个更加震撼一些,毕竟等了一年半
不过这个直接访问本地变量还是一个亮点


原来的是更创新一点,但是太新了不一定是好事,
理由很简单,java相对来说已经是很成熟的技术了,有太多的遗留系统,
现在的应用、框架都是基于servlet的,你做的东西不支持这个,
原有应用不能在你这东西上跑,以前的学习积累全都废弃了,重新学你这个新东西,
如果你作为项目经理你能轻易拍板吗。

再说了,之前的方式并没有放弃,只是为了让这个版本更简洁没有加入进来。

虽然等了一年半,说实话,我只写了两周的代码,
我只是一个码农,更多的是看别人的代码,先积累知识,之后才能淡创新。


发布Douyu,真的没啥太多商业上的考虑,也不是为了追求啥名利,这些鸟东西扯得太远了。

不管谁说他是玩具也好是什么XXX也好,我认同的,我就是把他当玩具来玩。

如果你也喜欢当一个纯种码农,为了coding而coding,
那么我认为你跟我差不多是一条道上的,我想你也会在业余时间做你的'Douyu'的,

哥现在啥都看得非常淡定了,不会再像前几年那样花时间在网上互相吐口水了。

人生苦短啊,朋友们,好好生活,好好coding。
0 请登录后投票
   发表时间:2011-06-01  
去年在江南白衣发布springside的某个版本的时候,提到过斗鱼,现在终于有缘相见,down下来慢慢学习。
0 请登录后投票
   发表时间:2011-06-01  
神器再出江湖,希望作者一鼓作气,捣鼓出来个东西来,个人严重支持一下,刚看到就被评为良好了,我没机会了.......555555555555555555555555
0 请登录后投票
论坛首页 Java企业应用版

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