论坛首页 Java企业应用论坛

Without SSH/JSP/Servlet,不走寻常路,Java可以更酷

浏览 213545 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-11-18   最后修改:2009-11-18
rich 写道
其他一些看法:
1.框架和平台不是设计出来的,是最佳实践真刀真枪拼出来的
  Douyu要得到更好的发展,必须将Douyu立即应用到一个实际项目中,正如 ROR 的发展过程那样。
  如果没有一个特别真实的项目,那可以基于 Douyu ,开发一个 Douyu的官方博客或者论坛。

这个是个好建议,我会一边完善Douyu,一边用Douyu重写以前的项目,
我之所以在Douyu中加入权限,是因为我以前的项目经验告诉我权限这一块是很常用的,
还是有挑战性的,我都还有以前的项目的代码,因为很多都是我单独完成的,
重写以前的项目比官方博客或者论坛更有挑战性,因为需求种类更大,
比如有这么个需求:要做一个能让用户自由定义查询字段、自由定义查询结果的通用多表查询模块怎么实现?
还有数据库表格多到两三百个,但是大多数都只是CRUD,只是界面不同,
你怎么用最少代码实现它,同时每个表格的界面又不能是脚手架生成的那种死板样,
很多像这些都是真实项目中遇到的普通需求,比那种号称20分钟完成一个博客的玩具例子有意义得多。


我想你可能是网络应用的经验比较多,
而我个人倒是那种普通的企业应用项目熟悉点,这类应用对大并发量并不苛刻,
所以Douyu的定位不可避免有我个人的主观意识。

rich 写道


2.不是够不够强,够不够复杂的问题,而是有没有强的需要,有没有复杂的必要的问题

3.技术本身是否有用,跟是否适用是两回事
  纯粹个人感觉,LZ有些地方是为了应用新技术或者复杂的技术而应用。
  象流行设计模式的时期,初学者恨不得将所有模式全部用在新项目中。

你可能误会了,是不是看到分布式事务那种就认为是复杂的技术,
分布式事务只是一些高级功能。

不过,以前在我做的项目中也常常碰到同时操作多个数据库的情况,
我以前是做移动行业的项目,虽然多数是用Oracle但SQL Server也有,
所以分存式事务也是存在需求的。


rich 写道

4.使用第三方库未必是坏事,如果有适合的还可能是好事
  纯粹个人感觉,LZ严重排斥第三方库,无论其是否合适,是否做得比 Douyu中相应部分更好。
  例如:
===========================
Play!framework我今天看了大半天,它也是用了编译器,只不过不是Javac,而是JDT,
还用了无数的第三方jar库,连VIEW层都是使用其他实现的,
Douyu目前很小,加Javac一起才1M多点,Play!framework解压后80多M了,
Douyu的VIEW层也是由Javac编译,只是语法没Play!framework强大
===========================



这点我还是坚持我的原则,尽量让Douyu不要像Play!framework引入那么多库,
不但增加其他人的学习难度,还可能遇到不可控的问题。

当然好的我肯定会加,比如junit这种单元测试之类的我不会重复开发,
像javassist、groovy-all-1.6.1这种肯定不会加,
Play!framework其实只是使用了eclipse-JDT编译器而已,
根本就没深入编译器,所以你会看到Play!framework还是用javassist、groovy-all-1.6.1这些东西,
如果真深入了编译器了,VIEW层的语法再难也比不过Java,
javassist再对字节码有多了解也没有javac了解,因为字节码是javac编译器生成的。

rich 写道

5.PHP、JAVA、C/C++ 都有自己的特性

这个我同意

rich 写道

6.源代码写和看是两个不同但相辅相成的方面,既要写也要看,最重要是有思考

我意思是说看懂别人的代码比自已写代码要难上10倍,
看懂之后要修改又要扩充别人的代码又要保证不出错更难。

当然,如果你认为我写代码写得少,我没什么好反驳的,呵呵,
因为我没跟你一起做过项目,没一起上过班,我说我写过多少行代码都是没意义的。

0 请登录后投票
   发表时间:2009-11-18  
Laynepeng 写道
前两天在新闻看到这个框架,当时觉得很像Play!

今天把前面的算是User Guide读了一遍,嗯,想法蛮不错的,楼主毅力我是很敬佩。读过javac的源代码;为Play!贡献过一点点,算是通读他的代码。也挺期待拜读下作者这个框架的代码。。。

Code for fun的心态很好~


如果你也读过javac的源代码,那么看Douyu时会很轻松,

Douyu对Javac修改的地方不多,其实用Javac用得最多的就是com\sun\tools\javac\code包中的类,
主要是用Javac的类型系统在编译期间推断类型信息,
你对Play!贡献过一点点,如果你回过头去看Douyu的话,Douyu的动态编译比Play!的简单多了,
Douyu和Play!都有自定义的ClassLoader,
但是Play!用了javassist,还用了java.lang.instrument包,
这两者Douyu都没用到,仅仅是在内存中直接编译源代码生成字节码,然后调用ClassLoader的defineClass。
0 请登录后投票
   发表时间:2009-11-18  
mycybyb 写道
多数据库事务,半道出错了怎么办?

自动撤消事务啊,如果有保存点,撤消到保存点,保存点之前的正常提交。
0 请登录后投票
   发表时间:2009-11-19  
ZHH2009 写道
Arden 写道
可惜douyu.com/net/cn的域名都被注册完了~~~

这个我早知道了,在起Douyu这个名字前我就专门去查了很多非技术问题(比如商标或域名等)
不过,无所谓,我更多的是喜欢技术。

我太喜欢这个名字了,所以就这么叫了。


要什么com域名,最合适的应该是org
查了下,没被注册
douyu.org
douyu.org.cn
0 请登录后投票
   发表时间:2009-11-19  
ZHH2009 写道
mycybyb 写道
多数据库事务,半道出错了怎么办?

自动撤消事务啊,如果有保存点,撤消到保存点,保存点之前的正常提交。

我说的是多个数据库,前几个数据库已经提交了,后面的一个出错了。如果保持一致性?
0 请登录后投票
   发表时间:2009-11-19  
mycybyb 写道
ZHH2009 写道
mycybyb 写道
多数据库事务,半道出错了怎么办?

自动撤消事务啊,如果有保存点,撤消到保存点,保存点之前的正常提交。

我说的是多个数据库,前几个数据库已经提交了,后面的一个出错了。如果保持一致性?


可能楼主自己实现了个两段提交吧。
0 请登录后投票
   发表时间:2009-11-19  
我把我的第一贴给你,时间有限,我只粗粗的看了第一页,我刚开始做开发的时候也一直郁闷非得困在J2EE的条条框框内,你让我看到了WEB的另一种思路。
0 请登录后投票
   发表时间:2009-11-19  
helian 写道
mycybyb 写道
ZHH2009 写道
mycybyb 写道
多数据库事务,半道出错了怎么办?

自动撤消事务啊,如果有保存点,撤消到保存点,保存点之前的正常提交。

我说的是多个数据库,前几个数据库已经提交了,后面的一个出错了。如果保持一致性?


可能楼主自己实现了个两段提交吧。

我认为,这个不可能实现。
0 请登录后投票
   发表时间:2009-11-19  
helian 写道
mycybyb 写道
ZHH2009 写道
mycybyb 写道
多数据库事务,半道出错了怎么办?

自动撤消事务啊,如果有保存点,撤消到保存点,保存点之前的正常提交。

我说的是多个数据库,前几个数据库已经提交了,后面的一个出错了。如果保持一致性?


可能楼主自己实现了个两段提交吧。

问这个问题显然动机有问题
0 请登录后投票
   发表时间:2009-11-19  
支持你  相信你会成功的
0 请登录后投票
论坛首页 Java企业应用版

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