Java的框架很多,并且很多都是开源的。有我们熟悉的表现层框架;如;struts,jsf等;还有底层的orm框架,如hibernate,还有比较全面的框架如jboss seam等等。
纵观这么多框架,我们不难发现一个问题,它们很多都是面向程序员的,或者说是面向技术的。但是我么要知道技术最终是要为功能服务的。我们最终是为了实现功能的,而不是为了绣技术而开发的。那么我们的框架,一个优秀的框架最终应该以用户需求为向导(而非程序员的需求)。
所以,是否能够实现各种各样的功能需求,是否能够快速、简单的实现许多常用的功能需求,这是首要。
Javaee一定是能够符合企业级别开发的绝大多数需求的,要不怎么是javaEE。但是如何能够快速、简单的实现许多常用的功能需求呢?
快速简单和灵活,是比较矛盾的两个事物。但在某种层面上是可以统一的。对于大多数常见的功能需求,我们简单快速。对于个别的个性要求,我们灵活。
那么具体如何统一呢?如果我们能够把企业级开发的功能需求抽象成几个种类,每个种类我们提供一中常用的默认解决方案。几乎所有需求都可以归结成这样的几个种类,个别个性化的要求只需要修改与默认的解决方案不太一样的那一小部分就好了。
那么企业级开发能否抽象成这样的几个种类呢?答案是肯定的。我们可是把它大致抽象成:crud,workflow,report三个种类。大多数的需求都可以归结给这几类,或者是这几类的变种。
一般在系统数据的初始化的时候(包括后面的一些台帐),都是crud功能。如人员的录入,数据字典等等。有了这些基础,我们的企业就可以运作了,那么这就是workflow发挥功能了。运作了一段时间,对运作中间产生的数据做分析总结,这个就是report。如果你的workflow是bpm可能还需要重新定义流程。
所以一个好的框架——以需求为导向的框架——至少要能够快速方便的完成crud,workflow,report三个功能。
其次我们要考虑的是效率。
再次我们再来考虑使用我们的框架后,是否能够做到,解耦合,牵一发而无需懂全身等等程序的性能。而这些功能是程序员需要的,而不是客户需要的。但我们要记得,客户是我们的衣食父母。
当然这个只是我的个人感受。