关于开发效率和性能的选择 hproseWebServiceSeamHibernateJDBC
程序员文章站
2022-05-13 08:11:13
...
开发效率和性能总是死敌。
一个技术,基本上要么开发效率低下但性能超好,或者开发效率提高但性能下降了。
je上最近的2个帖子,其实都是在讨论一个问题,到底是性能优先还是易用性优先。(rpc or norpc,hibernate or jdbc)
我看到很多人都选择性能优先。
其实这个问题很简单,选择性能优先的选择norpc,jdbc,甚至存储过程。
倾向开发效率的人往往选择rpc,hibernate。
同类的选择还有stateless or stateful.spring的作者rod johnson一开始也曾鄙视stateful ejb,理由是性能太差。不过后来他也承认stateful ejb有其合适的用途。
另外一个类似的例子是web层的状态管理。如今的大多数基于jsp的mvc都是无状态的。但hibernate的作者却提出要让web层有状态。他搞了web beans规范,推出了seam产品。
显然,seam的一个目的就是通过新增的状态管理,简化web的开发。然而,同时他也指出,seam适合小型的相对简单的项目。
我的结论就是,每种技术都是双刃剑,作为程序员,尤其是架构师,要根据情况,选择合适的技术。不能简单的说那种技术好还是不好,而是得有上下文。
不能盲目的追求性能,
舍弃hibernate,舍弃stateful session bean,舍弃web service,
而选择jdbc, 存储过程,stateless session bean, socket.
对于性能,在满足需求的前提下,就应该追逐开发效率。否则你连java也不要用了,直接写汇编去吧。
不见得每一个系统都有庞大的用户群。我相信绝大多数的系统都是中小型的系统,绝对有理由牺牲部分多余的性能换来开发的简化。
更何况就算是一个庞大的系统,正因为其庞大,也不必只选择单一的技术。比如客户访问的模块因为人多,考虑性能而选择jdbc。
但管理模块则考虑整个系统就几个管理员使用,可以选择hibernate。
一个技术,基本上要么开发效率低下但性能超好,或者开发效率提高但性能下降了。
je上最近的2个帖子,其实都是在讨论一个问题,到底是性能优先还是易用性优先。(rpc or norpc,hibernate or jdbc)
我看到很多人都选择性能优先。
其实这个问题很简单,选择性能优先的选择norpc,jdbc,甚至存储过程。
倾向开发效率的人往往选择rpc,hibernate。
同类的选择还有stateless or stateful.spring的作者rod johnson一开始也曾鄙视stateful ejb,理由是性能太差。不过后来他也承认stateful ejb有其合适的用途。
另外一个类似的例子是web层的状态管理。如今的大多数基于jsp的mvc都是无状态的。但hibernate的作者却提出要让web层有状态。他搞了web beans规范,推出了seam产品。
显然,seam的一个目的就是通过新增的状态管理,简化web的开发。然而,同时他也指出,seam适合小型的相对简单的项目。
我的结论就是,每种技术都是双刃剑,作为程序员,尤其是架构师,要根据情况,选择合适的技术。不能简单的说那种技术好还是不好,而是得有上下文。
不能盲目的追求性能,
舍弃hibernate,舍弃stateful session bean,舍弃web service,
而选择jdbc, 存储过程,stateless session bean, socket.
对于性能,在满足需求的前提下,就应该追逐开发效率。否则你连java也不要用了,直接写汇编去吧。
不见得每一个系统都有庞大的用户群。我相信绝大多数的系统都是中小型的系统,绝对有理由牺牲部分多余的性能换来开发的简化。
更何况就算是一个庞大的系统,正因为其庞大,也不必只选择单一的技术。比如客户访问的模块因为人多,考虑性能而选择jdbc。
但管理模块则考虑整个系统就几个管理员使用,可以选择hibernate。
上一篇: 北魏献文帝拓跋弘为何要成为太上皇?拓跋弘是怎么死的?
下一篇: 浅谈新手站长容易走进的七个茫区