10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

Java 和 Web 应用开发:太多的抽象会是坏事么?

2007 年 7 月 31 日

RedMonk 的分析师 Michael Coté写了一篇长文,在文章中,他把 Java Web 应用开发和用 Rails 和 Django 这种把构建 web 应用的思想与其本身的设计理念紧密结合的框架所进行的 Web 开发进行了对比。这则评论源于 Bill de hÓra 的博客上一篇文章中的内容:

……我觉得在 Java 世界里有很多框架——比如 JSF 或者 Struts 1.x——都把 Web 看成了使用软件模式来解决的问题。它们的目的就是把 Web 扔到一边,回到中间件上去。但是像 Django 或 Rails 这样的框架就是为了 Web 而生的,与内部企业应用的集成根本就不是它们准星瞄准的对象……

Coté接着又用略带辛辣的口吻描述了一个典型的 Java Web 应用的抽象级别。他的观点概括如下:

- VM 本身就是 OS 的一个抽象。

- 诸如 JNDI 和 JAAS 这样的库就是一些对可能性进行建模的类。

- UI 将来也可能需要被换掉,所以要对它进行抽象。

接下来,Coté确实还是承认诸如文件系统、排序算法和容器框架这些抽象对于 Java 是非常有用的,但他总体的想法则是:

  • 在写好你自己的抽象层以后,在本质上你也就写好了一个自己的框架雏形。但如果你不是一个好的框架开发者,那这个框架用起来就很难受,更新一两个版本以后你就会意识到这一点,然后把它重写。
  • 新的框架和构建应用的方式会层出不穷(Web 应用,集群,Ajax,移动访问等),而它们很难直接与你的抽象层中的表达方式、惯用法和期望相对应。这个时候,你就会感到脑子快要炸开,因为你想做的新东西全都死死的绑在了你的抽象层上。
  • 按照 Bill 的想法,你所做出来的框架基本没啥用处的原因就在于你总是想要完全用上你所抽象出来的东西,却不管这会使你付出多大的代价;或者继续做进一步的抽象,让它变得更加难用。

他认为,使用 LAMP、Ruby 和 Django 等技术的程序员就是认为自己是在构建 Web 应用的,而 Java 程序员在心底总是觉得自己是在构建一个应用,只是碰巧这个应用中包含有一个 Web“视图”而已。

查看英文原文: Java and Web Application Development: Is Too Much Abstract A Bad Thing?

2007 年 7 月 31 日 23:59435
用户头像

发布了 197 篇内容, 共 46.3 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

week 11

Geek_2e7dd7

POI 之 策略游戏

zhoo299

随笔杂谈

Linux系统监控工具推荐

王坤祥

监控 工具软件

视频码控:CBR、VBR和ABR

潇湘落木

直播 SRS 视频编码 码控

介绍一款API敏捷开发工具

棒锤🐮

敏捷开发 Rocket API API敏捷开发

十一周作业

olderwei

极客大学架构师训练营

ARTS挑战打卡第八周(200629-200705)

老胡爱分享

ARTS 打卡计划

动态修改logback的日志级别

华宇法律科技

Java springboot logback

请不要随便修改基类

架构师修行之路

LeetCode题解:26. 删除排序数组中的重复项,双指针,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

【解Bug之路】——Nginx 502 Bad Gateway

简爱W

Flink水位线和时间戳理解-7

小知识点

scala 大数据 flink 模块化流程

用科学的方法理解每日优鲜

石云升

新零售 每日优鲜 多快好省 科学分析

Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 实现分库分表

简爱W

融云 X- Meetup 技术沙龙广州站:全球通信云技术实践分享

InfoQ_967a83c6d0d7

Redis 之父关于 CRC64 的神秘往事!

yes

redis CRC

你可能不知道的计算机基础

书旅

c 常量 计算机 基础

JeecgBoot手记

卧石漾溪

一个快捷方便的油煎鸡胸肉,懒人标配香喷喷好吃看得见

小霸王其乐无穷

美食 鸡胸肉 懒人

Docker搭建项目环境实战

书旅

Docker Dockerfile Docker-compose

图解javascript——基础篇(以思维导图总结js中关键技术点,为面试及工作助力)

执鸢者

Java 前端

数据库是咋工作的?

简爱W

SQL查询语句执行顺序详解

书旅

MySQL SQL语法 sql查询

Netty之旅二:口口相传的高性能Netty到底是什么?

一枝花算不算浪漫

完了,这个硬件成精了,它竟然绕过了 CPU

简爱W

week 11学习总结

Geek_2e7dd7

让理性思维走进我们的生活,帮助我们做出更好的决策。

叶小鍵

心理学 基思. 斯坦诺维奇 超越智商 认知科学

ARTS 挑战打卡第七周(200622-200628)

老胡爱分享

ARTS 打卡计划

ARTS 挑战打卡第九周(200706-200712)

老胡爱分享

ARTS 打卡计划

前端分页组件实现逻辑

书旅

php 前端 分页

战斗还是逃避,或许可以考虑一下合作?

escray

学习 面试

Java和Web应用开发:太多的抽象会是坏事么?-InfoQ