【问题标题】:Architectures for a Java web applicationJava Web 应用程序的架构
【发布时间】:2009-09-16 03:02:06
【问题描述】:

开发专业和有组织的 Java Web 应用程序有哪些不同的架构?我听说过 MVC 架构,还有什么架构,例如 Stackoverflow、google、orkut 等。从开发人员的角度来看,它用于可扩展、健壮且易于维护!

【问题讨论】:

    标签: java architecture


    【解决方案1】:

    老实说,大多数“Web 应用程序”可能都是用 PHP 编写的。

    无论如何都要阅读网络框架,但为了让您从这里开始,这里列出了最广泛使用的网络框架(我能想到的)。

    Ruby : Rails
    Python : Django
    Java : Spring
    C# : ASP.NET MVC
    

    还有专门的东西,比如Google Web Toolkit,用于编写类似 Gmail 的应用程序。

    我个人倾向于 ASP.NET MVC 和 Django,但 Rails 和 Spring 也不错。

    但是对于许多这些应用程序来说,不仅仅是网络框架。大量的 AJAX、Javascript、Flash、脚本等。

    但一定要开始使用上述 4 种(如果您需要 GWT,则使用 5 种)之一。

    【讨论】:

    • -1 因为这个答案与 Ajay 的问题无关,所以他询问 Java 环境中的体系结构,这个答案回答了通常简单的“我如何创建自己的 Web 应用程序,我没有想法如何做到这一点!1!11one“......没有冒犯! :-)
    • 哇,给我一个大拇指!他清楚地问“Stackoverflow google orkut 等使用什么架构”。这显然不是 Java 特有的。 Stackoverflow 在 ASP.NET MVC 中。
    【解决方案2】:

    我个人喜欢Spring MVC,无论是小事还是大事。在创建 Java Web 应用程序时,使用框架可以省去很多麻烦。

    Apache Struts 曾经(几年前)非常流行,并且有几次我编写了某种小型 Web 框架,出于某种原因它总是类似于 Struts 模式。因此,最好先查看其中一些框架,如果您以后仍想创建自己的框架,请记住您最喜欢的框架。

    【讨论】:

      【解决方案3】:

      (我想知道为什么人们将框架命名为要求架构的人。)

      1) 我建议开始考虑分层架构。一层应该只知道(取决于)1 个最近的层。

      Presentation
      Domain
      Persistence
      

      Presentation (UI) 和 Persistence (database) 取决于域。

      Describe the architecture you use for Java web applications?

      2) 借鉴 DDD (Domain-Driven Design) 的一些想法。推荐阅读Eric Evans book。

      【讨论】:

        【解决方案4】:

        在尝试了很多不同的 java web 框架之后,我真的很愿意推荐grails。您只需 1-2 小时即可试用并构建您的测试 Web 应用程序。不久之后,您就可以决定它是否适合您的要求。

        【讨论】:

        • 虽然 Grails 学习起来很有趣。我要警告的是,它基于 Groovy,这很好,但与 Java 有点不同。
        【解决方案5】:

        阅读设计模式:

        Wikipedia

        【讨论】:

        • 有趣的是,当 OP 询问有关 Java 应用程序的开发模型的一般性问题时,建议 Rails、django 和 asp.net 的答案如何获得投票。
        • 通用的“去阅读 X”答案没有任何描述为什么在这里不受欢迎,我认为这很好。
        猜你喜欢
        • 2015-01-27
        • 2014-07-05
        • 2012-12-30
        • 2011-01-02
        • 2016-03-26
        • 2010-12-23
        • 2013-01-19
        • 1970-01-01
        • 2018-08-27
        相关资源
        最近更新 更多