【问题标题】:Too many frameworks for java web. Scared and Confused :( [closed]java web 的框架太多。害怕和困惑:( [关闭]
【发布时间】:2011-03-11 16:53:21
【问题描述】:

我是一位经验丰富的 Java 开发人员,目前正在尝试学习使用 Java 进行 Web 开发。我也有使用 ASP.NET (c#) 和 PHP 的 Web 开发经验。我知道有哪些基本概念(JSP、Servlet、Bean)并正在寻找一个框架去。

我的问题不是“什么是最好的 Java 框架”或类似的问题。

在这里阅读了许多主题并在 Google 上搜索了几个小时后,我感到害怕和困惑。有这么多的框架和无穷无尽的组合。我即将改变主意在 .net 甚至 PHP 中执行此操作。

  1. Java 真的适合非常小的团队(1 或 2 名成员)开发 Web 应用程序吗?
  2. Java 真的适合开发 Web 2.0 应用程序吗?
  3. 在这种情况下,.NET 和 PHP 不是更容易混淆吗?
  4. 如果选择了一个框架,6 个月后我决定使用另一个框架,是否可以轻松迁移?
  5. 感觉不应该花费我花同样的精力来学习 Java 到一个随时可以更改或变得无用的框架。我错了吗?

【问题讨论】:

  • 您认为Java 有很多Web 框架?那就别看Python了;你需要换一条裤子。
  • 我相信这个问题更适合软件工程stackexchange论坛。

标签: c# java php frameworks


【解决方案1】:

“不要惊慌”——银河系漫游指南

我在使用 Java、.NET 和 Rails 构建 Web 应用程序方面拥有丰富的经验。 PHP,没有那么多。所以这是我非常固执的意见:

Java 中的 Web 开发框架(有很多,但看看 Spring)成熟且易于学习。因此,如果您想使用 Java 运行,那么您绝对不会做任何愚蠢的事情,无论您的团队规模如何,或者您的项目是否具有“web 2.0”特性。一切都很好。

也就是说,如果您仍然想探索其他选项,请考虑以下几点:

  1. C# 是一种比 Java 更好的编程语言,我曾经是 Java 的狂热粉丝。它们在很多方面都非常相似,而且转换很容易,但是 C# 只是修复了 Java 中的许多痛点,并且更好地结合在一起。我知道您问的不是语言,但如果您考虑不同的平台,这绝对是一个因素。
  2. 直到最近,Web 开发还是 .NET 中的一大难题,因为带有 Web 表单的 ASP.NET 对于非平凡项目来说非常糟糕。微软发布了一个相对较新的MVC平台。它很好,易于使用,并且拥有不断发展的社区。另一方面,它实际上是您唯一的 .NET 选项(除了 Monorail,它的社区正在缩小,并且有很多错误)。
  3. .NET 并没有与 Windows 严格绑定,这要归功于 Mono,但肯定存在 Windows 对社区和库的倾斜,而且 Mono 项目总是有点落后。您必须决定这是否与您相关。
  4. Rails 非常棒。很多在其他框架中复杂的事情在 Rails 中都是微不足道的。这当然不是没有问题,但要在很短的时间内运行一个架构稳固的产品,它是很难被击败的。

【讨论】:

    【解决方案2】:

    除非您有充分的理由使用 Java 进行 Web 开发,否则不要这样做。从统计学上讲,PHP 是 Web 开发中的王者。您还会发现更多框架和更好的 Web 开发支持。

    如果您想更进一步,请尝试使用 python、ruby 或 CGI。它们都是不错的后端,在 PHP 所做的大多数领域都可以正常工作。

    这里的主要内容是使用您所知道的。除非是java。

    【讨论】:

    • 这对 java 来说是不必要的苛刻。它实际上不是一种糟糕的语言。是的,它附带的库和框架大多很糟糕,但里面有一些宝石。如果您觉得这门语言更自在,那么找到它们可能是值得的。
    • Java 确实有它的优点,但在 Web 开发领域,我所看到的缺点远大于优点
    • 那么如果你选择 Python 和 Django 就没有框架或语言风险?完全依赖RoR的人不用担心吗?微软永远不会在没有通知的情况下停用功能?荒谬的。这些问题都不是 Java 独有的。
    • CGI?真的吗?你没注意到它不是一种编程语言吗? (例如,您可以通过 CGI 使用 PHP)
    【解决方案3】:

    Java真的适合很小的吗 团队(1 或 2 名成员)开发网络 应用?

    当然可以,只要那一两个团队成员精通 Java。这是一个荒谬的问题,取决于您如何定义“合适”。我会偏向保守派,将“合适”解释为“可能”。

    Java真的适合开发吗 web 2.0 应用程序?

    您是在问JavaFX 是否合适,或者Web 2.0 UI 技术可以是Flex 还是其他?我自己没有使用过 JavaFX,但我认为 Java 后端可以与 web 2.0 前端很好地共存。服务就是服务。

    在这种情况下,.NET 和 PHP 是不是更容易混淆?

    您的措辞需要改进。在那里,我已经修好了。取决于您对 .NET 或 PHP 的了解程度。 PHP 可以说是“设计较少”并且更直接,但每个 Web 应用程序都不是 Web CRUD 应用程序。 .NET 可以像 Java 一样进行工程设计,但它具有使用作为框架一部分的功能的感知优势。至少一切都来自微软。也许您会因为 Java 有更多选择而感到困惑。

    如果选择一个框架并且在 6 之后 几个月我决定使用另一个,是吗 可以轻松迁移吗?

    这取决于框架以及您对应用程序的分层程度。我想说,如果你正确地分层你的代码,事情应该是可修改的。但是框架往往是胶水代码,所以如果你严重依赖框架,无论选择哪一个都很难提取它。

    感觉不合适 我花在学习 Java 上的努力 到一个任何时候都可以的框架 改变或变得无用。我错了吗?

    任何事情都可能改变并变得无用。 Microsoft 可以决定以不向后兼容的方式重新编写他们的 Enterprise Framework 4.0。我不认为这是一个语言缺陷——Java 并不是唯一会成为这种情况的牺牲品。

    你是对的——当你承担依赖时,你总是处于危险之中。当您自己编写和维护所有内容时,您也会面临风险。您需要选择好以将风险降至最低,但您永远无法完全消除它。

    我的建议?选择春天,晚上睡觉。这是一个了不起的框架,已经挂在那里八年了,而且还在继续增长。它有一个很棒的 Web MVC 框架等等。它鼓励的习惯用法将使您的 Java 应用程序更好:更多层次、更易于维护、可以与其他框架很好地配合,从而最大限度地降低您的风险。它们现在归 VMWare 所有,所以它们不会去任何地方。

    【讨论】:

      【解决方案4】:

      我想你会找到很多不同的答案。我是一名 .NET 开发人员,我个人喜欢使用 .NET、ASP.NET 和 ASP.NET MVC。如果您对 Java 很熟悉并且熟悉 Java,为什么不坚持您所知道的呢?您是对的,有无数的框架可供选择,几乎所有平台都是如此。

      1. Java 适合小型和大型团队。拥有良好的源代码控制解决方案将使任何团队受益,因此请务必考虑在团队中工作时如何管理源代码。

      2. 整个 Web 2.0 并没有真正专注于特定的服务器端技术。 Web 2.0 的广义概念(尽管它只是一个神奇的术语)是构建丰富的交互式应用程序的概念。您可以拥有一个 Java 后端、一个 .NET 后端和一个 PHP 后端、一个 Python 后端,这完全取决于您的选择。他们可以为呼叫客户提供相同类型的服务吗?我认为他们可以。

      3. PHP 和 .NET 受益于庞大的开发社区(并不是说 Java 没有),并且有大量项目正在使用该平台进行。以 .NET 为例,你可以扩展它,你可以在它的基础上进行构建,甚至可以取出一些部分并用你自己的部分替换它。我不会说你不能在 Java 中做到这一点,只是(在我看来)使用 .NET 会更容易。

      4. 迁移是一头棘手的野兽,您必须注意如何使用该技术,如果您正在做一些特别的事情,那么使用另一种技术的效果如何。如果您坚持熟悉的设计理念(例如 MVC),您会发现比从 JSP 直接迁移到 ASP.NET MVC 等更容易。

      5. 计算软件以惊人的速度发展,我们都必须跟上,否则就会落后。您必须扪心自问,您做出这个平台决定是出于个人还是商业原因?如果是出于个人原因,你觉得你以后有可能喜欢开发这个吗,是为了个人的成长和发展吗?你认为自己把它带到哪里去了?如果是为了商业,你能看到你在这项技术上进行了什么样的投资吗?在这个阶段,是否可能会有任何变革之风让您质疑自己的选择?

      对不起,如果这一切都是神秘的,我希望它有所帮助。

      【讨论】:

        【解决方案5】:

        我建议您使用使用 POJO 的框架。有了 spring、wicket 和 hibernate/ibatis,你会很长一段时间都没事。

        我的意见:

        答案 1:是的
        2:什么是真正的 web 2.0 应用程序? (是的)
        3:不知道
        4:会伤害你几天,但肯定有可能。
        5:取决于你决定使用什么框架。 (是的)

        【讨论】:

          【解决方案6】:

          我不认为坚持你已经知道的有什么问题。但是有许多 Web 框架可以帮助您更快地交付产品。您提到了 ASP.NET 和 php,但也有非常流行且快速上手的 RoR。更不用说这些语言中的许多都有可以更快地加快速度的 Web 框架。我将开始研究这些与使用 JSP 或其他一些 Java 方法。

          但这只是我的意见。

          【讨论】:

            【解决方案7】:

            仍然很少有人使用 Java 进行 Web 开发。从这个意义上说,PHP 是赢家,因为社区和免费提供的功能齐全的应用程序的巨大选择。由于 C# 中的新功能和 SharePoint 的存在,企业级应用程序更容易使用 .NET 实现。许多人也使用 Python,包括 Google 和 YouTube。由于 Ruby on Rails 平台和语言的优雅,Ruby 有它的粉丝。

            我有很多熟人专门从事 Java 工作,收入很高,但他们几乎不接触 Web 部分。

            我的意见非常主观。

            【讨论】:

            • 我不得不说,这听起来好像你根本不了解 Java Web 开发领域——有大量(非平凡的)应用程序是使用 Java 开发的,使用各种构架。当然对于琐碎的应用程序,它可能不是最佳选择,但一旦您需要连接到服务器端系统,那么它仍然是主要参与者。
            • 格温。请仔细阅读,“我的观点非常主观”,如果你仔细阅读,你会明白这是基于熟人的经验。一些为现有门户制作组件,另一些制作用于集成的 Web 服务。我的很多朋友都在使用 Java 多年,但他们都没有用 Java 建立过网站。
            • 我做到了,但是尽管您在帖子的最后一句,您帖子的其余部分没有任何“根据我的经验......”,“据我所知......”等,这表明您在做任何事情,而不是试图提出绝对的事实陈述——“很少有人仍然使用 Java 进行 Web 开发。” - “使用 .NET 更容易实现企业级应用程序”。事实上,我认识的大多数 Java 开发人员都进行了大量的 Web 开发(通常使用 Apache Wicket),所以我碰巧知道 Java Web 开发 /is/ 仍然是一个重要的领域。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-03-31
            • 1970-01-01
            相关资源
            最近更新 更多