阅读更多

2顶
1踩

编程语言

原创新闻 MF高度评价DHH和RMH宣称J2EE将死

2006-07-12 12:08 by 见习编辑 robbin 评论(0) 有13675人浏览
infoq今天有两个颇为引人注目的新闻:

一条是Martin Folwer对rails enterprise的评价,其中MF高度评价了DHH,甚至在某些方面抬到了和Kent Beck的高度;
http://www.infoq.com/news/Martin-Fowler-Enterprise-Rails
Martin Folwer原文:
http://martinfowler.com/bliki/EnterpriseRails.html

另一条是著名的畅销书《Enterprise JavaBean》作者,兼EJB3,Java EE JCP委员Richard Monson-Haefel最近的调查报告,宣称Java EE 5的发布也成为了Java EE走向衰亡的起点。
http://www.infoq.com/news/Java-EE-Demise-Report

这两篇文章都很有意思,值得一看,而且有很多值得启示的地方:

MF赞赏DHH对于rails偏执的简单性理念,拒绝复杂性。认为rails坚持做好自己单一领域的事情的理念是对的,每个简单的工具去解决自己单一的问题,而不是用一个超级复杂的工具企图解决所有的问题。

RMH批评JavaEE 5对简化编程做的还不够,改进太小,时间拖的太晚,并且企图用超级复杂的单一方案去解决所有的问题,并且预言更多的开发人员会转向其他解决方案。

我个人的看法:

似乎业界已经逐渐开始形成公认:rails即使在企业开发领域也开始得到越来越多的承认;Java亟待解决的问题就是太复杂,企图解决所有的问题导致它越来越复杂,而且改进的步伐太缓慢。

不过目前而且相当长一段时间内,Java仍然是企业解决方案的不二首选。不过可以尝试使用rails作为web应用层开发技术,一些比较复杂的后台技术,例如消息系统,搜索引擎,工作流等等使用Java,各取所长。
2
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • History 对象的pushState()和replaceState()

    今天在看vue-router的时候发现,vue-router源码用到了history.pushState()和history.replaceState(),故,仔细看一下。 一. 概述 window.history属性指向 History 对象,它表示当前窗口的浏览历史。 History 对象保存了当前窗口访问过的所有页面网址。下面代码表示当前窗口一共访问过3个网址。 window.histo...

  • history.pushState()

    history.pushState() EC前端 - history.pushState() 描述 history.pushState()方法可以无刷新地向当前history插入一条历史状态。 什么是历史状态(history state)? 历史状态就是你在浏览器的当前Tab页中加载的页面,这些页面以时间作为先后顺序排列,称为历史状态列表。 历史状态分为两种: 由传统的网页加载生成的历史状态,即...

  • History:pushState() 方法

    在HTML文档中,方法向浏览器的会话历史栈增加了一个条目。该方法是异步的。为 popstate 事件增加监听器,以确定导航何时完成。state 参数将在其中可用。

  • 什么是vue-router,工作原理是什么

    一、vue-router是什么 路由就是SPA的路径管理器。vue-router是Vuejs官方的路由插件,它和vuejs是深度集成的,适用于构建单页面应用。vue的SPA是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。 传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。路由模块的本质 就是建立起url和页面之间的映射关系。 二、vue-router实现原理 2.1 Hash模式 vue-router默认h

  • vue-router 路由超详细教程

    路由(英文: router)就是对应关系Hash 地址与组件之间的对应关系。vue-router是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装和配置的步骤① 安装 vue-router 包② 创建路由模块③ 导入并挂载路由模块④ 声明路由链接和占位符2.1在项目中安装 vue-router。

  • PM2入门及其常用命令

    进程管理主要是指创建,终止和监控进程。进程管理器主要是用来确保你的应用在启动后能够保持在线pm2 是 nodejs 的进程管理器,默认支持负载均衡,能够守护进程。还支持查看应用运行时的性能,资源占用情况等当我们需要管理多个应用,或者应用有多个运行环境时,使用pm2 start来启动应用+配置参数是很不方便的。所以,pm2 支持使用配置文件来启动和管理应用。

  • history.pushState() 给网站添加和修改浏览历史记录

    假设一个使用场景: 后台管理系统项目,左右固定布局。左侧是通用布局,右侧页面是通过ajax切换的 当我们切换菜单后,想返回上一页,通常点击浏览器自带的回退。会发现回退的不是上一页,而是最开始打开这个项目的那一页。并且当我们刷新当前页面。也会自动回退到最初始的页面 原因:我们切换菜单的时候并没有跳转页面,只是用过ajax把我们想要的那也插在右侧DIV中。没有跳转页面就意味着浏览器没有存下历...

  • history.pushState() 和 history.replaceState() 方法

    Internet Explorer 10 引入了对 HTML5 草案规范的历史记录界面的支持,该历史记录界面包括用来管理站点的历史记录堆栈和 URL 的方法。 这个控件可以为最终用户提供他们期望从“后退”和“前进”按钮获得的体验,以及在不借助导航或页面加载的情况下提供少量页面更新的性能。HTML5 历史记录的相关定义位于万维网联合会 (W3C) 的 HTML5 规范的第 5.4.2 节。

  • Object.is()方法

    Object.is()方法 +0==-0;/true +0===-0;//true Object.is(+0,-0);//false Object.is(NaN,NaN);//true 对于Object.is来说,其运行结果在大部分情况中与===运算符相同,唯一的区别在于+0和-0被识别为不相等并且NaN与NaN等价。 转载于:https://www.cnblogs.c...

  • 【pm2】pm2的安装与基本命令:

    【pm2】pm2的安装与基本命令:

  • javascript history对象详解

    前面的话history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。由于安全方面的考虑,开发人员无法得到用户浏览器的URL,但借由用户访问过的页面列表,可以在不知道实际URL的情况下实现后退和前进。本文将详细介绍BOM中的history对象lengthhistory.length属性保存着历史记录的URL数量。初始时,该值为1。如果当前窗口先后访问了三个网址,history.length...

  • pm2常用命令汇总

    pm2是什么 pm2(Process Manager 2)是具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。它允许您永久保持应用程序活跃,无需停机即可重新加载它们,并促进常见的Devops任务。 pm2特性 后台运行:普通启动方式:node index.js关闭终端就结束进程,pm2可以后台运行,终端关闭不影响 日志管理:应用程序日志保存在服务器的硬盘中~/.pm2/logs/ 负载均衡:pm2可以通过创建共享同一服务器端口的多个子进程来扩展您的应用程序,这样做还允许您以零秒停

  • js中history对象

    在上面的代码中,调用pushState方法设置了一个状态对象,其中包含了一个名为page的属性,值为"index",将URL地址改变为/index.html。随后监听了popstate事件,当调用back方法回到上一个历史记录时,popstate事件会被触发,可以在事件处理函数中获取到当前历史记录的状态对象,通过JSON.stringify方法将其序列化为字符串输出到控制台中。在上面的示例中,当用户在浏览器中点击后退按钮时,popstate事件将被触发,并且状态对象将被输出到控制台。

  • window history pushState replaceState 跳转原理

    一、pushState 比如,当前打开的界面是:https://developer.mozilla.org/en-US/docs/Web/API/History,如下图所示: 在chrome的console下,执行代码: history.pushState({},'','https://developer.mozilla.org/en-US/docs/Web/API/History_API') 则浏览器中会看到以下三种变化: 1、当前地址栏的url会变成:https://developer.

  • pm2 常用命令

    先说一些废话 之前学习Nodejs项目的时候使用了pm2作为生产环境的进程管理工具,最近服务器崩了需要重启一些服务,发现有些命令记得不是特别清楚, 所以这里写一篇文章帮助自己记忆整理一下pm2的常用命令,后续有需要查阅一下即可~ 常用命令 进入bin目录启动:pm2 start www / pm2 start app.js pm2 start app.js --name="fx67ll" 启动并命名为fx67ll,没有命名的话后续可以用id替代name pm2 start app.js --watch 当

  • vue-router的使用及实现原理

    前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求有两种方式: 1. 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航 2. 使用H5的window.history功能,使用URL的Hash来模拟一个完整的URL。当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路

  • vue-router原理详解

    带你轻松掌握前端路由原理,深入了解hash模式和history模式的原理。

  • 前端手写(十六)——Object.is方法

    一、写在前面 在js中如果对两个值进行比较可以使用==和===以及Object.is()方法来解决问题,==会进行隐式转化,===不会进行隐式转化,Object.is()比较类似于===,但是主要存在一些不同的地方: Object.is(NaN, NaN) //true NaN === NaN //false Object.is(-0, +0) //false -0 === +0 // true 二、具体实现 const is = (x, y) => { if (x === y) {

  • HTML5新特性【pushState】和【replaceState】

    近来在处理浏览器禁刷功能时,用到一个新属性:history.pushState();官方解释如下:history.pushState()方法和history.replaceState()方法,它们允许你逐条地添加和修改历史记录条目。这些方法可以协同window.onpopstate事件一起工作。使用 history.pushState() 会改变 referrer 的值,而在...

  • html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题...

    一、背景     使用ajax,可以实现不需要刷新整个页面就可以进行局部页面的更新。这样可以开发交互性很强的富客户端程序,减少网络传输的内容。但长期以来存在一个问题,就是无法利用浏览器本身提供的前进和后退按钮进行操作。比如在页面执行某个动作,该动作利用ajax请求到服务器获取数据,更新了当前页面的某些内容,这时想回到操作前的界面,用户就会习惯点击浏览器的后退按钮,实际这里是无效的(要么页面没反应...

Global site tag (gtag.js) - Google Analytics