首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“技术邪教” Ruby on Rails 之父再出激进言论引争议

“新生的事物太多了,可能我们必须得依靠 AI 提供的建议才能想明白该怎么应对。” DHH 认为,人们似乎获得了越来越多能够创建出略好一点新版本的工具,但投入却一路飙升。...如何实现“无构建” 就前端领域而言,某种程度上讲,它已经走进了一种“死循环”——虽然它也获得了一定实质性的进展,改变了如今开发 Web 应用程序的基本预期,但紧跟潮流正变得越来越困难。...DHH 还表示,这一年半以来,37 Signals 开始转向 propshaft,这个新库用于在 Rails 侧无需编译的前提下提供资产管道。...DHH 表示,“我们目前最应该做的是:在现代 Web 应用程序的构建过程中,剔除一切形式的 JS 捆绑或转译。当然,这样的未来是等不来的,我们应该从现在开始转换自己的开发思路。”...因为在 HTTP2 中,每个请求的开销仍然非常大,并且存在并发限制,此外还会出现瀑布流和低效压缩。目前,“打包” 对于高性能网站来说是无法绕过的。

30310

web框架在什么程度上受限 ?

有许多极简主义的 web 框架,至少在 Python 世界中是这样(我只关心 Python)。Bobo、BFG、Pylons、Werkzeug 等。这些都不会以任何方式碍事。...RESTful 路由非常简单,但如果 REST 的特定 Rails 风格不满足需求,则路由是完全可配置的。在 Rails 应用程序中,可以使用默认设置的任意多或任意少,并且可以在所有级别进行重新配置。...将对象转储到 json/xml 所需的功能非常小,因此从中获得的唯一真正剩余的优势可能是 ActiveRecord 和路由,并且如果无法想象数据干净地拟合模型,那么就没有留下太多。...在大多数非平凡的应用程序中,很少有一个模型绑定到请求的末尾… 实际上可能有一个非常复杂的模型网络返回或更新。如果使用 JSON,强烈建议查看 MongoDB 等数据库。...例如,如果查看 Django 的功能集:除了使用像 Werkzeug 或 CherryPy 这样的更简单的东西无法从 Django 中获得什么部分来实现基于 HTTP 的 web 服务?

5110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    选择一个异步应用程序服务器还是多阻塞服务器?

    应用程序? 我一直在和我团队的其他成员讨论关于使用一个异步应用服务器,比如Play! Framework(建立在Netty上),相比于一个Rails应用程序服务器多实例旋转的优缺点。...我知道Netty是异步/非阻塞的,意味着在一个数据区查询操作中,网络请求或者其他一些类似的东西,一个异步调用就将会允许事件循环线程从阻塞请求转换到另一个已准备好的请求去处理/服务。...在另一方面,我的团队的成员认为你可以通过使用一个Rails应用程序的多个实例来获得同样的好处,它只能有一个线程,并且没有真正的并发应用程序作用在JVM上,只要使用足够的App实例来匹配一个Play!...应用的性能(或者即使我们使用多个Play!应用程序),当一个Rails应用程序阻塞了,操作系统将把流程转换至一个不同的Rails应用程序。...在服务器中这意味着增加了延迟,延迟排序将不能通过乘法提高,这可能取决于你的应用程序会使参数作废。

    1.6K80

    CDN 适合您的 Rails 应用程序吗?适合大规模应用吗?

    是否应该在 Rails 7 应用程序中使用 CDN 取决于几个因素: 应用程序的大小 如果您的应用程序相对较小并且没有很多静态资产,则 CDN 可能不会提供太多好处。...---- 如何在 Rails 中使用 CDN 如果您决定在 Rails 7 应用程序中使用 CDN,您可以通过将 Web 服务器配置为从 CDN 服务器提供静态资产来实现。...配置资产主机 在您的config/application.rb文件中,您可以将 设置config.asset_host variable为 CDN 的 URL。...配置 Rails 为资产提供服务 如果您使用默认的 Rails 资产管道,则需要修改 Web 服务器的配置以从 CDN 的服务器为您的资产提供服务。...Rails 7 中使用 CDN 是提高 Web 应用程序性能的好方法。

    17830

    Spot CEO:我们为什么选择Babylon.js而不是Three.js

    无渲染循环——与传统的 3D 体验不同,我们的主要目标之一是在我们的应用程序的被动性能要求方面极小的占用空间。 我们特意将产品中的 3D 场景设计为不会频繁更改。...Three.js 确实对这些东西有类似的支持,但通常是以外部包的形式。WebGPU 和 WebXR - 考虑到我们应用程序的性质,使用 rails 来指导 VR 设备体验的开发非常重要。...我们在 Blender 中构建资产,并拥有自己的自定义插件,可将额外的元数据添加到 Babylon.js blender 插件的输出中。...我们在 Babylon.js 论坛上发布的少数错误中,几乎所有错误都在几天内得到修复,更新后的代码可在夜间构建中使用。 这可能是我参与过的最友好的开源社区之一。...这些类型的场景在 3D 应用程序中更为常见。 我很想知道这在一个非常大的react-three-fiber应用程序中是如何发挥作用的。

    2.2K30

    Ruby vs Elixir | 2022 该选哪个?

    和 Phoenix Ruby 和 Elixir 有很多相似的地方,Elixir 的创建者 José Valim 曾是 Rails 团队的核心成员,他非常赞同 Ruby 灵活、干净、优雅的语法,但是 Ruby...使用 Elixir 无需在应用程序的架构中添加更多服务器来满足越来越多的用户产生的带宽需求。...Source: TIOBE Index for June 2022 此外,与知名度较低的 Phoenix 相比,使用 Rails 可以获得更多的支持和的第三方库。...如果没有内置的并发性,开发者就无法有效地管理可用的硬件资源——这是每个大流量的应用程序所必需的。 性能与开发速度 Ruby速度不慢,但不如Elixir快。...在 Ruby 中 惯例优于配置,以保持代码简洁并使开发人员更有效率。但是,当经验较少的开发人员不知道 Rails 背后的细节时,可能会导致阻碍生产力和维护的错误发生。

    1.6K10

    如何使用Capistrano自动部署:入门教程

    介绍 制作基于Web的应用程序的关键领域之一是部署。如何部署,这项任务确实被视为一件苦差事,似乎对您的项目几乎没有任何直接或附加价值。...Ruby编程语言 Ruby是一种通用的(即不是为解决特定问题而创建的),动态编程语言随着Ruby-on-Rails Web应用程序开发框架的发布而大受欢迎。...Capistrano是一个基于Ruby的工具,它为用户提供了在编译部署配方时利用Ruby干净清晰的语法的可能性。...Capistrano 操作方式 Capistrano lingo中的操作方式转换为包含部署(或管理)应用程序和服务器的操作指示的文件。...在开发过程中,您可能需要在每个步骤中定期执行命令(例如,在进入部署周期之前)。

    2.3K20

    PHP将死。何以为继?

    是到了PHP落幕的时候了。就在我这个顽固的PHP分子正要把一个现有的Ruby on Rails代码库转换成PHP时,我要说这样的话。 历史在重演 我认为PHP将亡,因为我以前见到过。...转向Ruby on Rails 最明显有潜在能力继任PHP的是Ruby on Rails。Ruby是一个新的、干净的语言,具有现代的语言特征,松散、优雅的语法(很像Python)。...我这篇文章的目的就是想试图把原因说清楚。 我的主要的抱怨,必须要提的,就是性能。我之前就说过这种问题不应该被当作一种语言的致命缺陷,它只是语言实现中的暂时的问题。...我 之前曾解释过为什么我认为这数据库上的ORM不是个好做法,所以我不会再重复解释,但有一点我需要总结的就是你省去了手工写CRUD所获得的效能要大于 ActiveRecord做傻事所损失的效能,要花时间搞清楚它是怎么工作的...但是这些JavaScript上的伟大思想总是徘徊在一些跑题的行为上,比如nodejs:事件驱动模式非常的激进和强大,能让你开发出高性能的应用程序,最大化的使用新式硬件,但这是一种开发服务器端应用程序的思路

    1.5K60

    【周一通勤电台 · 特辑】六千字漫谈2022后端框架流行趋势

    其次,你必须考虑用该框架编写的代码的透明度和易读性。如果你的开发人员能编写出干净的代码, 那么新的队友在进入项目时就不会有什么问题。 第三,你应该选择一个具有最佳支持的框架。...要获得额外的功能,你可以购买Gems--来自GitHub的专用模块,但大多数RoR开发者已经有了这些模块,所以你不需要为授权支付任何费用。 2. Ruby on Rails框架的缺点 运行时性能。...ASP.NET核心是开发基于Windows和.NET的网络和移动应用程序的首选框架,因为它能确保用户获得流畅和无摩擦的跨平台体验。...只要记住,我们选择的框架必须对我们的团队来说是方便和可用的,允许创建干净的代码,并且容易更新而不会在过程中崩溃。 6....您可以获得明显缩短的上市时间,这不仅是因为单一的代码库,而且还得益于许多小功能和Flutter开发工具,使开发人员能够创建一个更干净、更简单和更简洁的代码。

    4.4K30

    使用虚幻引擎自动化工具实现自动化部署

    我们将要使用的中心工具是虚幻自动化工具 (UAT)。除了构建和打包应用程序之外,该工具是引擎内部任何类型自动化的主要入口点。UAT 支持命令行开关,通常是在引擎生态系统中运行的一组命令。...当尝试仅使用 UAT 打包项目时,由于缺少项目的编辑器 dll,它将失败(在项目的干净版本上)。要创建缺少的 dll,我们需要使用 UBT 为我们的项目构建编辑器目标。...Build:使用所有必要的运行时模块编译引擎、引擎插件、项目插件和项目本身,通常在最后创建一个可执行文件 Cook:将所有引用的资产转换为目标平台的相应运行时格式(例如,在 Windows 上将纹理转换为...在构建自动化的范围内,我们通常希望将我们的资产打包成 pak 文件并将整个项目归档到一个文件夹中以供进一步处理(例如上传到 Steam)。...:据我所知,这个命令似乎已不起作用,省略这个标志应该构建我们之前使用 UBT 构建的编辑器部分,但至少对我来说这不起作用。

    2K10

    如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

    本教程将帮助您部署Ruby 在 Rails应用程序中的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Unicorn和Nginx。...如果您需要帮助,请参考腾讯云+社区中有关PostgreSQL with Rails的教程中的示例进行操作。 创建Rails应用程序 理想情况下,您已经拥有了要部署的Rails应用程序。...在您喜欢的文本编辑器中打开应用程序的数据库配置文件。...=production rake db:migrate 预编译资产 此时,应用程序应该可以工作,但您需要预编译其资产,以便该程序可以加载任何图像,CSS和脚本。...在您喜欢的编辑器中打开Gemfile(确保您在应用程序的根目录中): vi Gemfile 在文件的末尾,使用以下行添加Unicorn gem: gem 'unicorn' 保存并退出。

    4.3K00

    经验贴:如何快速掌握一门技术

    在我们自己的现状和想要达成的目标间,总是横亘着一条名为「先决条件」的大河,似乎除了花费巨大的精力游过这条大河外,别无他法。很不幸,大部分人还没能够接近目标,便被湍急的水流冲走了。...比如说,我要学rails,那就直接从rails开始,遇到有关ruby的语法障碍,回过头来看看ruby文档中相关的内容,扫清障碍立刻回到rails本身,而不是先从ruby啃起。...重要的不是堆砌了多少知识,而是学以致用。 仅仅专注并直奔主题还远远不够。学习过程中你需要大量练习和获得反馈。...在健身房里,就算观摩教练的动作一百遍而不是自己亲自尝试,并接受对方的纠正建议,你还是无法掌握正确的动作要领。...我见过有人把书中的例子一个个敲到编辑器中,全部运行正确,然后就心满意足地认为自己「掌握」这门技术了。殊不知,这种「练习」并非有价值的练习。

    83060

    如何快速掌握一门技术

    这让我想起了我在撰写「程序人生」公众号经常会遇到的一些读者留言: 「我想学rails,有没有推荐的ruby的入门书籍?」 「我想学android,对java掌握到什么程度才能开始呢?」...在我们自己的现状和想要达成的目标间,总是横亘着一条名为「先决条件」的大河,似乎除了花费巨大的精力游过这条大河外,别无他法。很不幸,大部分人还没能够接近目标,便被湍急的水流冲走了。...比如说,我要学rails,那就直接从rails开始,遇到有关ruby的语法障碍,回过头来看看ruby文档中相关的内容,扫清障碍立刻回到rails本身,而不是先从ruby啃起。...重要的不是堆砌了多少知识,而是学以致用。 仅仅专注并直奔主题还远远不够。学习过程中你需要大量练习和获得反馈。...在健身房里,就算观摩教练的动作一百遍而不是自己亲自尝试,并接受对方的纠正建议,你还是无法掌握正确的动作要领。

    97950

    架构的演进, 阿里资深Java工程师表述架构的腐化之谜

    构建过慢,完成新功能让你痛不欲生,团队成员无法很快融入,文档无法及时更新等等。 在长期运转的项目中,架构的腐化是怎么产生的?为什么常见的面向对象技术无法解决这类问题?如何延缓架构的腐化?...Eclipse中获得编译;由于编译打包时间过长,他们去掉了大部分的单元测试——带来巨大的质量风险。...我曾经见到一个团队需要在Visual Studio中打开120个项目;我自己也经历过需要在Eclipse中打开72个项目才能完成编译。 解决方案是物理隔离这些组件。...创建应用程序的生态环境,而非单一的项目 功能总是不断的、不断的加到同一个产品中。这毫不奇怪。然而通过我们前面的分析,我们应当重新思考这个常识。...项目的各方人员(包括业务用户、架构师、开发者)应当从短视的眼光中走出来,着眼于创建可持续的应用程序生态系统。

    70950

    架构的演进,阿里资深Java工程师表述架构的腐化之谜

    构建过慢,完成新功能让你痛不欲生,团队成员无法很快融入,文档无法及时更新等等。 在长期运转的项目中,架构的腐化是怎么产生的?为什么常见的面向对象技术无法解决这类问题?如何延缓架构的腐化?...Eclipse中获得编译;由于编译打包时间过长,他们去掉了大部分的单元测试——带来巨大的质量风险。...我曾经见到一个团队需要在Visual Studio中打开120个项目;我自己也经历过需要在Eclipse中打开72个项目才能完成编译。 解决方案是物理隔离这些组件。...创建应用程序的生态环境,而非单一的项目 功能总是不断的、不断的加到同一个产品中。这毫不奇怪。然而通过我们前面的分析,我们应当重新思考这个常识。...项目的各方人员(包括业务用户、架构师、开发者)应当从短视的眼光中走出来,着眼于创建可持续的应用程序生态系统。

    1.1K100

    架构的演进,阿里资深Java工程师表述架构的腐化之谜

    构建过慢,完成新功能让你痛不欲生,团队成员无法很快融入,文档无法及时更新等等。 在长期运转的项目中,架构的腐化是怎么产生的?为什么常见的面向对象技术无法解决这类问题?如何延缓架构的腐化?...Eclipse中获得编译;由于编译打包时间过长,他们去掉了大部分的单元测试——带来巨大的质量风险。...我曾经见到一个团队需要在Visual Studio中打开120个项目;我自己也经历过需要在Eclipse中打开72个项目才能完成编译。 解决方案是物理隔离这些组件。...创建应用程序的生态环境,而非单一的项目 功能总是不断的、不断的加到同一个产品中。这毫不奇怪。然而通过我们前面的分析,我们应当重新思考这个常识。...项目的各方人员(包括业务用户、架构师、开发者)应当从短视的眼光中走出来,着眼于创建可持续的应用程序生态系统。

    1.4K120

    慢的不是 Ruby,而是你的数据库

    我个人主要使用 Ruby 编写代码,但很少涉及 Rails(因为我不太喜欢它),不过我是个例外。在 Ruby 开发中,几乎总是采用 “用 Rails 进行 Web 开发” 的方式。...针对 Rails 的基准测试已经进行了许多次。我现在将获得更多元数据,而不是继续讨论整个堆栈的 “基准” 和火焰图。少谈数字,多谈概念。因为对于 Rails,我确信性能问题是概念性的。...我曾在一个拥有百万级用户的应用程序中,导致数据库服务器集群崩溃:原因在于一个无关控制器的简单更改,使 Rails 切换到一个外部连接,该连接具有巨大物化视图,本不应以这种方式连接(用于报告)。...20 毫秒的减速几乎无法衡量,数百个 20 毫秒的速度减慢在几个月内逐渐增加,使响应变得令人无法接受。最糟糕的是,这些 “错误” 被团队贴上了 “以 Rails 方式完成” 的标签。...我开发的 Rails 应用程序数量惊人,其中包含某种形式的 .sort(params[:sort by]):仅在 2021 年,我就开发了三个独立的 Rails 应用程序,所有这些应用程序都可以通过使用

    15130

    如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

    本教程将帮助您部署Ruby on Rails应用程序的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Puma和Nginx。...在您喜欢的文本编辑器中打开应用程序的数据库配置文件。...=production rake db:migrate 您还应该预编译资产: RAILS_ENV=production rake assets:precompile 要测试您的应用程序是否有效,您可以运行生产环境...在您喜欢的编辑器中打开Gemfile(确保您在应用程序的根目录中): vi Gemfile 在文件的末尾,使用以下行添加Puma gem: gem 'puma' 保存并退出。...现在,您的应用程序配置为在启动时通过Upstart启动。这意味着即使在重新启动服务器后,您的应用程序也会启动。

    5.4K10

    在非托管钱包中可能会出现价值3000万美元的BCH SIM 交换黑客攻击吗?

    SIM 交换黑客攻击 为了更清楚地了解此事件,我将解释一下什么是SIM交换黑客攻击以及它是如何执行的。简单来讲,SIM交换黑客攻击是指黑客能够获得仅针对受害者的私人及安全信息的情况。...具有托管性质的钱包永远无法达到非托管钱包的安全级别。我认为,只有让用户对自己的资产拥有绝对且完全的控制,才能实现最高和最优的安全性,非托管钱包就是如此。 ?...(Newdex:https://newdex.io/) 所有交易都直接发生在客户的非托管钱包中,确保了最佳的安全性,因为交易者只有在执行交易的那一刻才会失去对其数字资产的托管权。...尽管CEX运营商在过去做了很多安全改进,比如让大部分流动资金保持离线状态并获得保险,但它仍然无法与DEX提供的安全性相提并论,因为资产所有者从未交出过其托管权。...由于各种原因,客户的资产仍然可能被困在CEX中,比如丢失了冷钱包的私钥、平台的技术问题、遵从法规、甚至是破产问题。 ? 在非托管钱包中可能会发生SIM交换黑客攻击吗?

    83410

    每个CMDB系统都存在的5个数据质量问题

    CMDB的好坏取决于其数据的质量。不幸的是,大多数CMDB都充满了过时的、不一致的或不完整的数据。 CMDB在组织里起到非常关键的作用,比如: IT资产管理和软件资产管理(?)...ITSM中的服务台 授权合规、采购和审计 企业架构-规划和治理 CMDB还可以支持大型的IT决策和项目,如数据中心整合、应用程序升级迭代和系统迁移。...组织的很多智能都依赖CMDB拥有的干净数据。为了决策有效,CMDB需要97%的准确度。而事实上,CMDB中的数据平均只有50%-75%的准确度。...没有干净的数据,资产管理者就无法准确地知道某个软件的Owner是谁,它部署在哪里以及部署的是哪个版本。同样,没有全面的硬件数据,支持工程师可能无法快速排除其上的问题。...根据Gartner公司的研究,有40%的业务计划失败、没有达成预期目标,主要原因是数据质量差。 在CMDB的中,“干净的数据”是什么意思?

    1.2K81
    领券