我已经厌倦了每天都要学习一种新的Java Web框架。JSP、Struts、Wicket、JSF、JBoss Seam和Spring MVC只是其中几个,所有这些无数的框架都试图解决同样的问题。然而,它们中没有一个真正解决了根本性问题-这就是为什么总是不断出现新的。
大多数框架在第一印象上看起来非常光鲜亮丽,因为它们简化了简单事物的处理方式。但是,一旦涉及实际应用案例的实现,就会遇到问题。通常,这些框架没有提供任何帮助,反而妨碍并通过强制按照框架自己的逻辑和环境实现限制选项。
简而言之,在使用框架时,我看到以下缺点:
- 大多数框架的学习曲线较陡峭,您需要先理解有时相当学术的概念,并知道一堆配置文件的含义和位置,然后才能开始使用。
- 文档通常更或多或少糟糕,缺少公开可访问的在线参考资料,过时无力,混淆不兼容的不同版本,或者所有这些都缺少有用的示例。
- 框架由大量类组成,使得仅通过浏览源代码就几乎无法理解其预期使用方式。
- 因此,您需要购买一些"XYZ在21天内愚蠢地行动"类型的书籍,它们具有糟糕的用户界面,因为它们缺少全文搜索,并且难以携带。
- 要真正使用其中一个框架,您需要牢记如何按照框架所需的方式完成任务,通过记忆适当的类和方法名称直到头部充满了愚蠢而无用的信息。
- 这会导致大量开销,降低应用程序的性能,并在尝试理解实际情况时使您的大脑感到麻木。
- 在现实世界中,通常没有时间熟悉新事物,因为需要快速生产。由于这种学以致用的方法,人们总是只寻找完成下一个任务的最快方法,而不是真正理解新工具及其可能性。
我觉得阿尔伯特·爱因斯坦的以下话语非常适用于这里:
“我们不能用创造问题时采用的思维方式来解决问题。”
回到我美好的 PHP 编码时代,当编码仍然有趣和高效的时候,我通常会为大多数事情编写自己的框架,并将它们从一个项目复制并调整到另一个项目。
这种方法非常成功,导致快速开发,没有任何开销,并且实际上比大多数 Java 框架更强大,只有几百行代码的单个文件加上一些简单的 mod_rewrite 规则。
这当然不能解决 Web 开发的所有问题,但它简单、快速并且直截了当。
虽然完全适合当前项目的要求,但它也易于扩展并具有零开销,因此性能非常高。
那么为什么要使用这些框架,而不是把它们都扔掉并回到根本呢?
当我们明天又开始使用新框架的下一个项目时,我应该对老板说什么?
还是有一些真正有所不同的框架吗?
或者我忽略了什么隐藏的好处?