Spiga

再说说JSF适合在什么样的场合下使用

以前我在JavaEye上发过一篇关于JSF的文章——做JSF很久了,我也说说JSF的缺点——当时的反响还是大的,过了几个月了,根据大家的回复和我对JSF的进一步深入了解,再总结一下。

整体上我的观点还是没有太大变化的,JSF在服务器端保存组件状态的这个特点使得它非常的不REST,也显得十分的笨重,但这种在无状态的HTTP协议上模拟出组件的有状态的做法,确实给开发带来了很多的便利。所以这个问题要辩证的看,对于那些用户数和访问量不大的企业应用,我觉得用JSF开发还是很合适的。另一个问题是JSF的学习曲线和难度,我想说的是千万不要指望那些可视化的IDE工具能显著降低JSF的开发难度,即使这些工具在80%的情况下能显著提高开发效率,但你的团队中还是要有非常熟悉JSF的人——不仅要熟悉生命周期和方方面面的细节,而且要能够合理的扩展框架和自定义组件。而且团队中的成员最好都能有一些OO的功底,如果都用action-based的基于MVC的Web框架(比如Struts、SpringMVC)的思想来开发JSF会非常的别扭,不过说实话,现在大多的WEB程序员似乎都不太熟悉OO,所以要使用JSF必须舍得花点成本培训你的团队成员,这比买那些快速开发工具要划算的多。我记得TSS上 有一篇文章讨论为什么招聘wicket的程序员的广告很少,wicket的fans说我们不一定要招聘使用过wicket程序员,我们只要招聘那些懂OO的程序员就一定能做好wicket了。我想对于JSF这个说法也是适用的。

所以我认为JSF适合那些经常做访问量不是很大业务可能比较复杂的内部应用的,一个有志于技术积累和稳定团队建设的公司使用。

具体的优缺点就不再详细说了,可以看看我上面提到的文章尤其是大家的评论。

0 评论: