- 浏览: 102439 次
- 性别:
- 来自: 北京
博客专栏
-
自己动手写java 框架
浏览量:28410
最新评论
-
zh_harry:
线上demo已经上线http://www.sparrowzoo ...
高性能轻量级markdown 解析器java 版sparrow-markdown -
zh_harry:
sp42 写道演示地址 本地的? 代码 git clone 下 ...
自己动手写mvc框架SPARROW MVC -
sp42:
非常不错 赞一个
高性能轻量级markdown 解析器java 版sparrow-markdown -
sp42:
演示地址 本地的?
自己动手写mvc框架SPARROW MVC -
sp42:
我的框架也是用原生写,已弃坑。还是 MVVM 的爽,推荐 vu ...
SPARROW-JS 从0开始写 0依赖,原生JS框架
目前的JAVA 企业级开发框架,我们常用的大致包括IOC AOP MVC ORM框架
1、 IOC spring是一个非常棒的ico容器,其思想非常简单,用一个集合对象如MAP 来缓存对象(对象都是单例的),这也就是spring 所说容器内单例,它和java中的单例模式的区别在于单例模式是在当前java进程中保持单例,因为它有三个必要条件:private static 自身对象、private 构造方法、public static getInstance()方法,以保持在进程中单例,而spring只能保证在容器中单例,用户是可以手动再new出其他对象的。所以这部分如果为了简单可以不使用spring的ioc框架以单例模式替代,减少spring的jar包,缺点是可维护性和扩展性较差。或自己写一个ico容器以实现spring的ico功能。
2、aop aop的实质是动态代理模型,框架包括spring、AspectJ等,当然最行的是spring, spring有两种实现形式,一种是jdk的动态代理,一种是cglib字节码框架(比jdk的反射要快,其asm框架实现),典型的场景是数据库事务,个人感觉aop的应用其实可以去掉。可维护性并没有提高,反而变更复杂。aop事务是在threadlocal是以threadlocal为基础的。关于aop去或留希望各位讨论。
3、mvc框架 spring mvc struts2 这两个框架相比:spring mvc的思想还是比较先进的,因为struts2的action bean不是单例的,每次通过反射new出一个对象,性能会相对较低。而spring mvc controller是单例的,继承至servlet类(单例多纯种)。它的实现思想的是方法参数的注入。两个都支持模型驱动。spring mvc有一个缺点,注解的配置模型全部用的java反射。性能也会有影响。两者都支持注解,个人认为xml要好于注解,开发阶段注解要优于xml,因为方便,而维护起来可能会比较麻烦,尤其是对刚接手项目的新人。最好的方案是取两者之长,去其缺点,保留spring的单例通过方法注入,注入时将jdk反射去掉,换成asm的注入思想,以提高性能。
4、ORM框架 hibernate mybatis。hiberate是全自动的orm框架,优点是简单使用方便,但jar包很多,大数据SQL调优问题比较大。mybatis 由ibatis升级,半自动orm框架,需要手动写sql,优点是方便sql调试,缺点是对于简单的单表增删改也需要手动写SQL,比较麻烦。所以最好是结合两个框架的优点开发一个单表的增删改orm(不依赖SQL),复杂SQL可以直接通过JDBC这样可以提高性能。
这就是五年和两年的区别!前期的规划,权衡和思考会对后期的开发和维护产生生很大影想,所以用一个框架的出发点不止是会用,能实现功能。要考虑的事情真的很多。回复越来越有质量了!
这个说到点子上了
是可以,所有的都可以是单例,但我们不能那么做,单例的成员变量是共享的,是线程不安全的。servlet是单例多线程,因为他没有成员变量线程安全的。这是基础吧!
我的看法:
(1)是使用单实例模式还是new,是由需求决定的,一个数据库连接池,从技术需求层面上看,是必须单实例的,能够再次被创建是违反业务约束和要求的;普通的对象,企图做成单实例,有什么价值?
(2)是使用new还是factory,差别不是多大,你要是有多态,打算把细节封装起来,就工厂模式吧
(3)缓存:大多数对象,缓存价值不大,除非第一你想避免多次查询数据库,第二数据库里的数据不会频繁变化,缓存中的和数据库里的有点差别也不大要紧;第三效率是非常关键的,这个时候可以考虑缓存
(3)现在版本的java,反射开销已经很小,即便你不会反射或者缓存反射的method和field,java里边API的东西很多也是在用反射。
这些都是对的,不错!
我的看法:
(1)是使用单实例模式还是new,是由需求决定的,一个数据库连接池,从技术需求层面上看,是必须单实例的,能够再次被创建是违反业务约束和要求的;普通的对象,企图做成单实例,有什么价值?
(2)是使用new还是factory,差别不是多大,你要是有多态,打算把细节封装起来,就工厂模式吧
(3)缓存:大多数对象,缓存价值不大,除非第一你想避免多次查询数据库,第二数据库里的数据不会频繁变化,缓存中的和数据库里的有点差别也不大要紧;第三效率是非常关键的,这个时候可以考虑缓存
(3)现在版本的java,反射开销已经很小,即便你不会反射或者缓存反射的method和field,java里边API的东西很多也是在用反射。
感谢您的关注
你说的这两件事都正在做
框架已经开源了。在googlecode里,博客也有介绍,但还没有demo
demo我会抽时间加,实践性项目也正在做,很快就要上线。欢迎常来!
创建对象的开销与直接new会差很多的
spring有单例和非单例我想看这篇文章的人都知道,我只是举了单例的例子而已。
方法缓存可以缓存,但
invoke方法的执行仍和直接方法的执行差很多,这个可以用字节码处理,有兴趣看一下refectasm基于非常简单只有四个类。
我入了五年门了,还在入门,感谢多批评。
中国很多都是拿来主意,你说的在项目中不断完善,我很赞同!
1、 IOC spring是一个非常棒的ico容器,其思想非常简单,用一个集合对象如MAP 来缓存对象(对象都是单例的),这也就是spring 所说容器内单例,它和java中的单例模式的区别在于单例模式是在当前java进程中保持单例,因为它有三个必要条件:private static 自身对象、private 构造方法、public static getInstance()方法,以保持在进程中单例,而spring只能保证在容器中单例,用户是可以手动再new出其他对象的。所以这部分如果为了简单可以不使用spring的ioc框架以单例模式替代,减少spring的jar包,缺点是可维护性和扩展性较差。或自己写一个ico容器以实现spring的ico功能。
2、aop aop的实质是动态代理模型,框架包括spring、AspectJ等,当然最行的是spring, spring有两种实现形式,一种是jdk的动态代理,一种是cglib字节码框架(比jdk的反射要快,其asm框架实现),典型的场景是数据库事务,个人感觉aop的应用其实可以去掉。可维护性并没有提高,反而变更复杂。aop事务是在threadlocal是以threadlocal为基础的。关于aop去或留希望各位讨论。
3、mvc框架 spring mvc struts2 这两个框架相比:spring mvc的思想还是比较先进的,因为struts2的action bean不是单例的,每次通过反射new出一个对象,性能会相对较低。而spring mvc controller是单例的,继承至servlet类(单例多纯种)。它的实现思想的是方法参数的注入。两个都支持模型驱动。spring mvc有一个缺点,注解的配置模型全部用的java反射。性能也会有影响。两者都支持注解,个人认为xml要好于注解,开发阶段注解要优于xml,因为方便,而维护起来可能会比较麻烦,尤其是对刚接手项目的新人。最好的方案是取两者之长,去其缺点,保留spring的单例通过方法注入,注入时将jdk反射去掉,换成asm的注入思想,以提高性能。
4、ORM框架 hibernate mybatis。hiberate是全自动的orm框架,优点是简单使用方便,但jar包很多,大数据SQL调优问题比较大。mybatis 由ibatis升级,半自动orm框架,需要手动写sql,优点是方便sql调试,缺点是对于简单的单表增删改也需要手动写SQL,比较麻烦。所以最好是结合两个框架的优点开发一个单表的增删改orm(不依赖SQL),复杂SQL可以直接通过JDBC这样可以提高性能。
评论
46 楼
alexlx
2013-07-22
框架始终都只是工具,开发出来是帮人解决问题的。
首先要明确了解框架能解决什么问题,然后再在实际工作中权衡采用或者不采用某种框架。
首先要明确了解框架能解决什么问题,然后再在实际工作中权衡采用或者不采用某种框架。
45 楼
windshome
2013-07-22
其实说白了,最重要的是,负责人要有责任心、要不怕困难,要有长远的考虑,本着这样的精神来做设计和开发。
44 楼
zh_harry
2013-07-22
windshome 写道
我觉得扯得太远了,没有那么大的目标,也不一定说全部都自己做,不用别人的框架,我的主张只是在你用别人的东西之前,把方方面面的事情想清楚了。
不仅仅是当前实现功能,还包括后期的改进完善、bug的修改,维护的成本和代价,框架出现问题你能否修改。
那句原则“没有免费的午餐”是非常睿智的,吃了免费的午餐,就别嫌不合乎自己的口味,营养单一;如果想吃丰盛的大餐,美味佳肴,需要耐心,需要代价。做一个产品或一个项目,根据需求和场景去衡量,到底怎么取舍,是拿现成的开源组件拼凑,还是自己从头做起,还是怎么样来搞,是需要平衡和妥协的。
再有,使用了开源的框架和组件,开始没有付代价,但是到后期维护、改进、bug修改时再付代价,挤牙膏的方式付代价,俗话“背着扛着一样沉”。不要有图便宜的思想,不要指望别人努力工作,解决你的问题,而你不需要付出任何代价!!!这是一个关键问题。
不仅仅是当前实现功能,还包括后期的改进完善、bug的修改,维护的成本和代价,框架出现问题你能否修改。
那句原则“没有免费的午餐”是非常睿智的,吃了免费的午餐,就别嫌不合乎自己的口味,营养单一;如果想吃丰盛的大餐,美味佳肴,需要耐心,需要代价。做一个产品或一个项目,根据需求和场景去衡量,到底怎么取舍,是拿现成的开源组件拼凑,还是自己从头做起,还是怎么样来搞,是需要平衡和妥协的。
再有,使用了开源的框架和组件,开始没有付代价,但是到后期维护、改进、bug修改时再付代价,挤牙膏的方式付代价,俗话“背着扛着一样沉”。不要有图便宜的思想,不要指望别人努力工作,解决你的问题,而你不需要付出任何代价!!!这是一个关键问题。
这就是五年和两年的区别!前期的规划,权衡和思考会对后期的开发和维护产生生很大影想,所以用一个框架的出发点不止是会用,能实现功能。要考虑的事情真的很多。回复越来越有质量了!
43 楼
windshome
2013-07-22
我觉得扯得太远了,没有那么大的目标,也不一定说全部都自己做,不用别人的框架,我的主张只是在你用别人的东西之前,把方方面面的事情想清楚了。
不仅仅是当前实现功能,还包括后期的改进完善、bug的修改,维护的成本和代价,框架出现问题你能否修改。
那句原则“没有免费的午餐”是非常睿智的,吃了免费的午餐,就别嫌不合乎自己的口味,营养单一;如果想吃丰盛的大餐,美味佳肴,需要耐心,需要代价。做一个产品或一个项目,根据需求和场景去衡量,到底怎么取舍,是拿现成的开源组件拼凑,还是自己从头做起,还是怎么样来搞,是需要平衡和妥协的。
再有,使用了开源的框架和组件,开始没有付代价,但是到后期维护、改进、bug修改时再付代价,挤牙膏的方式付代价,俗话“背着扛着一样沉”。不要有图便宜的思想,不要指望别人努力工作,解决你的问题,而你不需要付出任何代价!!!这是一个关键问题。
不仅仅是当前实现功能,还包括后期的改进完善、bug的修改,维护的成本和代价,框架出现问题你能否修改。
那句原则“没有免费的午餐”是非常睿智的,吃了免费的午餐,就别嫌不合乎自己的口味,营养单一;如果想吃丰盛的大餐,美味佳肴,需要耐心,需要代价。做一个产品或一个项目,根据需求和场景去衡量,到底怎么取舍,是拿现成的开源组件拼凑,还是自己从头做起,还是怎么样来搞,是需要平衡和妥协的。
再有,使用了开源的框架和组件,开始没有付代价,但是到后期维护、改进、bug修改时再付代价,挤牙膏的方式付代价,俗话“背着扛着一样沉”。不要有图便宜的思想,不要指望别人努力工作,解决你的问题,而你不需要付出任何代价!!!这是一个关键问题。
42 楼
zh_harry
2013-07-21
alvin198761 写道
别人的语言也没意思,咱自己写一个吧,来,扶清灭洋,走起
已经写了呀,看我的博客,并且已经开源了http://lizhizhang.iteye.com/blog/1896545
大家拍砖
上面说得这些思想全包括了,还在升级中,希望大家关注...
也希望小编小这编文件也推荐到首页,绝对原创,没有一个jar,0框架开发,我很喜欢你所说的。
这个框架的名字我给他叫sparrow
麻省虽小,五脏俱全,其实中国就应该用自己的框架
再加一句,这么多人看过只有你提出这个问题,很棒!!
用别人的语言也没意思,咱自己写一个吧,来,扶清灭洋,走起
产生一个新的语言不是为了扶清灭洋,而是一个公司自己的业务需要,加上自己的技术积累,有这个能力了,在当前语言没法满足自己的要求下,开始做的,java也是因此产生的。国内技术能力不说低于美国,至少是低于 日本,韩国,印度,这些国家的,其主要原因不是人的问题,是制度早就的,上面层层转包,给下面一个很少的费用,老板想在很少的费用上面赚钱,就不得不加快时间,加快时间的最好办法就是用框架,用框架就导致了现在的现状,我的老板不一样,他常常说能自己实现,就不用别人的,不然我们的产品就别别人绑架了,出了问题我们搞不定,所以,我们不用别人的框架,少用第三方jar
Leon.Wood 写道
zh_harry 写道
zh_harry 写道
alvin198761 写道
一群用框架的人早就了中国IT行业的技术现状,一批用windows的人,早就了中国对windows的依赖的现状,
我不用框架,不用第三方jar,java开发照样继续,看到讨论框架还争来争去,想问一句,咱能自己写个框架,然后讨论自己的好不好行不,你说的好不好,都是别人的东西,有意思吗?
我不用框架,不用第三方jar,java开发照样继续,看到讨论框架还争来争去,想问一句,咱能自己写个框架,然后讨论自己的好不好行不,你说的好不好,都是别人的东西,有意思吗?
已经写了呀,看我的博客,并且已经开源了http://lizhizhang.iteye.com/blog/1896545
大家拍砖
上面说得这些思想全包括了,还在升级中,希望大家关注...
也希望小编小这编文件也推荐到首页,绝对原创,没有一个jar,0框架开发,我很喜欢你所说的。
这个框架的名字我给他叫sparrow
麻省虽小,五脏俱全,其实中国就应该用自己的框架
再加一句,这么多人看过只有你提出这个问题,很棒!!
用别人的语言也没意思,咱自己写一个吧,来,扶清灭洋,走起
产生一个新的语言不是为了扶清灭洋,而是一个公司自己的业务需要,加上自己的技术积累,有这个能力了,在当前语言没法满足自己的要求下,开始做的,java也是因此产生的。国内技术能力不说低于美国,至少是低于 日本,韩国,印度,这些国家的,其主要原因不是人的问题,是制度早就的,上面层层转包,给下面一个很少的费用,老板想在很少的费用上面赚钱,就不得不加快时间,加快时间的最好办法就是用框架,用框架就导致了现在的现状,我的老板不一样,他常常说能自己实现,就不用别人的,不然我们的产品就别别人绑架了,出了问题我们搞不定,所以,我们不用别人的框架,少用第三方jar
这个说到点子上了
41 楼
alvin198761
2013-07-21
别人的语言也没意思,咱自己写一个吧,来,扶清灭洋,走起
已经写了呀,看我的博客,并且已经开源了http://lizhizhang.iteye.com/blog/1896545
大家拍砖
上面说得这些思想全包括了,还在升级中,希望大家关注...
也希望小编小这编文件也推荐到首页,绝对原创,没有一个jar,0框架开发,我很喜欢你所说的。
这个框架的名字我给他叫sparrow
麻省虽小,五脏俱全,其实中国就应该用自己的框架
再加一句,这么多人看过只有你提出这个问题,很棒!!
用别人的语言也没意思,咱自己写一个吧,来,扶清灭洋,走起
产生一个新的语言不是为了扶清灭洋,而是一个公司自己的业务需要,加上自己的技术积累,有这个能力了,在当前语言没法满足自己的要求下,开始做的,java也是因此产生的。国内技术能力不说低于美国,至少是低于 日本,韩国,印度,这些国家的,其主要原因不是人的问题,是制度早就的,上面层层转包,给下面一个很少的费用,老板想在很少的费用上面赚钱,就不得不加快时间,加快时间的最好办法就是用框架,用框架就导致了现在的现状,我的老板不一样,他常常说能自己实现,就不用别人的,不然我们的产品就别别人绑架了,出了问题我们搞不定,所以,我们不用别人的框架,少用第三方jar
Leon.Wood 写道
zh_harry 写道
zh_harry 写道
alvin198761 写道
一群用框架的人早就了中国IT行业的技术现状,一批用windows的人,早就了中国对windows的依赖的现状,
我不用框架,不用第三方jar,java开发照样继续,看到讨论框架还争来争去,想问一句,咱能自己写个框架,然后讨论自己的好不好行不,你说的好不好,都是别人的东西,有意思吗?
我不用框架,不用第三方jar,java开发照样继续,看到讨论框架还争来争去,想问一句,咱能自己写个框架,然后讨论自己的好不好行不,你说的好不好,都是别人的东西,有意思吗?
已经写了呀,看我的博客,并且已经开源了http://lizhizhang.iteye.com/blog/1896545
大家拍砖
上面说得这些思想全包括了,还在升级中,希望大家关注...
也希望小编小这编文件也推荐到首页,绝对原创,没有一个jar,0框架开发,我很喜欢你所说的。
这个框架的名字我给他叫sparrow
麻省虽小,五脏俱全,其实中国就应该用自己的框架
再加一句,这么多人看过只有你提出这个问题,很棒!!
用别人的语言也没意思,咱自己写一个吧,来,扶清灭洋,走起
产生一个新的语言不是为了扶清灭洋,而是一个公司自己的业务需要,加上自己的技术积累,有这个能力了,在当前语言没法满足自己的要求下,开始做的,java也是因此产生的。国内技术能力不说低于美国,至少是低于 日本,韩国,印度,这些国家的,其主要原因不是人的问题,是制度早就的,上面层层转包,给下面一个很少的费用,老板想在很少的费用上面赚钱,就不得不加快时间,加快时间的最好办法就是用框架,用框架就导致了现在的现状,我的老板不一样,他常常说能自己实现,就不用别人的,不然我们的产品就别别人绑架了,出了问题我们搞不定,所以,我们不用别人的框架,少用第三方jar
40 楼
zh_harry
2013-07-21
zhaomengbin 写道
struts2 的bean 也可以在spring配置为单例,性能你是怎么测出来的?
是可以,所有的都可以是单例,但我们不能那么做,单例的成员变量是共享的,是线程不安全的。servlet是单例多线程,因为他没有成员变量线程安全的。这是基础吧!
39 楼
zhaomengbin
2013-07-21
struts2 的bean 也可以在spring配置为单例,性能你是怎么测出来的?
38 楼
zh_harry
2013-07-21
疯子在思考系之IOC
http://lizhizhang.iteye.com/blog/1910976
疯子在思考系列会讲解sparrow框架的每一个点,各位关注
http://lizhizhang.iteye.com/blog/1910976
疯子在思考系列会讲解sparrow框架的每一个点,各位关注
37 楼
wuchsh2013
2013-07-20
你真是一个大牛
36 楼
zh_harry
2013-07-20
windshome 写道
kentkwan 写道
感觉作者处于入门的级别。文中不难找出误导成分并缺乏佐证的观点。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
我的看法:
(1)是使用单实例模式还是new,是由需求决定的,一个数据库连接池,从技术需求层面上看,是必须单实例的,能够再次被创建是违反业务约束和要求的;普通的对象,企图做成单实例,有什么价值?
(2)是使用new还是factory,差别不是多大,你要是有多态,打算把细节封装起来,就工厂模式吧
(3)缓存:大多数对象,缓存价值不大,除非第一你想避免多次查询数据库,第二数据库里的数据不会频繁变化,缓存中的和数据库里的有点差别也不大要紧;第三效率是非常关键的,这个时候可以考虑缓存
(3)现在版本的java,反射开销已经很小,即便你不会反射或者缓存反射的method和field,java里边API的东西很多也是在用反射。
这些都是对的,不错!
35 楼
windshome
2013-07-20
kentkwan 写道
感觉作者处于入门的级别。文中不难找出误导成分并缺乏佐证的观点。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
我的看法:
(1)是使用单实例模式还是new,是由需求决定的,一个数据库连接池,从技术需求层面上看,是必须单实例的,能够再次被创建是违反业务约束和要求的;普通的对象,企图做成单实例,有什么价值?
(2)是使用new还是factory,差别不是多大,你要是有多态,打算把细节封装起来,就工厂模式吧
(3)缓存:大多数对象,缓存价值不大,除非第一你想避免多次查询数据库,第二数据库里的数据不会频繁变化,缓存中的和数据库里的有点差别也不大要紧;第三效率是非常关键的,这个时候可以考虑缓存
(3)现在版本的java,反射开销已经很小,即便你不会反射或者缓存反射的method和field,java里边API的东西很多也是在用反射。
34 楼
zh_harry
2013-07-20
关于框架的事情,我会抽时间一一在博客中讲解,希望喜欢学习框架设计和喜欢思考的同学一起拍砖
33 楼
zh_harry
2013-07-20
witcheryne 写道
so ???
楼主的框架打算什么时候面世?
或者有什么实战指导型项目即将面世?
楼主的框架打算什么时候面世?
或者有什么实战指导型项目即将面世?
感谢您的关注
你说的这两件事都正在做
框架已经开源了。在googlecode里,博客也有介绍,但还没有demo
demo我会抽时间加,实践性项目也正在做,很快就要上线。欢迎常来!
32 楼
witcheryne
2013-07-20
so ???
楼主的框架打算什么时候面世?
或者有什么实战指导型项目即将面世?
楼主的框架打算什么时候面世?
或者有什么实战指导型项目即将面世?
31 楼
zh_harry
2013-07-20
kentkwan 写道
感觉作者处于入门的级别。文中不难找出误导成分并缺乏佐证的观点。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
创建对象的开销与直接new会差很多的
spring有单例和非单例我想看这篇文章的人都知道,我只是举了单例的例子而已。
方法缓存可以缓存,但
invoke方法的执行仍和直接方法的执行差很多,这个可以用字节码处理,有兴趣看一下refectasm基于非常简单只有四个类。
我入了五年门了,还在入门,感谢多批评。
30 楼
kentkwan
2013-07-20
感觉作者处于入门的级别。文中不难找出误导成分并缺乏佐证的观点。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
例如:
1. 创建一个对象的时间开销其实可以忽略不算
2. spring对于bean管理的默认策略是singleton,但是也可以是prototype,并非作者所说的纯单例。
3. 反射的过程中开销最大的是获取method或者是获取field,如果进行反射的时候能把method和field进行缓存处理,反射的开销也是可以忽略不算。
29 楼
zh_harry
2013-07-20
windshome 写道
如果开发团队,或者公司,缺乏下列这些人员或人才,只好使用这些框架,以图加快开发进程:
(1)概念的分析和设计人员
从需求中分析中产品的核心本质,设计产品的概念体系,理顺各个概念的关系。
(2)核心架构人员
根据概念,建立稳固的架构,清晰划分各个部分的关联关系和职责定义;能够根据这些特点,权衡利弊,采取最适合的技术选型。
(3)资深的实现者
框架实现起来当然不容易,但是要想做出对一个产品适用的一个服务器框架、或者数据库连接池,还是没有那么困难的,而且,自己实现也是随着项目、产品的进展而不断成长完善的。
当然,即便有这样的人,使用开源框架也无可厚非---只要不依赖它们,离开他们就活不成就行。
(1)概念的分析和设计人员
从需求中分析中产品的核心本质,设计产品的概念体系,理顺各个概念的关系。
(2)核心架构人员
根据概念,建立稳固的架构,清晰划分各个部分的关联关系和职责定义;能够根据这些特点,权衡利弊,采取最适合的技术选型。
(3)资深的实现者
框架实现起来当然不容易,但是要想做出对一个产品适用的一个服务器框架、或者数据库连接池,还是没有那么困难的,而且,自己实现也是随着项目、产品的进展而不断成长完善的。
当然,即便有这样的人,使用开源框架也无可厚非---只要不依赖它们,离开他们就活不成就行。
中国很多都是拿来主意,你说的在项目中不断完善,我很赞同!
28 楼
windshome
2013-07-20
如果开发团队,或者公司,缺乏下列这些人员或人才,只好使用这些框架,以图加快开发进程:
(1)概念的分析和设计人员
从需求中分析中产品的核心本质,设计产品的概念体系,理顺各个概念的关系。
(2)核心架构人员
根据概念,建立稳固的架构,清晰划分各个部分的关联关系和职责定义;能够根据这些特点,权衡利弊,采取最适合的技术选型。
(3)资深的实现者
框架实现起来当然不容易,但是要想做出对一个产品适用的一个服务器框架、或者数据库连接池,还是没有那么困难的,而且,自己实现也是随着项目、产品的进展而不断成长完善的。
当然,即便有这样的人,使用开源框架也无可厚非---只要不依赖它们,离开他们就活不成就行。
(1)概念的分析和设计人员
从需求中分析中产品的核心本质,设计产品的概念体系,理顺各个概念的关系。
(2)核心架构人员
根据概念,建立稳固的架构,清晰划分各个部分的关联关系和职责定义;能够根据这些特点,权衡利弊,采取最适合的技术选型。
(3)资深的实现者
框架实现起来当然不容易,但是要想做出对一个产品适用的一个服务器框架、或者数据库连接池,还是没有那么困难的,而且,自己实现也是随着项目、产品的进展而不断成长完善的。
当然,即便有这样的人,使用开源框架也无可厚非---只要不依赖它们,离开他们就活不成就行。
27 楼
zhongmin2012
2013-07-20
我觉得还是看公司文化,
发表评论
-
零基础小白从0到1的spring cloud alibaba 全家桶项目
2022-10-18 02:15 2551零基础暖心计划课程内容 https://spar ... -
sparrow 支持JDK依赖注入功能
2022-08-02 15:28 2008麻雀虽小,但五脏俱全 sparrow 源自中国俗语 ... -
Sparrow js 框架开源上线
2019-06-29 21:28 1045sparraw 框架js 版开源上线 www.sparr ... -
SPARROW-JS 从0开始写 0依赖,原生JS框架
2018-03-15 19:52 1672SPARROW-JS 前端JS框架变幻莫测,但原生js 接口 ... -
Sparrow算法篇 从日期取交集到思维模式-2
2018-03-09 18:04 1565接上一篇 Sparrow算法篇 从日期取交集到思维模式 ... -
高性能轻量级markdown 解析器java 版sparrow-markdown
2018-02-24 17:17 4337动机 markdown 已成为网络博客最主要的排版格式。 ... -
Sparrow 算法篇 由日期取交集到思维模式
2018-02-06 23:46 1772日期交集 早在13年左右的时侯,做过一个系统,功能很简单 ... -
自己动手写mvc框架SPARROW MVC
2018-02-01 22:31 1595SPARROW-MVC SPARROW-MVC 是SPA ... -
REDIS客户端封装实践2
2018-01-30 13:32 1126接上一篇 [REDIS客户端封装意淫](https:// ... -
SPARROW 框架redis客户端封装实践
2018-01-25 21:41 1156redis 本身有客户端,先抛出来一个问题?为什么要对red ... -
SPARROW架构介绍
2018-01-24 22:02 1312sparrow 框架设计最大化解耦,理论上业务层只依赖SPA ... -
Sparrow 框架设计哲学
2018-01-24 13:21 1274sparrow 框架 麻雀虽小,但五脏俱全 为什么要写这 ... -
tomcat 日志那点事
2017-07-15 14:06 813tomcat 启动时使用的是java.util.logger ... -
疯子在思考之-异常与return 的差别
2013-10-14 14:46 1439程序异常会中断程序执行,所有所有的异常都需要捕获,否则会 ... -
MANIFEST.MF 文件内容完全详解
2013-09-02 14:49 1326打开Java的JAR文件我们经常可以看到文件中包含着一个ME ... -
疯子奉献-一个符号惹的祸
2013-08-30 14:14 1778程序员是严谨的,但是再严谨也容易出问题,这就叫做bug。 我 ... -
疯子在思考之-从日志想到的软件架构
2013-08-28 18:57 1948谈到架构是一个很泛的话题 这里我们讨论一下兼容性与扩展性 ... -
疯子在思考之java 线程的那点事儿
2013-08-14 15:13 3299很长时间没写博客了,最近事情比较多 之前在文章中提到过tomc ... -
linux 自动重启tomcat 脚本
2013-08-12 17:59 3012Tomcat作为开源的服务器 ... -
tomcat 优化及错误All threads (10) are currently busy, waiting. Increase maxThreads错误
2013-08-12 17:42 15961. 如何加大tomcat连接数 在tomcat配置文件se ...
相关推荐
### Java框架研发思考 #### 背景与动机 在软件工程领域,特别是在Java平台下进行应用开发时,框架的研发不仅是技术挑战的体现,更是对未来技术趋势的一种预测和引导。本文作者彭晨阳分享了他在开发Jdon框架过程中...
【Java框架研发思考】 本文由彭晨阳撰写,回顾了他开发Jdon框架的心路历程,分享了在Java开发中的经验和教训,对于Java开发者尤其是面试者具有一定的参考价值。Jdon框架的诞生源于对Web应用多层架构复杂性的反思,...
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
Java框架Vert.x是近年来在Java社区中备受关注的一个轻量级、高性能的应用平台,它基于全异步的Java服务器Netty,旨在解决传统Java框架在处理高并发、低延迟场景下的性能瓶颈。本文将深入探讨Vert.x的核心特性和优势...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
标题中的“一个Java框架引发的思考:语言、框架、范式转换和软件生产力”提示了本文将探讨一个特定的Java框架,并由此引申出关于编程语言、开发框架、编程范式以及它们如何影响软件开发效率的主题。从描述中提供的...
**Java MVC 框架实例解析** 在软件开发中,Model-View-Controller(MVC)模式是一种常用的设计模式,尤其在Web应用中被广泛采用。这个Java MVC框架的例子为我们提供了一个直观的学习平台,帮助初学者理解MVC的运作...
本文主要探讨了在基于SSM(Spring+Spring MVC+MyBatis)框架的Java Web开发课程教学中出现的问题,并提出了相应的改进措施。以下是详细的知识点总结: 1. SSM框架介绍: SSM框架是目前Java Web开发中广泛使用的一种...
引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 ...1.11 Java和因特网 ...1.13 Java还是C++?...附录E 关于垃圾收集的一些话 附录F 推荐读物
如果这是一个文本文件,那么它可能包含了博主对于Java语言的深入见解,包括但不限于类和对象、封装、继承、多态等面向对象特性,也可能是关于异常处理、集合框架、IO流、线程并发、反射、泛型、注解等方面的讨论。...
### Java基础知识思考题详解 #### 1. 缩写JDK的含义是什么? JDK,全称Java Development Kit,即Java开发工具包。它是Java软件开发的基础,包含了编写、编译和运行Java程序所需的所有工具。JDK不仅包括Java编译器...
关于Java框架Vert.x的几点思考.docx 关于堆和栈的那些事.docx 写好Java代码的30条经验总结.docx 华为java笔试面试题2014.doc 多态的理解.docx 大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业...
《JAVA SMART系统-系统框架设计与开发》是一个深入探讨Java技术在构建智能系统中的应用的资源包,包含源代码和相关论文。这个压缩包旨在帮助开发者理解和实践如何使用Java技术来构建高效、灵活且可扩展的系统框架。...
Hibernate Validator是一个流行的Java Bean校验框架,它支持JSR-303和JSR-349标准。通过在属性上定义如`@NotNull`、`@Min`、`@Max`等注解,可以自动进行数据校验。例如: ```java public class User { @NotNull ...
关于Java框架Vert.x的几点思考.docx 关于堆和栈的那些事.docx 写好Java代码的30条经验总结.docx 华为java笔试面试题2014.doc 多态的理解.docx 大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业...
关于Java框架Vert.x的几点思考.docx 关于堆和栈的那些事.docx 写好Java代码的30条经验总结.docx 华为java笔试面试题2014.doc 多态的理解.docx 大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业...
12. **Java EE**:对于进阶学习,Java Enterprise Edition(Java EE)提供了服务器端开发的框架,如Servlet、JSP、EJB等,用于构建分布式应用。 13. **实例源程序**:这些实例程序将帮助你理解理论知识的实际应用,...
Java框架研发思考.docx Java程序员们最常犯的10个错误.docx java程序员的就业指导(重点).docx Java程序员面试宝典 .pdf java笔试题大集合及答案 Java经典项目集锦.rar JAVA编程题全集(100题及答案).doc Java面试文档...
本书通过对比Java和C++,使读者能够更好地理解Java的独特之处,并为初学者提供了一个逐步学习Java的框架。 第1章"对象入门"探讨了面向对象编程的基本原理,包括抽象、接口、隐藏实现、继承、多态以及异常处理。作者...
《探秘Java:如何像计算机科学家一样思考》这本书由唐尼撰写,张平翻译,旨在帮助读者以计算机科学家的视角理解和掌握Java编程语言。通过深入阅读这本书,我们可以挖掘出一系列重要的Java编程和计算机科学思维的知识...