从 Node 到 Ruby on Rails
微wx笑 2022-03-04【库&框架】 3 0关键字: Node Ruby Rails
我学会了在 Javascript 堆栈 [1] 中编写代码,并且正在构建一个基于 Javascript 的产品[2]。我从来没有质疑过这个堆栈:很多公司都默认使用它,JS 无处不在,而且社区很大。但是对
我学会了在 Javascript 堆栈 [1] 中编写代码,并且正在构建一个基于 Javascript 的产品[2]。我从来没有质疑过这个堆栈:很多公司都默认使用它,JS 无处不在,而且社区很大。但是对于我的新项目,我决定尝试 Rails,因为尽管有人认为 Ruby on Rails 已经“结束”,但 HN 评论中的人说它比基于 Node 的新堆栈更令人愉快。尝试过之后,我可以说哇——来自当前的 Javascript 生态系统让发现 Rails 成为一种启示。
幸福
在 Rails 中构建 Web 应用程序花了我 2 天时间——在 Node 中构建同样的事情需要 2 周时间。我还包括了一些我不会尝试在 Node/Express 上构建的东西,直到我证明了这个想法(编辑配置文件?拜托 - 我会等到有人提出要求)。HN 评论中的人总是指责 Node 生态系统让你为每个项目重新发明轮子。但我认为事情就是这样。现在我明白了他们的话的真相。
我觉得自己是一个高效的创始人,以神一般的速度打造令人愉悦的产品,而不是一个冷酷的开发人员走捷径获得 MVP。
事实证明,虽然外行并不认为它是最新的技术,但企业家和团队的快乐亚文化使 Rails 保持在最新状态。他们不断添加令人惊叹的新功能,例如易于使用的 Websockets 实现。或者称为 Hotwire 的反应式应用技术。这就像发现一个隐藏在视线中的秘密社团。
使用 JS 框架进行管道连接
在使用 Express、Postgres、EJS、Knex 等在 Node 中编写了两个小时的样板文件并展示了一个简单的“hello world”之后,我决定尝试 Rails。
我来自商业背景,所以在“当前”JS 时代学习开发的好处是没有办法绕过学习一些管道。React 和 Express 是“没有意见的”,这意味着它们会迫使您选择所有组件并自己将它们连接在一起。你必须对你在做什么有一点了解。因此,我学习了所有基础知识——比如原始 SQL、ORM、身份验证、测试、Websockets、迁移、如何构建项目。对于我从事的每个新的绿地项目,我已经连接了 10 次 CRUD 和身份验证。从 Rails 入手可能没有给我这种深入的了解。
了解管道的缺点是我对管道而不是其他东西思考了很多。这对工程师来说很棒。但作为一个创始人,我总是发现很难从管道中爬出来,忘记它,想想用户想要什么。当我与 Knex 或 Redux 作战时,我很难专注于美妙的产品体验。
导轨打开门
但是 Rails 的魔法正在处理我的新项目的管道。这会带来哪些机会?我觉得主要有两个:
更好的计算机科学——我可以更专注于学习有用的模式来创建框架而不是如何设置它。计算机科学不是管道。
更好的业务——Rails 让我能够思考我正在开发的产品——并以思考的速度构建它——而不是像我在 Node 项目中经常做的那样陷入困境。当我收到客户反馈时,我可以毫不费力地移动东西或无情地废弃它们。在我设计它时,我什至可以像用户一样思考。到目前为止,这就是 Rails 对我来说真正的魔力:我可以同时使用我的左脑和右脑。高级框架释放了足够的空间来思考我正在构建什么,而不是我如何构建它。我可以如此轻松地构建东西,以至于我有足够的空间来思考体验——所以东西看起来不再像是“工程师设计的”。
结论与假设
我想知道我是否早在十年前就开始构建软件并默认使用 Rails,我会更多地关注我的产品的用户体验和业务案例,并通过它们获得更大的成功。也许我可以更多地关注为什么而不是如何。我想知道这是否有助于我在 2005-2012 时代最喜欢的一些公司在使用 Rails 构建他们的初始产品(Airbnb、GitHub、Shopify、Twitch、Flexport 等)时取得成功。Rails 是否让他们的创始人能够更高效地构建而不用担心管道问题?它是否允许他们专注于用户想要的而不是管道?这就是他们如此成功的原因吗?Paul Graham 提到 [3] Lisp 是帮助 Viaweb 战胜竞争对手的关键,因为它的效率在此之前一代。或者也许高级和低级框架没有区别:也许有同样多的使用 Rails 构建的不成功项目,而当前基于 Node 的产品将在几年内同样成功。或者,自 2007 年以来,互联网市场已经成熟得如此之多,以至于比较这些群体是不公平的。
时间会证明 Rails 是否会让我通过专注于正确的事情来构建更好、更成功的产品。无论哪种方式,我都觉得我已经从过去击中了一个神奇的宝藏,并且不会心甘情愿地放弃它。
[1] - 到处都是 JS,我的意思是 Express/React with Hugo for static,这是一个非常常见的堆栈。在下文中,我将交替使用 Node 与 Express 和 Hapi,这是我使用的两个主要框架。我知道与 Express 等效的框架可能是 Ruby 生态系统中的 Sinatra,我并没有公平地比较两者。但正如我们所知,没有真正的 JS 等同于 Rails(不,它不是 Sails)。
[2] - https://www.joinatmos.com在 Node/React/Redux/React Native 上运行
[3] - http://paulgraham.com/avg.html
转自:https://nikodunk.com/a-node-js-developer-discovers-rails/
本文为转载文章,版权归原作者所有,不代表本站立场和观点。
下一篇:为什么使用Sails?