English 中文(简体)
使用框架制作简单的Java web应用程序有意义吗?
原标题:
  • 时间:2008-12-31 19:15:50
  •  标签:

我做过很多使用JSP和Servlet进行Java Web开发,我发现这种方法很简单和灵活。然而,其中涉及的一些基础工作,比如管理数据库连接,相当枯燥,而且需要相当多的工作才能启动一个新的Web应用程序。

因此,我正在考虑首次使用框架,但我对框架的印象是它们主要用于大型J2EE应用程序,并涉及大量复杂的配置。 我要寻找的是一些简单的东西(经过初步学习曲线),可以让我尽快启动一个新的Web应用程序。

我的问题是-在简单的Java Web应用程序中使用框架是否有意义?

请注意,我并不是在问应该使用哪个框架(如果确实推荐使用框架),因为这个问题已经在这里被问过了。

最佳回答

这很有道理。我的团队花费了五年多的时间与我们的开源技术栈,并且我们有一个“种子”项目(类似于appfuse),我们用它来创建所有新的Web应用程序。即使是从维护应用程序的角度来看,即使只有两页简单的内容,它看起来也像其他应用程序一样,只是更小而已。

简而言之,目前你不会得到任何投资回报,但随着项目的发展和维护,你会得到回报。

问题回答

如果你不使用网络框架,通常会结束编写一个劣质的框架。

是的,我会使用Web框架,原因如下:

  1. Increased navigation capabilities and controls. Even though you may not need them, they are there for you to use should you require them at any time
  2. As others have indicated, apps grow over time and you will feel the need for the framework at some point in time in the future. When you need to add additional pages and navigation
  3. Features that allow you to plug into other frameworks such as security and DB access frameworks. Spring is a prime example in the Java world. You never have to use Spring but it plugs in so well with Struts, Spring MVC, Hibernate, Acegi etc. It ends up saving you the hassle of doing all of the plumbing on your own.
  4. Support!!! Good frameworks almost always have a vibrant community to support them and ask and answer questions.

起初可能会感觉麻烦,但绝对能在将来节省很多时间。

我认为选择哪种框架实际上相当重要。像Spring MVC这样的框架在你的代码中相当不引人注目,并允许你的现有内容基本不用修改就可以运行。其他框架对你应该如何做事情有更具体的想法。

是的,它很有道理。 应用程序可以增长和变化,并且在未来可能需要框架可以轻松提供的某些东西。

例如,在我的工作场所,我们有一个简单的JSP / Servlet应用程序。由于我上面解释的原因,它需要被重写。如果有人花时间只是设置框架,那么我们今天的状态会更好。

是的,这很有道理。然而,你所提出的问题暗示着错误的(对你来说)框架可能会带来更多的痛苦,这是真的。某些沉重的J2EE框架和像是Grails这样轻巧欢快的东西之间存在着天壤之别。

什么是替代方案?自己开发?将所有导航和逻辑嵌入JSP文件中?

我同意那些认为网页框架很值得的人。现在有数百种选择(例如Struts,JSF,Spring,Wicket等)。选择适合你的一个。

有两种类型的应用程序:

那种你丢掉并且永远不再使用的东西,因此不需要担心模块化,可维护性和清晰度。

2)真正的种类。

有时候你的应用看起来可能永远不需要扩展、扩张或为比你当前规划的用户群体更大的功能集提供服务......我向你保证,这种看法总是错误的。

框架, 特别是像Java中的 Struts 为MVC,Spring 为MVC和依赖注入,Hibernate 为面向对象-关系建模等,都是非常有价值的工具,能够使你的代码具有模块化,可维护性和清晰性。 因此,回答你最初的问题......是的,坚决如此。

不会,除非:

  1. you don t have any java experience in your team
  2. you are doing just a prototype that must be ready in hours
  3. you don t trust your developers enough to let them write your application
  4. you don t plan to let your developers learn and improve

使用框架存在的危险包括但不限于:

  1. you ll get all framework defects on top on your own
  2. you ll be unable to do realistic estimates until you know perfectly the framework
  3. your team won t learn how to program a web server
  4. you ll find your team passing more and more time on google instead that solving problems by writing code.

选择开源框架仅次于公司中必须创建“完整的终极公司框架”的独立研发团队。

但我对框架的印象是,它们主要用于大型J2EE应用程序,并涉及大量复杂的配置。

不一定是真的。好的框架都是建立在可以很好地扩展的基础上,以便将您从小型应用程序带到非常大的应用程序。今天的许多框架都朝着零配置的方向发展,因此您会发现它们越来越容易使用。

你说得对,学习框架本身确实需要一些初始的努力,但这个投资在你构建第一个应用程序时就会收回。而像AppFuse 这样的元框架则更容易入门,因为它为你预配置了框架。

框架对大多数应用程序都有意义。您可能需要构建自己的框架或采用其他框架。最重要的问题是数据结构的粒度。我的意思是,您是否只需要输入数据,还是需要解析、编译和执行动态代码?

如果你把框架看作是一个标准,左边是一个已经存在的框架,可以是开源的或封闭的,右边是自定义的框架,那么就在这个框架的基础上叠加你的代码,复杂程度从右边增加。你越往右走,就越难以应对这个框架(个人认为)。

然而,您也可以逐渐从现有框架迁移到自定义框架。

还有关于您的业务的问题。如果您的企业不将软件视为核心竞争力,例如银行或医院,则您需要考虑建立多少框架。

底线是某种类型的框架始终是有用的。

使用框架可能会因为学习曲线而增加您的 Web 应用程序开发一些开销。然而,根据您选择的框架,您可能能够实现以下好处:

  1. Scalability
  2. Maintainability
  3. Clear Division of your model (e.g. MVC)
  4. Out-of-the-box components(SessionManagement,authentication,etc )
  5. Third party plugins
  6. Modularity inherited from the framework
  7. Many others.

此外,学习曲线是一个变量因素。根据您的技能,有些框架可能比其他框架更容易学习。

即使出于其他原因,研究使用框架肯定是有意义的,因为它会给你带来新的知识领域。如果你有时间去学习一个框架,那么你可能会发现,随着时间的推移,无论项目有多简单,使用它比使用其他方法更容易更快捷。

另外,如果我可以为SamBeran的帖子投票,那么我会这样做。开始使用框架将涉及到几个时刻的“哦,太棒了!我不需要再次编写所有那些样板了!”。

我会说使用一个 - 就像你说的,为了即使是一个简单的Java Web应用程序,让它运行起来都非常繁琐。如果框架可以帮助你更快地完成工作并提供你所需要的服务,我会说这是有意义的。





相关问题
热门标签