通过不使用Java Web框架让生活更美好?[已关闭]

2022-08-31 22:24:09

我厌倦了每隔一天就要学习另一个Java Web框架。
JSP,Struts,Wicket,JSF,JBoss Seam,Spring MVC仅举几例 - 所有这些无数的框架都试图解决同样的问题。然而,它们都没有真正解决根本问题 - 这就是为什么仍然有越来越多的新问题不断出现。

大多数在第一印象中看起来非常明亮和闪亮,因为它们简化了做简单的事情。
但是,一旦涉及到现实世界用例的实现,就会遇到问题。
通常,框架不提供任何帮助,但通过强制根据框架自己的逻辑和环境来实现事物来阻碍和限制选项。

简而言之,在使用框架时,我看到了以下缺点:

  1. 大多数情况下,学习曲线很陡峭,您首先需要了解有时相当学术的概念,并了解一堆配置文件的含义和位置,然后才能开始。
  2. 文档通常或多或少是可怕的,要么缺少可公开访问的在线参考,要么是无助的过时,混淆了不同的不兼容版本,要么所有这些结合在一起,并且通常没有提供任何有用的例子。
  3. 该框架由无数的类组成,这使得仅通过浏览源代码几乎不可能理解预期的用途。
  4. 因此,您需要购买一些“XYZ在21天内为假人采取行动”之类的书,这些书的用户界面很糟糕,因为它们缺少全文搜索并且携带起来很重。
  5. 要真正使用其中一个框架,你需要记住如何通过记住足够的类和方法名称来学习如何按照框架要求的方式完成工作,直到你的头脑中充满了愚蠢和无用的信息,你不能用于其他任何事情。
  6. 有一个很大的开销,会降低你的应用程序性能,让你的大脑在试图理解到底发生了什么时感到麻木。
  7. 在现实世界中,由于富有成效的压力,通常没有时间熟悉新事物。由于这种通过实践方法学习的结果,人们总是只寻找完成下一个任务的最快方法,而不是真正理解新工具及其可能性。
  8. 在我看来,遵循标准可以让刚接触项目的人快速入门的论点是站不住脚的,因为每个项目甚至在同一家公司内都使用不同的框架(至少在我的情况下)。

在我看来,阿尔伯特·爱因斯坦的以下引文非常适合这里:

“我们无法通过使用我们在创建问题时使用的相同思维来解决问题。

在我过去的PHP编码时代,编码仍然很有趣和高效,我曾经为大多数事情编写自己的框架,只是将它们从一个项目复制粘贴并采用到下一个项目。
这种方法的回报非常好,导致快速开发,完全没有开销,并且框架实际上比大多数Java框架更强大,但单个文件中只有几百行代码加上一些简单的mod_rewrite规则。
这当然不能解决Web开发的所有问题,但它简单,快速,直截了当。
虽然完全适应了当前项目的要求,但它也易于扩展,并且由于零开销而具有非常高的性能。

那么,为什么要在使用这些框架时遇到那么多麻烦,为什么不把它们都扔掉,回到根源上呢?
当我们明天再次开始下一个使用新框架的项目时,我应该对我的老板说些什么?
或者有没有真正有所作为的框架?
还是我忽略了一些隐藏的优势?


答案 1

在我过去的PHP编码时代,编码仍然很有趣和高效,我曾经为大多数事情编写自己的框架,只是将它们从一个项目复制粘贴并采用到下一个项目。这种方法得到了很好的回报,导致快速开发,完全没有开销,并且框架实际上比大多数Java框架更强大。

原谅我不相信那一秒钟。

但是单个文件中只有几百行代码加上一些简单的mod_rewrite规则。这当然不能解决Web开发的所有问题,但它简单,快速,直截了当。

因此,基本上,您在数月或数年内开发了自己的框架,根据自己的需求量身定制,并且可以非常快速地使用它,因为您非常了解它。

然而,你无法理解为什么其他人也会这样做,然后试图将结果变成每个人都可以使用的东西?

你开发的这个伟大的框架在哪里?如果它如此强大且易于使用,那么使用它开发的专用社区,数千名用户和数百个站点在哪里?

每个项目甚至在同一家公司内也使用不同的框架(至少在我的情况下)

好吧,这就是你的问题。为什么你会在每个项目之后抛弃每个框架获得的专业知识?

我们的想法是选择一个框架,并在多个项目中坚持下去,以便您精通它。你必须投入一些时间来学习框架,然后它通过允许你在更高的水平上工作来节省你的时间。


答案 2

提出自己的框架的问题在于,您将犯所有已建立的框架已经偶然发现并解决的所有错误。在安全性方面尤其如此。

只要问问杰夫和那些家伙,在堆栈溢出中实施大规模杀伤性武器时,他们必须考虑什么。我宁愿使用他们在项目中产生的东西,而不是从头开始实现它。这只是一个例子。


推荐