2018/01/23 16:08

引用来自“zhangwdcdd”的评论

书本里面和代码里面没有什么测试代码 写完一个功能点 都是懵的 这点做得太不好了

回复@zhangwdcdd : 确实需要好好改进,多谢您的建议。
2016/05/08 23:59

引用来自“祖大俊”的评论

黄先生,“微小的内核,灵活的插件”的图,是用什么工具画的?
visio
2016/05/01 12:43
黄先生,“微小的内核,灵活的插件”的图,是用什么工具画的?
2015/09/07 21:29
刚开始接触,mark!125
2015/03/28 13:52

引用来自“JackFace”的评论

楼主,群满员了!
刚才执行了一次淘汰算法
2015/01/04 10:09

引用来自“王仁辉(java)”的评论

求评价 我的restful的框架 model和jfinal一样是activerecord的设计 route更简洁一些
https://github.comDreampie/resty
能否提供一个示例代码,说明一下该框架的使用方法?谢谢!
2015/01/03 21:26
求评价 我的restful的框架 model和jfinal一样是activerecord的设计 route更简洁一些
https://github.comDreampie/resty
2014/05/05 09:42
力推勇哥20
2014/04/21 23:46
为什么不能再造轮子?我喜欢再造轮子13,我喜欢勇哥的轮子
2014/04/21 23:45
如果都用ajax请求数据在浏览器组装页面的话,那么页面的静态化会不会麻烦很多?
2014/04/01 09:45
Smart 新博文发布啦!
使用 Smart Security 实现安全控制
http://my.oschina.net/huangyong/blog/214927
2014/03/05 17:27

引用来自“孤独的3”的评论

比较喜欢第1点,第4点也很赞,这是未来的趋势...
楼主可以参考下@JFinal
波总的很多观念和楼主的类似,哈哈...

13
2014/02/21 16:35

引用来自“腾勇”的评论

完全依赖于ajax 不太适合互联网应用,互联网应用需要被搜索引擎收录。二完全ajax,会增加http请求数

看到这一点我想到,如果全部采用AJAX动态加载网站的内容,会大大影响搜索引擎对网站关键内容的收录的,SOA做不好的话,业务就无法顺利开展,Smart框架应该要有静态化方案方面的考虑
2014/01/26 11:28

引用来自“openwsn”的评论

Excellent work
但spring本身也在演化当中,今天所考虑的这些问题,很多即将被新版本spring所支持和实现。能否站在未来的Internet应用所需的软件架构角度,审视下一代Internet应用所需框架的设计思路,做一个理念和思路上的提升?

将来的 Web 应用,我认为对前端的要求会越来越高,后端只需发布 REST 服务,外加安全性控制,前端通过 AJAX 来获取这些 REST 服务提供的数据,通过一些 JS 模板技术进行数据渲染。也就是说,前端 HTML + CSS + JS,后端 REST,前端通过 AJAX 获取后端的数据。
2013/12/30 14:06

引用来自“韶华”的评论

博主你的smart-framework在maven里找不到依赖了。
http://maven.oschina.net/index.html#nexus-search;quick~smart framework

你的地址好像写错了,似乎是这个吧?http://maven.oschina.net/index.html#nexus-search;quick~smart-framework
2013/12/26 09:26

引用来自“edit”的评论

servlet3.0 注解 里 servlet的拦截 顺序 是怎样的? 假如 多个filter 或者 多个servlet 会不会出现问题? 看到web.xml 0语句很诧异,注解 对维护什么的 不清晰,配置文件 可以很容易理清脉络吧

servlet3.0 注解中是可以配置顺序的。
2013/11/02 01:11

向大牛学习
2013/11/01 23:02
看来lz真是用心啊!写了这么多博文!必须支持下!
2013/11/01 20:50
jfinal
2013/11/01 18:11

引用来自“沫小依”的评论

lz写得不错~支持一下~时刻关注你的更新~

感谢您一如既往地的支持!
2013/11/01 15:25
@哈库纳 非常感谢你的评论!我会进一步了解你的 Hasor
2013/11/01 10:00

引用来自“黄勇”的评论

@zoujianfang 建议将页面跳转通过配置文件进行管理,并且这个配置文件可以通过代码生成器来创建。这个思路有些意思,所以也想听听其他朋友们的建议。
此外,我正在思考如何将非核心功能做成 Plugin 的形式,供用户使用。比如:邮件发送、Web 服务、消息驱动等。也请朋友们多给点建议,是否应该这样去做?应该怎样去做?

关于插件如何做,我还想请 老黄 关注一下 我的 Hasor 系列文章。可以说 我设计的那个 Hasor 实际上就是在解决 Plugin 的问题。 我一直觉得在框架中诸如 Ioc/Aop Ajax Upload Action JDBC 等等一切接是插件,管理好插件才是框架扩展的基石。
2013/11/01 09:56

引用来自“黄开源中国”的评论

引用来自“黄勇”的评论

引用来自“爪哇老妖”的评论

看了上面的几点,略有感触,感觉楼主有种大包大揽的趋势,框架问世本应该是开放的,不能使用Spring,但可以支持Spring无缝集成,不使用Jsp但可以支持Jsp,业界有很多不错模板引擎,如Freemark、Velocity等,他们一直致力于前端与后台分离,关于Ajax与后端交互是一个趋势,但交互得需要规范,否则是无法并行开发的,能否分离就看规范的定义了。关于Spring容器的初始化,吸其长处,避其短处,框架不应该是再造轮子,但可以改进轮子。

其实 Spring 和 Hibernate 这样的框架发展到今天,它们已经负担很重了,从实践上讲,我们根本不可能完全用尽这些框架所提供的特性,因为这样也是没有必要的,但是它们却为了满足全世界程序员的需求,给我们提供好了,我们只需要拿来就可以用,确实非常强大,对我们非常友好。但是如果要改进这样的框架,我们必须去阅读成千上万行源代码,而且还不敢去改,因为真的太大了。所以我们需要有自己的框架,既能满足团队的需求,又能方便扩展,我想这个也是我想做这件事情的缘由。非常感谢您专业的评价!

这话说的在理。。

身有同感,目前我正在尝试将 Spring JDBC 部分的代码移植出来。 成千上万行代码,几千个类。最后能用到的 只有不足 10%。
2013/11/01 09:52

引用来自“路小磊”的评论

把评论从头到尾看到了一遍,感触很深啊。我现在的一个项目也是在Servlet3的基础上做了一个很烂的框架,开始的目的很明确,项目很小,用SSH感觉太重量了,后来自己的框架缺乏灵活性,又改啊该,发现缺少扩展性,再改啊改,最后自己的代码自己都看着恶心,所谓鱼与熊掌不可兼得,有些理念其实相互冲突的(解耦、扩展性、易用性、快速开发),要想实现灵活,就要牺牲一些易用性,所以建议楼主可以先用用楼上各位提及的框架,自己权衡哪些可以抛弃,哪些可以学习吸取,然后开始行动。
顺便说一句,我很厌恶那些不五毛党,你都不说理由,上来就是一通对博主的讽刺,有意思么。

其实 SSH 并不是很重,我觉得它已经是很轻量化了。 我这里有一篇文章,它记述了我在我们公司维护的框架从最初 非常轻量到 后来逐步 重量化的一个简短描述: http://my.oschina.net/u/1166271/blog/173266

或许我们觉得 SSH 过于重量是因为在漫长的 项目维护期我们并没有遇到那么多问题才感觉到 SSH 繁重。
2013/10/09 22:04
朋友们可以帮我把 Smart Framework 的代码优化一下吗?
http://git.oschina.net/huangyong/smart-framework
期待大家的 Pull Requests 与 Issues!
2013/10/09 19:46
下载了您的smart-framework框架,大体上浏览一遍,有个很明显的bug:
类:com.smart.framework.helper.SQLHelper
方法:generateInsertSQL、generateUpdateSQL
这两个方法里面有段代码:
StringBuilder columns = new StringBuilder(" ");
StringBuilder values = new StringBuilder(" values ");
for (Map.Entry<String, ?> fieldEntry : fieldMap.entrySet()) {
String columnName = StringUtil.toUnderline(fieldEntry.getKey());
Object columnValue = fieldEntry.getValue();
if (i == 0) {
columns.append("(").append(columnName);
values.append("('").append(columnValue).append("'");
} else if (i == fieldMap.size() - 1) {
columns.append(", ").append(columnName).append(")");
values.append(", '").append(columnValue).append("')");
} else {
columns.append(", ").append(columnName);
values.append(", '").append(columnValue).append("'");
}
i++;
}
sql.append(columns).append(values);
这里没有做字段的类型判断,而是统统默认使用string类型。并且存在sql注入问题
还有构造的select的sql用的是select *,dbutils只是原封不动的执行sql语句,所以最终这个*还是交给了数据库解析
2013/10/04 19:53
其实大家都讲得在理,但是我从一位生手的角度看问题, 咱编码工人需要的是 前台ui到后台 一条龙的 易用、易懂、少问题的框架。(功能单纯一点没问题,)只要先能用得上,出现问题 大家的解决的积极性多很高的,自然容易推动框架的发展, 其实前台倒是很麻烦弄的事情,)
例如opencms 是发展思路就很清晰 明确,就把jsp xml 耍得很熟练,一直坚持发展到现在
2013/09/30 10:02
@zoujianfang 建议将页面跳转通过配置文件进行管理,并且这个配置文件可以通过代码生成器来创建。这个思路有些意思,所以也想听听其他朋友们的建议。
此外,我正在思考如何将非核心功能做成 Plugin 的形式,供用户使用。比如:邮件发送、Web 服务、消息驱动等。也请朋友们多给点建议,是否应该这样去做?应该怎样去做?
2013/09/29 21:00
都130多楼了,来这里祝贺一下。呵呵
2013/09/29 18:04

引用来自“zoujianfang”的评论

引用来自“黄勇”的评论

感谢楼上朋友们的建议,现在已将 Maven 修改为 Java 1.6 编译。
@zoujianfang @贤者以其昭昭

老黄,看了一下你的demo都框架有个小小的建议,好处在于没有XML,但是似乎把所有的链接放在html里面对于把握项目的业务逻辑脉路有点过于离散。是否能考虑有跳转的配置方案。

关于跳转,均采用 HTML 链接或 JavaScript 来实现。比如,可以发送 AJAX 请求,拿到返回值,判断返回值是否是我想要的,如果没问题,就通过 location.href 进行跳转。考虑到如果再搞一个跳转配置出来,是不是又回到了 Struct 的时代呢?个人拙见。
2013/09/29 18:01

引用来自“式地要”的评论

啥时候把定时任务也封装一下哈

我并不想做成“大而全”,而是想做成“小而精”,把握核心功能,外围功能可以做成 plugin 的方式,供开发者自由选择,比如您所说的“定时任务”,此外还有:邮件发送、Web 服务、消息驱动等,这些功能都将由 plugin 来提供。征求广大网友们的建议,后续会不断积累。
2013/09/28 17:54

引用来自“贤者以其昭昭”的评论

对于smart-sample 建议 直接使用jetty吧! 在eclipse环境中 采用maven构建 jetty 更方便 !

你用 Jetty 可以跑起来吗?我目前只在 Tomcat 测试过。
2013/09/28 17:52
感谢楼上朋友们的建议,现在已将 Maven 修改为 Java 1.6 编译。
@zoujianfang @贤者以其昭昭
2013/09/26 13:46

引用来自“zoujianfang”的评论

老黄项目导入高定了,先GIT导入到本地库,只建立库不建立项目,然后用MAVEN方式导入为项目,有个小小的建议,POM早点修改为JAVA 6以上版本吧

搞定就好!Java 5 应该也可以的吧,我没去试过。
2013/09/24 22:23

引用来自“pwqok”的评论

终于发布了,等很久了,在看源码…不知是否有计划加入权限部分的功能?

您具体有何建议呢?有机会可以分享一下。
2013/09/24 16:55

引用来自“linan”的评论

@黄勇 简单看了下代码, 不支持blob,clob?

目前还没有,您觉得需要有吗?
2013/09/24 09:59

引用来自“陈春伟”的评论

总体来说还是造了很多重复的轮子。而且作为framework其实尽量的不约束各个模块使用的具体技术形式。而得供流程及工作具的作用。总体来说你描术的几点都在约束一些技术实现。比如标、比如前后端的分离方式。当然我不太清楚其它的方式是否支持,但一种方式是没法满足用户的需求的。作为一个普及的框架,好用的框架,每个模块的灵活性非常重要,当然作为自用框架,本着减 少重复编码作为第一考虑要素就好。不过楼主是想做成通用框架。那这个方向其实注定它是不能普遍被接受的。注解是趁势。但是支持xml配置是一种需求。趋势不能代表需求。xml配置和注解配置是针对不同的业务场景的。xml可以让其它的应用参考配置,动态的修改配置 ,这种修改可以是人工或是跨平台的。而注释注定在jvm范畴的,总体支持楼主的尝试,但还是沷些冷水。

感谢您的评论!我的初衷并非是将它做成一个通用的框架,而是想将这个框架作为架构师的样板房,拿来就可以改造,因为它足够轻巧,架构清晰,便于扩展。此外,也为了分享自己的一些想法(不管是对还是错),吸收大家的建议,提高自己的能力,最好能够结交一些志同道合的朋友,将来有机会一起创业。Rod Johnson 已将搞出了一个 Spring,我可不想抢了他的市场。:)
2013/09/18 11:05
Grails...
2013/09/17 10:30
管理系统ajax获取数据是个不错的选择,但是互联网产品不适合吧,搜索引擎爬虫对ajax加载的内容支持不好。
2013/09/09 17:24

引用来自“黄勇”的评论

引用来自“唐阳”的评论

不适合seo啊

是不是因为大量使用了 AJAX,所以就不太适合做 SEO 了呢?其实现在已经有很多技术可以解决这个问题了。AJAX 不再是 SEO 的杀手。后续我会和大家一起深入讨论这个话题。

使用ajax代替jsp方式把一次http 变成多次http会不会有服务器性能的问题呢?
2013/09/09 17:21

引用来自“黄勇”的评论

引用来自“唐阳”的评论

不适合seo啊

是不是因为大量使用了 AJAX,所以就不太适合做 SEO 了呢?其实现在已经有很多技术可以解决这个问题了。AJAX 不再是 SEO 的杀手。后续我会和大家一起深入讨论这个话题。

还有个问题,如果分页用ajax,怎么把某一页的链接地址发给别人呢
2013/09/09 17:10

引用来自“唐阳”的评论

不适合seo啊

是不是因为大量使用了 AJAX,所以就不太适合做 SEO 了呢?其实现在已经有很多技术可以解决这个问题了。AJAX 不再是 SEO 的杀手。后续我会和大家一起深入讨论这个话题。
2013/09/09 15:03
不适合seo啊
2013/09/08 21:32

引用来自“ToB蓝波湾”的评论

看了好多评论,突然觉得,要想做什么就去做吧,不要在乎别人说什么,否则你将寸步难行

支持楼上的。楼主加油。
2013/09/08 16:32

引用来自“屁屁果”的评论

引用来自“路小磊”的评论

把评论从头到尾看到了一遍,感触很深啊。我现在的一个项目也是在Servlet3的基础上做了一个很烂的框架,开始的目的很明确,项目很小,用SSH感觉太重量了,后来自己的框架缺乏灵活性,又改啊该,发现缺少扩展性,再改啊改,最后自己的代码自己都看着恶心,所谓鱼与熊掌不可兼得,有些理念其实相互冲突的(解耦、扩展性、易用性、快速开发),要想实现灵活,就要牺牲一些易用性,所以建议楼主可以先用用楼上各位提及的框架,自己权衡哪些可以抛弃,哪些可以学习吸取,然后开始行动。
顺便说一句,我很厌恶那些不五毛党,你都不说理由,上来就是一通对博主的讽刺,有意思么。

这事我也干过,那个时候还没有servlet3……

我有种预感,等java8普及了,有了闭包这些新特性,之前的框架又会被骂一遍……
2013/09/08 14:05

引用来自“路小磊”的评论

把评论从头到尾看到了一遍,感触很深啊。我现在的一个项目也是在Servlet3的基础上做了一个很烂的框架,开始的目的很明确,项目很小,用SSH感觉太重量了,后来自己的框架缺乏灵活性,又改啊该,发现缺少扩展性,再改啊改,最后自己的代码自己都看着恶心,所谓鱼与熊掌不可兼得,有些理念其实相互冲突的(解耦、扩展性、易用性、快速开发),要想实现灵活,就要牺牲一些易用性,所以建议楼主可以先用用楼上各位提及的框架,自己权衡哪些可以抛弃,哪些可以学习吸取,然后开始行动。
顺便说一句,我很厌恶那些不五毛党,你都不说理由,上来就是一通对博主的讽刺,有意思么。

这事我也干过,那个时候还没有servlet3……
2013/09/08 13:24

引用来自“路小磊”的评论

把评论从头到尾看到了一遍,感触很深啊。我现在的一个项目也是在Servlet3的基础上做了一个很烂的框架,开始的目的很明确,项目很小,用SSH感觉太重量了,后来自己的框架缺乏灵活性,又改啊该,发现缺少扩展性,再改啊改,最后自己的代码自己都看着恶心,所谓鱼与熊掌不可兼得,有些理念其实相互冲突的(解耦、扩展性、易用性、快速开发),要想实现灵活,就要牺牲一些易用性,所以建议楼主可以先用用楼上各位提及的框架,自己权衡哪些可以抛弃,哪些可以学习吸取,然后开始行动。
顺便说一句,我很厌恶那些不五毛党,你都不说理由,上来就是一通对博主的讽刺,有意思么。

感谢您的支持与鼓励!您的建议我一定会采纳。
2013/09/08 12:25
把评论从头到尾看到了一遍,感触很深啊。我现在的一个项目也是在Servlet3的基础上做了一个很烂的框架,开始的目的很明确,项目很小,用SSH感觉太重量了,后来自己的框架缺乏灵活性,又改啊该,发现缺少扩展性,再改啊改,最后自己的代码自己都看着恶心,所谓鱼与熊掌不可兼得,有些理念其实相互冲突的(解耦、扩展性、易用性、快速开发),要想实现灵活,就要牺牲一些易用性,所以建议楼主可以先用用楼上各位提及的框架,自己权衡哪些可以抛弃,哪些可以学习吸取,然后开始行动。
顺便说一句,我很厌恶那些不五毛党,你都不说理由,上来就是一通对博主的讽刺,有意思么。
2013/09/07 16:17

引用来自“AlbertJun”的评论

引用来自“黄勇”的评论

引用来自“AlbertJun”的评论

引用来自“黄勇”的评论

引用来自“铂金小熊”的评论

第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。

关于第4条,我想要表达的意思是:视图不要使用 JSP 开发,因为性能不会特别高,而且对于美工不太方便。我想要的开发模式是,美工在做页面设计的时候,架构师可以进行程序设计,这两个过程是并行的。随后,美工交付的是 HTML、CSS、JS 以及相关资源文件,程序员拿到之后,无需将 HTML 转为 JSP,而是直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。​

关于第4条,楼主如何处理Session、权限等问题呢?

Session 其实保存的就是,一个会话中数据以 key-value 对形式存放的容器。您的问题非常好!我会在后期提供 Session 的封装类,让开发者无需再面对 Session API 进行编码。

谢谢你的回答,期待看到你的解决方案,另外还需要考虑的就是页面权限问题如何处理?

页面权限问题属于应用架构范畴,将来我也会给出相关的解决放啊。敬请期待!
2013/09/07 15:11

引用来自“AlbertJun”的评论

引用来自“黄勇”的评论

引用来自“铂金小熊”的评论

第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。

关于第4条,我想要表达的意思是:视图不要使用 JSP 开发,因为性能不会特别高,而且对于美工不太方便。我想要的开发模式是,美工在做页面设计的时候,架构师可以进行程序设计,这两个过程是并行的。随后,美工交付的是 HTML、CSS、JS 以及相关资源文件,程序员拿到之后,无需将 HTML 转为 JSP,而是直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。​

关于第4条,楼主如何处理Session、权限等问题呢?

Session 其实保存的就是,一个会话中数据以 key-value 对形式存放的容器。您的问题非常好!我会在后期提供 Session 的封装类,让开发者无需再面对 Session API 进行编码。
2013/09/06 10:08

引用来自“Jack王传杰”的评论

又一个技术理想主义者,做为自己学习研究,分享开源到还可以。个人感觉不如花时间真正掌握spring这些框架的核心技术点 ,达到庖丁解牛的程度,这样才能真正有提高,更能领会开源的精神。

目前已经有太多的人做源码分析这类庖丁解牛的事情了,但能够将自己的想法拿出来与大家探讨、交流、分享的恐怕不太多,我要做的就是这件事情。
2013/09/05 17:06

引用来自“熊二”的评论

引用来自“黄勇”的评论

引用来自“savior-guo”的评论

引用来自“烈冰”的评论

就相当于你自己再做一个spring和hibernate,作为研究还可以,但实际应用的话意义不大

同感

仅供交流与分享而已,并不是一定要投入到实际应用中。

不投入实际应用,没有商业价值的东西,瞎耽误什么时间啊,

这一点我持否定态度,不是瞎耽误时间,也不是为了挣钱,而是为了推广开源精神,我的力量是有限的,我希望有更多的人能够参与进来。
2013/09/05 16:32

引用来自“savior-guo”的评论

引用来自“烈冰”的评论

就相当于你自己再做一个spring和hibernate,作为研究还可以,但实际应用的话意义不大

同感

仅供交流与分享而已,并不是一定要投入到实际应用中。
2013/09/05 10:14

引用来自“伊万”的评论

认为使用纯HTML+ajax的方式不比jsp方便。
1、美工和程序员本来就可以并行工作,程序员在没有拿到美工的页面前,专注于做业务相关开发,前端顶多就是比较丑陋而已,然后,拿到美工页面再做修改。
2、纯粹使用ajax获取数据,然后做渲染,会相当累人。想想看,如果一个大表单(比如100个表单控件),光填充值这一块的js代码就会不堪入目。jsp使用el就搞定了。

您所说的非常合理,我本人也并非反对使用 JSP 开发,需要先明确以下我为什么要开这个专题博客?就是为了探讨新的开发模式,让程序员的工作更加简单,让架构师更容易掌握并扩展框架。所以,我在一行代码都没有写的时候,就发表了第一篇博文,并且持续更新,和大家一起共同学习与分享。如果这个框架将来成功推广了,功劳并非属于我个人所有,那是我们集体的智慧。
2013/09/04 22:06

引用来自“sahala232”的评论

引用来自“红四团”的评论

引用来自“黄勇”的评论

引用来自“铂金小熊”的评论

第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。

关于第4条,我想要表达的意思是:视图不要使用 JSP 开发,因为性能不会特别高,而且对于美工不太方便。我想要的开发模式是,美工在做页面设计的时候,架构师可以进行程序设计,这两个过程是并行的。随后,美工交付的是 HTML、CSS、JS 以及相关资源文件,程序员拿到之后,无需将 HTML 转为 JSP,而是直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。​

支持第四条,使用Ajax,做到前后端开发完全分离,方便项目管理.

如果用纯HTML,重构起来会非常困难,系统规模做大了很难保持界面一致性

我想界面开发,完全可以交给美工团队来负责,美工团队交付给开发团队的是 HTML + CSS + JS,开发团队在此基础上增加 AJAX 调用,获取 JSON 数据,然后再界面上进行填充或渲染。当然,有其他网友建议,返回的数据里面就带有 HTML 代码,这些 HTML 代码可在后端通过模板技术生成得到。
2013/09/04 22:03

引用来自“sahala232”的评论

你这个方案如何实现文件的上传和下载呢?

文件上传与下载这些功能,我想也有必要提供一下,至少得封装一个工具类。
2013/09/04 22:01

引用来自“红四团”的评论

引用来自“黄勇”的评论

引用来自“铂金小熊”的评论

第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。

关于第4条,我想要表达的意思是:视图不要使用 JSP 开发,因为性能不会特别高,而且对于美工不太方便。我想要的开发模式是,美工在做页面设计的时候,架构师可以进行程序设计,这两个过程是并行的。随后,美工交付的是 HTML、CSS、JS 以及相关资源文件,程序员拿到之后,无需将 HTML 转为 JSP,而是直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。​

支持第四条,使用Ajax,做到前后端开发完全分离,方便项目管理.

如果用纯HTML,重构起来会非常困难,系统规模做大了很难保持界面一致性
2013/09/04 21:57
你这个方案如何实现文件的上传和下载呢?
2013/09/04 13:53

引用来自“哈库纳”的评论

引用来自“JFinal”的评论

引用来自“南湖船老大”的评论

楼主的想法我基本都赞同。。不能使用有点绝对了,应该是继续支持JSP和spring,提供接口进行扩展,一刀断不好。
还有按目前的形势看,你这个框架几乎没办法推广。jfinal够简单了吧,推广都那么难。因为框架简单了,反过来,人要做的事情就复杂了

框架简单了,人要做的事情并不会变复杂,而是能空出更多时间去面对复杂问题,可能造成了事情更复杂的假象

框架简单了,人做的事情会有一定的复杂性,这个观点我赞同。现在Red5的底层都是在使用Spring做容器管理。但是我想 JFinal的设计目标绝对不是这个。

所以我觉得类似JFinal这类简单的框架在某一个领域内应用绝对不会面对复杂的事情,如果出现这种情况一定是应用领域超过了最初设计目标。

我觉得JFinal如果继续走目前急速Web开发的道路不会遇到太多的问题,只需要完善好当前API适当引入新特性就好,这意味着JFinal可能要放弃一些东西。

但是开发人员不会就这么罢休的,他们会尝试扩展这类简单框架使其应用领域进一步扩大。我想@湖南船老大 想说的就是这个,开发人员会用尽脑汁扩展简单框架以达到复杂场景应用的目的。这样以来就会造成“人做的事就复杂了”。

我要做的这件事情,就是给哪些“用尽脑汁扩展简单框架”的开发人员一个“样板房”,要怎样“装修”是他们自己的事情,所以对框架的要求,技术选型要足够轻量级,还要易扩展,而且其中某些机制要与主流的开发框架类似(比如:IoC 与 ORM),这样也缩短了开发人员的学习时间。
2013/09/04 13:37

引用来自“JFinal”的评论

引用来自“南湖船老大”的评论

楼主的想法我基本都赞同。。不能使用有点绝对了,应该是继续支持JSP和spring,提供接口进行扩展,一刀断不好。
还有按目前的形势看,你这个框架几乎没办法推广。jfinal够简单了吧,推广都那么难。因为框架简单了,反过来,人要做的事情就复杂了

框架简单了,人要做的事情并不会变复杂,而是能空出更多时间去面对复杂问题,可能造成了事情更复杂的假象

框架简单了,人做的事情会有一定的复杂性,这个观点我赞同。现在Red5的底层都是在使用Spring做容器管理。但是我想 JFinal的设计目标绝对不是这个。

所以我觉得类似JFinal这类简单的框架在某一个领域内应用绝对不会面对复杂的事情,如果出现这种情况一定是应用领域超过了最初设计目标。

我觉得JFinal如果继续走目前急速Web开发的道路不会遇到太多的问题,只需要完善好当前API适当引入新特性就好,这意味着JFinal可能要放弃一些东西。

但是开发人员不会就这么罢休的,他们会尝试扩展这类简单框架使其应用领域进一步扩大。我想@湖南船老大 想说的就是这个,开发人员会用尽脑汁扩展简单框架以达到复杂场景应用的目的。这样以来就会造成“人做的事就复杂了”。
2013/09/04 10:01

引用来自“Phnix”的评论

引用来自“黄勇”的评论

引用来自“腾勇”的评论

完全依赖于ajax 不太适合互联网应用,互联网应用需要被搜索引擎收录。二完全ajax,会增加http请求数

不是完全依赖于 AJAX,页面跳转只是 HTML 到 HTML,并非是发送请求到 Controller,最后在返回 View。凡是数据的加载基本上都是 AJAX。至于 HTTP 请求过多导致页面缓慢,这个问题可以根据一定的策略进行请求合并。

就算是加载数据时使用ajax,当数据大时,也会很慢。可以尝试在server端拼html。

我认为您的思路非常好!在 Server 端拼 HTML,或者说通过 Velocity 这样的模板在 Server 端将 HTML 生成好,然后封装到 JSON 中,最后返回给 Client 端,这样就非常好了。我所了解的新浪微博,就采用这样的技术。
2013/09/04 09:59

引用来自“Phnix”的评论

lz这个框架已经开始写了吗?看了这么多评论,收获很大。虽然是开源框架,但第一个版本,肯定是作者自己完全来写了。等有了原型后,后续才会有人加入进来。

没错,这个框架我已经基本写出来了,现在还太成熟,同时我也想借助大家的智慧,我们共同来设计这款轻量级 JavaEE 架构。如果您是架构师,或者正朝着架构师方向发展,请您关注并提供您的建议或意见。下一步我打算放在 OSC 的 Git 下,将代码完全开放出来。
2013/09/03 23:19

引用来自“charles_wang”的评论

引用来自“luokery”的评论

引用来自“黄勇”的评论

引用来自“铂金小熊”的评论

第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。

关于第4条,我想要表达的意思是:视图不要使用 JSP 开发,因为性能不会特别高,而且对于美工不太方便。我想要的开发模式是,美工在做页面设计的时候,架构师可以进行程序设计,这两个过程是并行的。随后,美工交付的是 HTML、CSS、JS 以及相关资源文件,程序员拿到之后,无需将 HTML 转为 JSP,而是直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。​

我不觉得ajax会快多少, 现在的模板引擎多的是.

楼主说的应该是开发效率,不是程序运行效率.

没错,是开发效率,至于运行效率(也就是性能),可放在下一个专题里进行讨论,得先有这个框架出来,再谈如何提高性能。
2013/09/03 23:17

引用来自“腾勇”的评论

完全依赖于ajax 不太适合互联网应用,互联网应用需要被搜索引擎收录。二完全ajax,会增加http请求数

不是完全依赖于 AJAX,页面跳转只是 HTML 到 HTML,并非是发送请求到 Controller,最后在返回 View。凡是数据的加载基本上都是 AJAX。至于 HTTP 请求过多导致页面缓慢,这个问题可以根据一定的策略进行请求合并。
2013/09/03 22:55
完全依赖于ajax 不太适合互联网应用,互联网应用需要被搜索引擎收录。二完全ajax,会增加http请求数
2013/09/03 16:18

引用来自“hsxy8”的评论

能写框架啊,写出来再说,你技术这么牛逼也不行,做技术的改不了高傲的特性,

我想借助 OSC 这个平台,将自己的思路与网友们进行交流,不是去证明自己的有多牛,我深知自己还需要做很大的提高,所以这也是我想和大家共享知识与交流想法的原因所在。如果让您误解了,非常抱歉!
2013/09/03 16:15

引用来自“ROBOCOP”的评论

@黄勇 看了你对轻量级 JavaEE 框架设计思想,特别是提出的那几点框架技术需求,让我突然有点小激动,因为我也有和你一样想法,初衷只是想按自己的编码习惯,尽量采用最简单的方式实现我需要的东西,与你提出的技术需求基本一致,项目地址:http://url.cn/HmaKCO,希望一起交流完善~!

非常感谢您的认可,如果有兴趣的话,以后经常交流。
2013/09/03 15:42
@黄勇 看了你对轻量级 JavaEE 框架设计思想,特别是提出的那几点框架技术需求,让我突然有点小激动,因为我也有和你一样想法,初衷只是想按自己的编码习惯,尽量采用最简单的方式实现我需要的东西,与你提出的技术需求基本一致,项目地址:http://url.cn/HmaKCO,希望一起交流完善~!
2013/09/03 14:43
能写框架啊,写出来再说,你技术这么牛逼也不行,做技术的改不了高傲的特性,
2013/09/03 09:15

引用来自“黄勇”的评论

引用来自“哈库纳”的评论

引用来自“黄勇”的评论

引用来自“哈库纳”的评论

我觉得在设计一款框架之前不能以取代谁作为目标。这个世上还没有什么事物可以被取代,这不符合哲学。

其次我觉得,项目启动慢一点还可以接受,如果框架支持类文件改变动态加载更新就像tomcat一样就是启动时间在5分钟调试时候不需要反复重启的设计就很棒。

还有我也觉得spring现在也越来越臃肿了,guice还比较不错。我在设计hasor时候就选择的它作为DI容器。

其实我觉得一个好的架构应该是贴近开发者,便于部署维护的,API简单易懂就好,不知道楼主感觉怎么样?

与你有同感,请教一下关于 Guice,你认为比 Spring 的 DI 更加轻量级吗?

的确如此,guice完全基于注解,没有配置文件。它启动时候从不扫描类路径。当你需要构造bean时候通过类型使用guice构造对象。但是它不支持bean生命周期,只是用来做ioc/aop。

对于guice来说对象的依赖也是当创建时候才去加载。性能上非常不错。是一款可以替代spring的另外一个选择。

我比较喜欢guice主要除了轻量之外,是因为它还有一个绑定操作。绑定这个过程实在是太好用。具体用法我可以和你另外探讨

本来想自己实现一个 @Inject 注解,听你这么一说,感觉 Guice 挺不错的,曾经我也听说过,但对它不太了解,借此机会,先学习一下吧。多谢您的分享!

关于你第四点,我觉得还得看你的项目实际应用范围在来决定视图层的设计。
互联网Web项目和 管理类Web项目 对视图层的设计是完全不一样的。可以说用两套架构体系去 描述都不为过。

MVC还是比较经典的,你说的过时我觉得不存在,可以把MVC的形式变版一下,在视图层中直接调用模型层取得数据。的做法就非常非常的爽。 既保留MVC模式又增加编程灵活性。

还有就是美工和后台双线开发,我以前搞过这块不是新鲜事务。关键要掌控好项目的模块拆解和调用接口的设计。
2013/09/03 09:04

引用来自“哈库纳”的评论

引用来自“黄勇”的评论

引用来自“哈库纳”的评论

我觉得在设计一款框架之前不能以取代谁作为目标。这个世上还没有什么事物可以被取代,这不符合哲学。

其次我觉得,项目启动慢一点还可以接受,如果框架支持类文件改变动态加载更新就像tomcat一样就是启动时间在5分钟调试时候不需要反复重启的设计就很棒。

还有我也觉得spring现在也越来越臃肿了,guice还比较不错。我在设计hasor时候就选择的它作为DI容器。

其实我觉得一个好的架构应该是贴近开发者,便于部署维护的,API简单易懂就好,不知道楼主感觉怎么样?

与你有同感,请教一下关于 Guice,你认为比 Spring 的 DI 更加轻量级吗?

的确如此,guice完全基于注解,没有配置文件。它启动时候从不扫描类路径。当你需要构造bean时候通过类型使用guice构造对象。但是它不支持bean生命周期,只是用来做ioc/aop。

对于guice来说对象的依赖也是当创建时候才去加载。性能上非常不错。是一款可以替代spring的另外一个选择。

我比较喜欢guice主要除了轻量之外,是因为它还有一个绑定操作。绑定这个过程实在是太好用。具体用法我可以和你另外探讨

本来想自己实现一个 @Inject 注解,听你这么一说,感觉 Guice 挺不错的,曾经我也听说过,但对它不太了解,借此机会,先学习一下吧。多谢您的分享!
2013/09/03 07:34

引用来自“黄勇”的评论

引用来自“哈库纳”的评论

我觉得在设计一款框架之前不能以取代谁作为目标。这个世上还没有什么事物可以被取代,这不符合哲学。

其次我觉得,项目启动慢一点还可以接受,如果框架支持类文件改变动态加载更新就像tomcat一样就是启动时间在5分钟调试时候不需要反复重启的设计就很棒。

还有我也觉得spring现在也越来越臃肿了,guice还比较不错。我在设计hasor时候就选择的它作为DI容器。

其实我觉得一个好的架构应该是贴近开发者,便于部署维护的,API简单易懂就好,不知道楼主感觉怎么样?

与你有同感,请教一下关于 Guice,你认为比 Spring 的 DI 更加轻量级吗?

的确如此,guice完全基于注解,没有配置文件。它启动时候从不扫描类路径。当你需要构造bean时候通过类型使用guice构造对象。但是它不支持bean生命周期,只是用来做ioc/aop。

对于guice来说对象的依赖也是当创建时候才去加载。性能上非常不错。是一款可以替代spring的另外一个选择。

我比较喜欢guice主要除了轻量之外,是因为它还有一个绑定操作。绑定这个过程实在是太好用。具体用法我可以和你另外探讨
2013/09/02 23:19

引用来自“ForEleven”的评论

引用来自“哈库纳”的评论

引用来自“ForEleven”的评论

如果你是想做了,然后在公司里面使用的话。作为一个站在普通程序员的角度来看,对这个是很反感的。不利于员工的发展,换工作的时候会有很大的阻碍。
不知道你们做什么样的项目,需要自己重构框架,Spring已经很成熟,开发速度不见得比你重新做一个来得慢。框架永远不是系统性能的瓶颈,所以如果想作为公司里面用,表示不支持。
如果只是想做一个开源的东西,那表示支持,不过不看好,JEE框架感觉已经走到头了。这是个人看法。

我倒是觉得如果能让普通程序员参与到核心框架的开发对他们来说倒是一个非常不错的锻炼。如果一个开发者只会用框架却说不出框架的精髓,对他们的职业发展很不利。

对参与的人来是一次难得的机会,做好了以后,后面的人就惨了啊。现在开发人员的流动还是蛮大的,就像前面的人也说了。来了新人培训,熟悉框架,开发流程这也都是成本。除非你是大公司不在乎这些。
还要考虑的是跟其他一些东西的集成是否方便,OAuth2,单点登录什么的,毕竟Spring对这些的集成方案很成熟,自己搞的框架开发,维护都是成本。
项目的进度,系统的性能往往都不是框架技术的问题。在项目经验上的累积,才是提供公司效益最有效的途径。这有点扯远了,只是看楼主的意思是想在公司内部用,有点觉得不太支持罢了。

我打算公司内部比较小的项目中使用,也算证实一下这个框架的可用性如何。从根本意义上来看,我是想和各位网友一起思考、探讨、学习,看看能否开发一个实用并且轻量级的 JavaEE 开发框架。我们将开发环境完全对外开放,目标是为了结交一些有共同理想的朋友,将来有机会一起做点事情。
2013/09/02 23:06

引用来自“哈库纳”的评论

我觉得在设计一款框架之前不能以取代谁作为目标。这个世上还没有什么事物可以被取代,这不符合哲学。

其次我觉得,项目启动慢一点还可以接受,如果框架支持类文件改变动态加载更新就像tomcat一样就是启动时间在5分钟调试时候不需要反复重启的设计就很棒。

还有我也觉得spring现在也越来越臃肿了,guice还比较不错。我在设计hasor时候就选择的它作为DI容器。

其实我觉得一个好的架构应该是贴近开发者,便于部署维护的,API简单易懂就好,不知道楼主感觉怎么样?

与你有同感,请教一下关于 Guice,你认为比 Spring 的 DI 更加轻量级吗?
2013/09/02 23:00

引用来自“抓瓦工人”的评论

个人觉得,如果参与人员都水平差不多,那还可行,如果都是北鸟那种,那可不好!

北鸟也有不错的,这还得看人。不乐意学的到哪都一个味。
2013/09/02 22:28

引用来自“ForEleven”的评论

引用来自“哈库纳”的评论

引用来自“ForEleven”的评论

如果你是想做了,然后在公司里面使用的话。作为一个站在普通程序员的角度来看,对这个是很反感的。不利于员工的发展,换工作的时候会有很大的阻碍。
不知道你们做什么样的项目,需要自己重构框架,Spring已经很成熟,开发速度不见得比你重新做一个来得慢。框架永远不是系统性能的瓶颈,所以如果想作为公司里面用,表示不支持。
如果只是想做一个开源的东西,那表示支持,不过不看好,JEE框架感觉已经走到头了。这是个人看法。

我倒是觉得如果能让普通程序员参与到核心框架的开发对他们来说倒是一个非常不错的锻炼。如果一个开发者只会用框架却说不出框架的精髓,对他们的职业发展很不利。

对参与的人来是一次难得的机会,做好了以后,后面的人就惨了啊。现在开发人员的流动还是蛮大的,就像前面的人也说了。来了新人培训,熟悉框架,开发流程这也都是成本。除非你是大公司不在乎这些。
还要考虑的是跟其他一些东西的集成是否方便,OAuth2,单点登录什么的,毕竟Spring对这些的集成方案很成熟,自己搞的框架开发,维护都是成本。
项目的进度,系统的性能往往都不是框架技术的问题。在项目经验上的累积,才是提供公司效益最有效的途径。这有点扯远了,只是看楼主的意思是想在公司内部用,有点觉得不太支持罢了。

维护成本却实会上去,对技术人员水平的要求也会上去。看公司技术决策成怎么觉断了。

用外面现成的东西一直一来都有一个弊端,就是你永远不知道里面有什么陷阱在等着你,如果遇到一个框架无法解决的难题更是苦不堪言。不过还好遇到这种事情的概率根买彩票差不多。
2013/09/02 22:01

引用来自“哈库纳”的评论

引用来自“ForEleven”的评论

如果你是想做了,然后在公司里面使用的话。作为一个站在普通程序员的角度来看,对这个是很反感的。不利于员工的发展,换工作的时候会有很大的阻碍。
不知道你们做什么样的项目,需要自己重构框架,Spring已经很成熟,开发速度不见得比你重新做一个来得慢。框架永远不是系统性能的瓶颈,所以如果想作为公司里面用,表示不支持。
如果只是想做一个开源的东西,那表示支持,不过不看好,JEE框架感觉已经走到头了。这是个人看法。

我倒是觉得如果能让普通程序员参与到核心框架的开发对他们来说倒是一个非常不错的锻炼。如果一个开发者只会用框架却说不出框架的精髓,对他们的职业发展很不利。

对参与的人来是一次难得的机会,做好了以后,后面的人就惨了啊。现在开发人员的流动还是蛮大的,就像前面的人也说了。来了新人培训,熟悉框架,开发流程这也都是成本。除非你是大公司不在乎这些。
还要考虑的是跟其他一些东西的集成是否方便,OAuth2,单点登录什么的,毕竟Spring对这些的集成方案很成熟,自己搞的框架开发,维护都是成本。
项目的进度,系统的性能往往都不是框架技术的问题。在项目经验上的累积,才是提供公司效益最有效的途径。这有点扯远了,只是看楼主的意思是想在公司内部用,有点觉得不太支持罢了。
2013/09/02 21:51

引用来自“ForEleven”的评论

如果你是想做了,然后在公司里面使用的话。作为一个站在普通程序员的角度来看,对这个是很反感的。不利于员工的发展,换工作的时候会有很大的阻碍。
不知道你们做什么样的项目,需要自己重构框架,Spring已经很成熟,开发速度不见得比你重新做一个来得慢。框架永远不是系统性能的瓶颈,所以如果想作为公司里面用,表示不支持。
如果只是想做一个开源的东西,那表示支持,不过不看好,JEE框架感觉已经走到头了。这是个人看法。

我倒是觉得如果能让普通程序员参与到核心框架的开发对他们来说倒是一个非常不错的锻炼。如果一个开发者只会用框架却说不出框架的精髓,对他们的职业发展很不利。
2013/09/02 21:40
如果你是想做了,然后在公司里面使用的话。作为一个站在普通程序员的角度来看,对这个是很反感的。不利于员工的发展,换工作的时候会有很大的阻碍。
不知道你们做什么样的项目,需要自己重构框架,Spring已经很成熟,开发速度不见得比你重新做一个来得慢。框架永远不是系统性能的瓶颈,所以如果想作为公司里面用,表示不支持。
如果只是想做一个开源的东西,那表示支持,不过不看好,JEE框架感觉已经走到头了。这是个人看法。
2013/09/02 21:33
我觉得在设计一款框架之前不能以取代谁作为目标。这个世上还没有什么事物可以被取代,这不符合哲学。

其次我觉得,项目启动慢一点还可以接受,如果框架支持类文件改变动态加载更新就像tomcat一样就是启动时间在5分钟调试时候不需要反复重启的设计就很棒。

还有我也觉得spring现在也越来越臃肿了,guice还比较不错。我在设计hasor时候就选择的它作为DI容器。

其实我觉得一个好的架构应该是贴近开发者,便于部署维护的,API简单易懂就好,不知道楼主感觉怎么样?
2013/09/02 21:32

引用来自“抓瓦工人”的评论

条件到是不错,不过成熟估计猴年马月了,如果你觉得java有危你初衷,你可以考虑其他给予jvm的语言,比如 scala,或者你看看play 怎么样,符合你要求吗!

scala的学习曲线太高,虽然个人一直在用scala。
2013/09/02 21:16

引用来自“南湖船老大”的评论

楼主的想法我基本都赞同。。不能使用有点绝对了,应该是继续支持JSP和spring,提供接口进行扩展,一刀断不好。
还有按目前的形势看,你这个框架几乎没办法推广。jfinal够简单了吧,推广都那么难。因为框架简单了,反过来,人要做的事情就复杂了

非常感谢您的评论!在事情没有做好之前,我不会考虑如何去推广,而是想借助 OSC 这个平台,将个人的想法与经验跟大家一起分享。我会先考虑在自己的团队的进行演练,拿真实的项目做为案例,让自己的想法得到实践,让更多的程序员感受到开发的快乐。我为自己加油!
2013/09/02 19:20

引用来自“南湖船老大”的评论

楼主的想法我基本都赞同。。不能使用有点绝对了,应该是继续支持JSP和spring,提供接口进行扩展,一刀断不好。
还有按目前的形势看,你这个框架几乎没办法推广。jfinal够简单了吧,推广都那么难。因为框架简单了,反过来,人要做的事情就复杂了

框架简单了,人要做的事情并不会变复杂,而是能空出更多时间去面对复杂问题,可能造成了事情更复杂的假象
2013/09/02 19:02
楼主的想法我基本都赞同。。不能使用有点绝对了,应该是继续支持JSP和spring,提供接口进行扩展,一刀断不好。
还有按目前的形势看,你这个框架几乎没办法推广。jfinal够简单了吧,推广都那么难。因为框架简单了,反过来,人要做的事情就复杂了
2013/09/02 17:38

引用来自“黄勇”的评论

引用来自“Dead_knight”的评论

说实话,目前所谓的java ee基础开发平台遍地开花,到处都是,我也是曾经的参与者,现在回过头来看看,综合各种因素考虑,实际上不仅没有提高太多的效率,反而增加了不少的成本。
如果是小项目,随便用什么主流框架整一整,都不成问题。
如果是团队项目,是不是还要考虑学习成本,团队协作呢?如果用主流的框架struts、spring、hibernate,招个新人过来,只要熟悉一点,立马能干活。如果用所谓的基础开发平台,还要对新人培训,而且需要保证基础开发平台的稳定性、容错性……这样的成本都考虑进来的话,就有点不值得了,如果是大公司,不在乎那样的成本,那当我没说。

您说的非常中肯,JavaEE 框架确实非常多了,用得最多的可能就是 SSH 框架了,但又有多少人能够完全弄清楚框架底层的代码逻辑甚至是细节呢?所以,我个人认为,如果能够从零开始实现一个这样的 JavaEE 框架,相信再回过头来用哪些流行的框架,甚至是新框架,都会得心应手。还有一点也非常重要,当使用别人开发的框架,如果遇到了奇怪的报错现象,那时将会给程序员们带来很多困扰,他们不得不去网上搜索有没有类似问题的解决方案。如果是自己团队开发的那就不一样了,知己知彼,发现了问题至少可以找到编写这个框架的作者。

任何一个团队都存在技术阶梯形态的,即使你的这个平台已经投入到正式项目中,当初开发这个平台的就是金字塔尖的核心人物了(公司或者团队失去这样的人员,如果遇到性能瓶颈或者扩展受限,基本上这个平台就慢慢死掉了,当然也可以开源,前提是这个平台代码质量高,文档资料齐全,能够持续维护),到时候招进来的人员,理想情况下,是希望他们掌握平台的各种技术,但理想不是现实。我是这么经历过来的,仅供参考。
2013/09/02 17:23

引用来自“Dead_knight”的评论

说实话,目前所谓的java ee基础开发平台遍地开花,到处都是,我也是曾经的参与者,现在回过头来看看,综合各种因素考虑,实际上不仅没有提高太多的效率,反而增加了不少的成本。
如果是小项目,随便用什么主流框架整一整,都不成问题。
如果是团队项目,是不是还要考虑学习成本,团队协作呢?如果用主流的框架struts、spring、hibernate,招个新人过来,只要熟悉一点,立马能干活。如果用所谓的基础开发平台,还要对新人培训,而且需要保证基础开发平台的稳定性、容错性……这样的成本都考虑进来的话,就有点不值得了,如果是大公司,不在乎那样的成本,那当我没说。

您说的非常中肯,JavaEE 框架确实非常多了,用得最多的可能就是 SSH 框架了,但又有多少人能够完全弄清楚框架底层的代码逻辑甚至是细节呢?所以,我个人认为,如果能够从零开始实现一个这样的 JavaEE 框架,相信再回过头来用哪些流行的框架,甚至是新框架,都会得心应手。还有一点也非常重要,当使用别人开发的框架,如果遇到了奇怪的报错现象,那时将会给程序员们带来很多困扰,他们不得不去网上搜索有没有类似问题的解决方案。如果是自己团队开发的那就不一样了,知己知彼,发现了问题至少可以找到编写这个框架的作者。
2013/09/02 17:02
说实话,目前所谓的java ee基础开发平台遍地开花,到处都是,我也是曾经的参与者,现在回过头来看看,综合各种因素考虑,实际上不仅没有提高太多的效率,反而增加了不少的成本。
如果是小项目,随便用什么主流框架整一整,都不成问题。
如果是团队项目,是不是还要考虑学习成本,团队协作呢?如果用主流的框架struts、spring、hibernate,招个新人过来,只要熟悉一点,立马能干活。如果用所谓的基础开发平台,还要对新人培训,而且需要保证基础开发平台的稳定性、容错性……这样的成本都考虑进来的话,就有点不值得了,如果是大公司,不在乎那样的成本,那当我没说。
2013/09/02 15:06

引用来自“ruanzy”的评论

就第四点,我有过尝试,如果全部采用html+ajax 当页面要请求的数据较多时,页面会很慢,个人觉得jsp(可以充分利用EL)+ ajax 比较好

请求数据较多时,可以将多个请求进行合并,能合并的尽量合并。我想只有请求数少了,页面响应速度就会高很多。
2013/09/02 15:03

引用来自“勇往直前_2013”的评论

这个想法和12306的网站有点一样。

如果真的能像 12306 那样,那也是一件功德啊 :)
2013/09/02 13:33
JFinal已经实现80%的需求,欢迎关注
2013/09/02 08:02
看了好多评论,突然觉得,要想做什么就去做吧,不要在乎别人说什么,否则你将寸步难行
2013/09/02 00:35

引用来自“黄勇”的评论

引用来自“打杂程序猿”的评论

.直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。
....该怎么吐槽你呢....这个还不是mvc的核心........只是把后端做成了m层..vc层在前端处理而已....核心还是那套..除非你想说MVVM等... .........再说了mvc 那里来的什么传统不传统的一说,只有不同实现而已........同样,也没有什么过不过时一说..

客户端与服务端交互一般分为两种模式:1.推模式,2.拉模式。而 MVC 选择的是“推模式”,可以这样理解:服务端将 Model(也就是数据)推向 View(也就是界面),要实现这样的架构,一种最典型的解决方案就是使用模板技术,包括 JSP、Velocity等。而现今更为高效的是“拉模式”,即在 HTML 页面中,通过 AJAX 技术从服务端将数据拉回来,然后进行渲染。像国内的新浪微博就是采用的这样的技术架构,返回的均为 JSON 格式,通过 JS 来处理所返回的数据。为何说 MVC 是传统的开发模式,并不是说它太老了,而是一个相对而已,相对于现今较为流行并且大势所趋的 REST 架构而言,MVC 是传统的而且我个人认为不够轻量级。希望我的回答能让您满意,非常感谢您的评论!

我明白了..你对mvc 的理解了.....我觉得mvc 是个抽象的模型, 而你所描述的,无论是推,还是拉,实际上跟MVC是没有任何的..都只是mvc实现的一种选型而已...就例如,界面的mvc,你从哪里来的推拉模式呢?
2013/09/01 22:29

引用来自“黄文祥”的评论

我觉得项目在开发启动的时候也不是每次都要启动的,添加新的功能肯定要启动但也会需要很久,不过也不知道楼主说到项目有多大需要等这么久?或是开发机器配置确实不给力吧!不过也一直想整理个开发效率高的框架只注重业务就行,但一直忙于每天的代码确实没那个精力

我想打造的是一个开发更为高效,并且更加关注性能方面的框架。如果有兴趣的话,我们可以相互学习。后续我会将代码提交到 Git@OSC(http://git.oschina.net/)上,有兴趣的朋友可以关注我后期的博文。
2013/09/01 22:24

引用来自“huhu”的评论

呵呵,作为项目经理最抓狂的不是新的,而是稳定与简单的。

作为项目经理,其实最想要的不仅仅是稳定的技术框架,可能还有一点,那就是能够快速实现业务需求的框架。如何才能加快开发速度呢?唯有让程序员们用得舒服,用得得心应手,这样才能将重心放在业务上,而并非在一些技术细节上困扰。
2013/09/01 22:22

引用来自“searchjack”的评论

en , 请关注 JFinal

JFinal 是一个非常好的框架,一直想去学习,日后应该有机会了。也有其他网友这么认为,该思路与 JFinal 有些类似。谢谢您的建议!
2013/09/01 22:20

引用来自“打杂程序猿”的评论

.直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。
....该怎么吐槽你呢....这个还不是mvc的核心........只是把后端做成了m层..vc层在前端处理而已....核心还是那套..除非你想说MVVM等... .........再说了mvc 那里来的什么传统不传统的一说,只有不同实现而已........同样,也没有什么过不过时一说..

客户端与服务端交互一般分为两种模式:1.推模式,2.拉模式。而 MVC 选择的是“推模式”,可以这样理解:服务端将 Model(也就是数据)推向 View(也就是界面),要实现这样的架构,一种最典型的解决方案就是使用模板技术,包括 JSP、Velocity等。而现今更为高效的是“拉模式”,即在 HTML 页面中,通过 AJAX 技术从服务端将数据拉回来,然后进行渲染。像国内的新浪微博就是采用的这样的技术架构,返回的均为 JSON 格式,通过 JS 来处理所返回的数据。为何说 MVC 是传统的开发模式,并不是说它太老了,而是一个相对而已,相对于现今较为流行并且大势所趋的 REST 架构而言,MVC 是传统的而且我个人认为不够轻量级。希望我的回答能让您满意,非常感谢您的评论!
2013/09/01 21:17
.直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。
....该怎么吐槽你呢....这个还不是mvc的核心........只是把后端做成了m层..vc层在前端处理而已....核心还是那套..除非你想说MVVM等... .........再说了mvc 那里来的什么传统不传统的一说,只有不同实现而已........同样,也没有什么过不过时一说..
2013/09/01 18:25

引用来自“爪哇老妖”的评论

看了上面的几点,略有感触,感觉楼主有种大包大揽的趋势,框架问世本应该是开放的,不能使用Spring,但可以支持Spring无缝集成,不使用Jsp但可以支持Jsp,业界有很多不错模板引擎,如Freemark、Velocity等,他们一直致力于前端与后台分离,关于Ajax与后端交互是一个趋势,但交互得需要规范,否则是无法并行开发的,能否分离就看规范的定义了。关于Spring容器的初始化,吸其长处,避其短处,框架不应该是再造轮子,但可以改进轮子。

其实 Spring 和 Hibernate 这样的框架发展到今天,它们已经负担很重了,从实践上讲,我们根本不可能完全用尽这些框架所提供的特性,因为这样也是没有必要的,但是它们却为了满足全世界程序员的需求,给我们提供好了,我们只需要拿来就可以用,确实非常强大,对我们非常友好。但是如果要改进这样的框架,我们必须去阅读成千上万行源代码,而且还不敢去改,因为真的太大了。所以我们需要有自己的框架,既能满足团队的需求,又能方便扩展,我想这个也是我想做这件事情的缘由。非常感谢您专业的评价!
2013/09/01 18:20

引用来自“空云万里晴”的评论

不考虑支持AOP吗

AOP 这个特性非常好,需要做一些简化,Spring 先后给了好几套方案了,我个人认为基于注解的方案才是最优雅的,这方面我会放到该框架的特性列表中。非常感谢您的评论!
2013/09/01 18:18

引用来自“烈冰”的评论

就相当于你自己再做一个spring和hibernate,作为研究还可以,但实际应用的话意义不大

绝不是再造轮子,一定是改造轮子。从狭义来看是学习研究,从广义来看是创新推广。
2013/09/01 15:52

引用来自“爪哇老妖”的评论

看了上面的几点,略有感触,感觉楼主有种大包大揽的趋势,框架问世本应该是开放的,不能使用Spring,但可以支持Spring无缝集成,不使用Jsp但可以支持Jsp,业界有很多不错模板引擎,如Freemark、Velocity等,他们一直致力于前端与后台分离,关于Ajax与后端交互是一个趋势,但交互得需要规范,否则是无法并行开发的,能否分离就看规范的定义了。关于Spring容器的初始化,吸其长处,避其短处,框架不应该是再造轮子,但可以改进轮子。

比较赞成你的观点,改造轮子应该是最优选项
2013/09/01 15:12
看了上面的几点,略有感触,感觉楼主有种大包大揽的趋势,框架问世本应该是开放的,不能使用Spring,但可以支持Spring无缝集成,不使用Jsp但可以支持Jsp,业界有很多不错模板引擎,如Freemark、Velocity等,他们一直致力于前端与后台分离,关于Ajax与后端交互是一个趋势,但交互得需要规范,否则是无法并行开发的,能否分离就看规范的定义了。关于Spring容器的初始化,吸其长处,避其短处,框架不应该是再造轮子,但可以改进轮子。
2013/09/01 10:31

引用来自“抓瓦工人”的评论

条件到是不错,不过成熟估计猴年马月了,如果你觉得java有危你初衷,你可以考虑其他给予jvm的语言,比如 scala,或者你看看play 怎么样,符合你要求吗!

绝不敢说这个框架弄出来有多牛,主要是想借助现今比较适用的技术来提高一些开发质量与效率,受众群体首先应该是自己的团队吧,然后逐步向圈内进行推广,希望能够借助 OSC 平台,推广中国的开源事业。关于您所说的 Play 框架,我也研究过,这个基本上不再考虑范围之内了,因为个人认为学习成本有些高,属于门槛较低但爬坡陡峭的框架。非常感谢您的回复!
2013/09/01 10:16
比较喜欢第1点,第4点也很赞,这是未来的趋势...
楼主可以参考下@JFinal
波总的很多观念和楼主的类似,哈哈...
2013/09/01 09:50

引用来自“黄勇”的评论

引用来自“屁屁果”的评论

引用来自“黄勇”的评论

引用来自“屁屁果”的评论

我实在是很难接收spring 越来越笨重……我的开源项目 springrain,除了第2点,其他的都实现了

关于第2点,我想也有必要解释一下。由于 Spring 管理的 Bean 越多,那么在 Spring 上下文初始化的时候就会越慢,一旦项目做大了,看看 Tomcat 的启动时间就知道了。更何况这样的等待时间,会让程序员的心情更加急躁。不错,Spring 3 已经做得很好了,可以减少 XML 配置,将工作转移到 Java 注解上了,这样解放了程序员,但是对整个框架付出了更多的牺牲,因为 Spring 需要在容器启动时一个个地去加载这些 Bean,时间比 XML 花得更多。同样,对于 Hibernate 这类 ORM 的看法,我也保持中立态度,性能确实不近人情,虽然写的代码少了,但系统也变慢了。

我只用了spring,没有hibernate等其他框架。如果spring初始化加载bean启动会慢也是原因,单例bean带来的性能提升怎么算,ioc注入也便于扩展,开发环境springbean可以懒加载,这样启动就非常快了

你的建议非常好!但我有些顾虑,如果单例多了,也就意味着 JVM 中的 static 成员多了,那么对于 GC 就不太有利(永久代所需的内存会增大),虽然内存已经不值钱了,但是能够写出高性能的程序,这才是程序员的目标与要求。我对 Spring 非常情有独钟,它教会了我很多,IoC 和 AOP 是两个最优秀的设计。我们不妨学习一下 Spring 中这些优秀的技术思路,然后结合自身环境,打造一个适合自己团队的开发框架,我想这个才是我的初衷。

你想的太多了,总强过疯狂的new吧,我以前也是自己封框架,最后明白,必须在流行通用框架上二次封装,不然私有框架的维护成本和培养成本远远超出你的想象。你可以下载试用下springrain,它是开发效率,性能,维护成本的三项综合
2013/09/01 09:43

引用来自“屁屁果”的评论

引用来自“黄勇”的评论

引用来自“屁屁果”的评论

我实在是很难接收spring 越来越笨重……我的开源项目 springrain,除了第2点,其他的都实现了

关于第2点,我想也有必要解释一下。由于 Spring 管理的 Bean 越多,那么在 Spring 上下文初始化的时候就会越慢,一旦项目做大了,看看 Tomcat 的启动时间就知道了。更何况这样的等待时间,会让程序员的心情更加急躁。不错,Spring 3 已经做得很好了,可以减少 XML 配置,将工作转移到 Java 注解上了,这样解放了程序员,但是对整个框架付出了更多的牺牲,因为 Spring 需要在容器启动时一个个地去加载这些 Bean,时间比 XML 花得更多。同样,对于 Hibernate 这类 ORM 的看法,我也保持中立态度,性能确实不近人情,虽然写的代码少了,但系统也变慢了。

我只用了spring,没有hibernate等其他框架。如果spring初始化加载bean启动会慢也是原因,单例bean带来的性能提升怎么算,ioc注入也便于扩展,开发环境springbean可以懒加载,这样启动就非常快了

你的建议非常好!但我有些顾虑,如果单例多了,也就意味着 JVM 中的 static 成员多了,那么对于 GC 就不太有利(永久代所需的内存会增大),虽然内存已经不值钱了,但是能够写出高性能的程序,这才是程序员的目标与要求。我对 Spring 非常情有独钟,它教会了我很多,IoC 和 AOP 是两个最优秀的设计。我们不妨学习一下 Spring 中这些优秀的技术思路,然后结合自身环境,打造一个适合自己团队的开发框架,我想这个才是我的初衷。
2013/09/01 09:29

引用来自“黄勇”的评论

引用来自“屁屁果”的评论

我实在是很难接收spring 越来越笨重……我的开源项目 springrain,除了第2点,其他的都实现了

关于第2点,我想也有必要解释一下。由于 Spring 管理的 Bean 越多,那么在 Spring 上下文初始化的时候就会越慢,一旦项目做大了,看看 Tomcat 的启动时间就知道了。更何况这样的等待时间,会让程序员的心情更加急躁。不错,Spring 3 已经做得很好了,可以减少 XML 配置,将工作转移到 Java 注解上了,这样解放了程序员,但是对整个框架付出了更多的牺牲,因为 Spring 需要在容器启动时一个个地去加载这些 Bean,时间比 XML 花得更多。同样,对于 Hibernate 这类 ORM 的看法,我也保持中立态度,性能确实不近人情,虽然写的代码少了,但系统也变慢了。

我是封装spring jdbc 实现的orm,性能可以达到java jdbc的极致
2013/09/01 09:25

引用来自“黄勇”的评论

引用来自“屁屁果”的评论

我实在是很难接收spring 越来越笨重……我的开源项目 springrain,除了第2点,其他的都实现了

关于第2点,我想也有必要解释一下。由于 Spring 管理的 Bean 越多,那么在 Spring 上下文初始化的时候就会越慢,一旦项目做大了,看看 Tomcat 的启动时间就知道了。更何况这样的等待时间,会让程序员的心情更加急躁。不错,Spring 3 已经做得很好了,可以减少 XML 配置,将工作转移到 Java 注解上了,这样解放了程序员,但是对整个框架付出了更多的牺牲,因为 Spring 需要在容器启动时一个个地去加载这些 Bean,时间比 XML 花得更多。同样,对于 Hibernate 这类 ORM 的看法,我也保持中立态度,性能确实不近人情,虽然写的代码少了,但系统也变慢了。

我只用了spring,没有hibernate等其他框架。如果spring初始化加载bean启动会慢也是原因,单例bean带来的性能提升怎么算,ioc注入也便于扩展,开发环境springbean可以懒加载,这样启动就非常快了
2013/09/01 09:18

引用来自“屁屁果”的评论

我实在是很难接收spring 越来越笨重……我的开源项目 springrain,除了第2点,其他的都实现了

关于第2点,我想也有必要解释一下。由于 Spring 管理的 Bean 越多,那么在 Spring 上下文初始化的时候就会越慢,一旦项目做大了,看看 Tomcat 的启动时间就知道了。更何况这样的等待时间,会让程序员的心情更加急躁。不错,Spring 3 已经做得很好了,可以减少 XML 配置,将工作转移到 Java 注解上了,这样解放了程序员,但是对整个框架付出了更多的牺牲,因为 Spring 需要在容器启动时一个个地去加载这些 Bean,时间比 XML 花得更多。同样,对于 Hibernate 这类 ORM 的看法,我也保持中立态度,性能确实不近人情,虽然写的代码少了,但系统也变慢了。
2013/09/01 09:08

引用来自“铂金小熊”的评论

第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。

关于第4条,我想要表达的意思是:视图不要使用 JSP 开发,因为性能不会特别高,而且对于美工不太方便。我想要的开发模式是,美工在做页面设计的时候,架构师可以进行程序设计,这两个过程是并行的。随后,美工交付的是 HTML、CSS、JS 以及相关资源文件,程序员拿到之后,无需将 HTML 转为 JSP,而是直接通过 AJAX 技术从服务端去获取数据,不再是传统的 MVC 模式,个人认为 MVC 模式已经有些过时了。​
2013/09/01 09:05
我实在是很难接收spring 越来越笨重……我的开源项目 springrain,除了第2点,其他的都实现了
2013/09/01 08:59
第6点我比较喜欢,第4条的话我倒是不推荐,個人比较喜欢纯粹的HTML页面展示效果。
回复 @
{{emojiItem.symbol}}
返回顶部
顶部