DHH:2017年Rails 框架还值得学习吗?

这是一篇意译文, 翻译自 DHH( Rails 创始人 )在 Quora 上的 Rails 问题回复.

近期, 看得出社区里一些人对 Rails 发展失了一些信心, 我想为大家找回一些信心.

译者: 技术达人李亚飞, 现任百分之八十公司 CTO, 团队有 7 位全栈 Rails 工程师.

2004 年, 我们选择 Rails, 那么今年, 我们也会因为同样的原因选择 Rails.

越是事情变化, 他们越是保持不变.

这些年 JavaScript 世界有着大量的进步, 但我们也看到了倒退的世界, 而这些正在 Rails 前年就为大家解决掉了.

回到当年, J2EE 是商业复杂架构的首选, 后来的事, 大家都知道了: Rails, PHP 等轻量解决方案占了上风.

但是今天, 在 JavaScript 世界里, 问题竟与当年惊人的相似. 开发者花费数小时, 甚至数天, 只为完成一个基本框架的设定. 他们只是从各种库里找到自己的工具, 把它们组装起来, 从未满意过.

Rails 的核心原则非常独特, 虽然也一直有争议, 那就是约定大于配置. 有了它, 我们可以移除很多无意义的选择, 提供一个默认就非常先进的全栈 web 框架, 帮助人们构建先进完整的应用. 通过它, 开发者可以获得巨大的生产力.

众多所知, Rails 也因此而获取得巨大的成功. 不过令我惊讶的是, 在这点上, 世界上竟然没有多少同类的竞争对手. 今天, 大多数框架仅停留在给用户提供另一个点菜单, 另一个构建系统, 或者另一个视图库, 再或者另一个 ORM. 很少有框架是提供完整解决方案的.

我想, 就标题的问题来讲, 答案就是, Rails 的约定大于配置核心原则能够有效帮助开发者减轻选择轮子的痛感. 通过减少无意义的选择, 接受社区的约定, 和按照 web 开发中基本问题的约定, 你将变的更出色, 更高产. 少一些无意义的独特性, 不必关注最小剪裁, 这些东西根本没有意义.

无论如何, 这就是 Rails 核心原则的巨大吸引力. 我已经在其他地方进一步详细阐述了在Rails 核心原则中关于配置的约定方法, 以及点菜 / omakase冲突的说明, 和集成系统的吸引力以及 Rails 社区的其他核心价值. 笔者注: 可以到 DHH 博客里了解一二.

如果读过这些资料之后, 你应该能准确判断出 Rails 是否适合你了. 如果你还不能意识到其中的争议, 或者你只是不喜欢这些争议中提出的解决方案, 那么 Rails 技术的细节可能并不重要. 如果这些能够引起你的共鸣, 或至少对此你有兴趣, 请继续.

从 Rails 的这个核心原则之上, 我们构建了一个难于置信的无比强大的 web 框架, 它是实际用户需求驱动, 并且多范式设计, 满足大多数人需求, 并兼具一定自由度. 当人们听到 “web 框架”, 有时他们会想, “哦, 那只是一些生成 HTML 的东西, 是吗?”. 在这种看法下, 有的开发者可能认为这跟 React 之类前端框架是竞争关系. 我认为这或许有点关系, 但区别还是非常大, 如果因此而错失 Rails, 这个决策真的是因小失大.

正如我上面提到的, Rails 有一个雄心勃勃的终极使命, 那就是站在全栈的角度下, 帮助开发者处理好过程中的每一块代码, 从连接到数据库, 到 nosql 数据存储, 到业务模型, 到控制器, 直到最后, 输出 HTML. 实际上, 最后一步输出 HTML 仅仅是我们关注的很小一部分.

所以, 如果你认为客户端的 MVC 框架如 React, Angular 或者其他框架是未来, 你仍然是 Rails 的目标用户. 因为除了组装 HTML 外, 你在后端仍然需要大量的工作: 数据库存储, 业务模型, 计算事情, 将任务排队以供日后处理, 发送电子邮件, 触发推送通知以及所有其他的东西,真正的应用程序需要做的还有很多.

这才是 Rails 的核心所在: 处理 POST, PUT 或者 GET 请求之后的事情. 虽然 Rails 默认是全栈包括 HTML 端渲染, 并且我们缺省提供了 Turbolinks 和 SJR 供大家选择, 但如果这条路不那么有吸引力, 也可以很容易进行替换. 高效安全生成 JSON 数据同样是 Rails 追求的事情.

无论如何, 就在 2017 年, Rails 在这两条基本原则下仍然是远超其他框架的:

我们独一无二的约定大于配置的核心原则, 就算现在还有争议, 但它仍然像 13 年前一样为我们开发者提供着巨大的好处

我们有着一个从实际开发需求而来, 全栈的 web 框架, 当你使用 开始你的项目时, 它将为你提供无与伦比的生产力.

而且, 最为重要的是, 我已经把 “樱桃” 留下了. 现在就开始使用 Ruby 吧. 就算这些年是人们重新发现函数式编程和不变性数据理念价值的时代, Ruby 仍然是我遇到过最漂亮, 最奢华的语言.

相信我, 只需给你看几行代码, 我就能肯定你会爱上 Ruby.

本文来自企鹅号 - 技术达人李亚飞媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

37 个你必须知道的现代数据中心术语

在今日的信息科技社会,现代数据中心这个术语越来越受到领导者的重视。云计算、闪存、软件定义网络(SDN)、容器,以及大量的编排及自动化工具。这些新型技术构成了现代...

29210
来自专栏不止思考

架构设计之「服务限流」

上一篇我们聊过了架构设计中的「服务隔离」模式,今天我们继续来探索一下在分布式系统架构中的另一个常用的设计:服务限流。

1573
来自专栏程序员互动联盟

【专业技术】微软最新的浏览器到底有多牛?

编者按:微软的不思进取,部分原因是钱太好赚了--躺在windows上赚大钱。可是但凡一家企业有了一个聚宝盆之后,任凭它之前多么伟大,这之后也会慢慢走向平庸,柯达...

37410
来自专栏即时通讯技术

达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台。 达达的业务模式与滴滴以及Ub...

2653
来自专栏互联网数据官iCDO

如何理解谷歌眼中的低质量页面?

译者:Nic 审校:朱玉雪 本文长度为3529字,预估阅读时间6分钟。 我们今天要向大家介绍的是谷歌是通过哪些因素来判定登录页面质量的高低 衡量页面质量的高...

2606
来自专栏云加头条

【腾讯云的1001种玩法】征文活动

腾讯云技术社区「腾云阁」上线以来得到了广大程序员们的支持,为了吸引更多的开发者入驻,现再次举办【腾讯云的1001种玩法】征文活动。只要是与「腾讯云」相关的干货原...

6.3K0
来自专栏CSDN技术头条

小故事:架构师需要做什么?

作者:Robert C. Martin 原文:A Little Architecture 译者:孙薇 责编:钱曙光 本文是一篇模仿问答的小故事,作者用幽默的风格...

2386
来自专栏Java架构

Java分布式架构的演进过程

1946年,世界上第一台电子计算机在美国的宾夕法尼亚大学诞生,它的名字是:ENICAC ,这台计算机的体重比较大,计算速度也不快,但是而代表了计算机时代的到来,...

2096
来自专栏我是攻城师

你真正的了解Ajax?Ajax技术简述

3114
来自专栏SDNLAB

SDN实战团分享(三十二):ZStack架构及其网络功能简介

先说些题外话 SDN 群里大牛很多,从平时讨论中学习到不少,我的背景相对更偏云计算一些,我对 SDN 的角度可能也与大家有一些不同。 举例来说,前段时间发生了...

5805

扫码关注云+社区

领取腾讯云代金券