避免使用第三方宝石是否正确?

2024-03-01

我正在使用 Ruby on Rails 3.2.2。我想知道以下想法是否(源自我的上一个问题 https://stackoverflow.com/questions/11190792/how-to-properly-add-brackets-to-sql-queries-with-or-and-and-clauses-by-using) 是正确的:

我倾向于不使用第三方宝石(至少在可能且合理的情况下),因为它们随时可能被放弃。另外,如果 Ruby on Rails 框架发生变化,我可能必须等待这些 gem 更新,然后才能将我的应用程序更新到最新的 RoR 版本。


在一个完美的世界里,你是不朽的,拥有无限的时间,是世界上最好的程序员,无论你在 1 小时还是 10 年内推出你的产品都没有区别,这样你就可以从头开始自己编写所有代码,然后也许它会赚更多避免使用其他人的代码。

但在现实世界中,人们已经为你解决了问题。 Gems 允许您插入这些解决方案。

一个好的经验法则是,尽可能选择社区最喜欢/流行的宝石作为给定的解决方案。使用 gem 的人越多,就越有兴趣对其进行更新,并且有越多的眼球对其进行审查并发送拉取请求。经过一群人在生产环境中经过实战测试的 gem 很可能比您第一次尝试时想出的更好,对吗?

依赖于一名爱好者维护者的 Gems 甚至不会在令人抓狂的生产应用程序中使用它,您往往会发现一些风险。但即使在这些情况下,如果有一天你最终不得不分叉他的宝石,你仍然领先于从头开始的情况。

更好的趋势是避免从头开始编写所有内容,而是利用其他有类似需求的人的大脑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

避免使用第三方宝石是否正确? 的相关文章

随机推荐

  • 安卓白标

    我在一家公司工作 该公司在商店里有这个 foo 应用程序 该应用程序是我们硬件的助手 深受经销商的喜爱 我们确保该名称尽可能通用 以便我们的供应商能够将应用程序作为 他们的应用程序 进行营销 然而 一些经销商确实希望在应用程序上显示他们的确
  • 使用 stanford-nlp 对一些文本进行分块

    我正在使用 stanford core NLP 并使用此行加载一些模块来处理我的文本 props put annotators tokenize ssplit pos lemma ner parse dcoref 是否有一个模块可以加载以分
  • jQuery 使用数据 id 对元素进行排序

    我的 HTML 结构如下 div class clist div div div div div div div div div div div div div div div 我想将它们排序为 div class clist div di
  • 从 Google Sheets API 获取过滤后的数据

    我正在使用 nodeJS 从 google 工作表中获取数据 URL 如下所示 var url https sheets googleapis com v4 spreadsheets sheet key values Sheet2 A1 J
  • 编译与编译树与编译文件之间的区别?

    我试图将我的项目集成到 android studio 中 但在添加依赖项时我有点困惑 我不知道哪一个效果好 我尝试过编译文件树和编译文件 它不适合我 我找到了一些方法 任何人都可以告诉我哪一种适合添加库 仅像 admob 这样的 jar 文
  • ModSecurity CSRF 规则警报

    我已经安装了 Owasp ModSecurity 之后我的应用程序上的所有页面都有此规则警报 ModSecurity Warning Match of eq 1 against ARGS CSRF TOKEN required file e
  • “添加为链接”选项发生了什么?

    为什么是添加现有文件作为链接 http visualstudiohacks com tips options add an existing file to a project without copying it 功能仅适用于托管项目 我
  • 从 url 加载图像

    如何从图像的 url 将图像加载到 UIImage 对象 目前 我正在使用 UIImage FromFile 加载图像 并将图像作为内容包含在内 但我需要能够从另一个网站获取它 image Image UIImage FromFile im
  • GitHub Action:使用 PowerShell 将环境变量传递到 Action 中

    我正在尝试构建一个将在 PowerShell 中运行的工作流程 我正在为我的分支名称设置一个环境 以便在签出不同存储库的步骤中使用 run branchName Env GITHUB REF replace refs heads echo
  • 与需要参数的工厂方法统一

    我想使用需要参数的工厂方法在 Unity 容器中注册类型 这些参数将由统一解析 但只能在运行时解析 工厂方法代码 public static IApp Create IOne ITwo 注册码 container RegisterType
  • 如何将包含 JPanel 的 JScrollPane 视口滚动到特定位置

    我正在尝试创建一个大型游戏板 其中只有一部分在视口中可见 并且希望能够使用箭头键移动视口以查看整个板 现在我有一个 JScrollPane 其中包含一个 JPanel 其中包含图像 文本和其他内容 但这些都是无关紧要的 现在我有一个与 JP
  • 如何使用 Python 3.5.1 从列表中打印多个不连续的值

    我创建了一个列表 并想从列表中选择一些要打印的项目 下面 我只想在索引 0 处打印 bear 在索引 3 处打印 kangaroo 我的语法不正确 gt gt gt animals bear python peacock kangaroo
  • 使用 C++ 线程模拟 pthread_kill

    如何使用 C 线程模拟 pthread kill 函数 我之前问过这个问题 但没有得到回应 thread native handle 函数在这里有帮助吗 所以这个问题的答案是依赖平台相关的功能并使用std thread native han
  • Bash for 循环打印出意外的输出,为什么呢?

    我编写了一个脚本 用于查询 AWS Route53 上的 dns 区域并返回特定服务器的 IP 目的是在启动 CloudFormation 堆栈后运行此脚本 并且该脚本将更新我的本地 ssh config包含更新的服务器 IP 的文件 我想
  • 故事板中的自动布局,如何将子视图的宽度设置为其超级视图的 1/3?

    我知道这可能非常简单 但是 我试图弄清楚如何告诉子视图其宽度需要是其父视图宽度的 1 3 我想在故事板中执行此操作 而不是在代码中 所以情况非常简单 只是 ViewController 视图中的 UIView 如何在故事板中使用自动布局来完
  • 如何保存 pgAdmin 4 中的更改

    我是 postgreSQL 的初学者 有 2 台服务器 我想删除一台 我单击 删除服务器 但是当我退出程序时 我无法保存此更改 并且在重新打开程序时 第二个服务器又回来了 这看起来非常简单 但我找不到任何明显的方法来保存此更改 请帮忙 当您
  • 预测多个单独组的线性回归

    我想预测单个数据框中多个组的线性回归的值 我发现以下博客文章几乎可以满足我需要的一切 https www r bloggers com 2016 09 running a model on separate groups https www
  • 如何在 Xcode 中更改 MyFramework_vers.c 的编译标志?

    启用 Apple 通用版本控制后 Xcode 会自动生成MyFramework vers c文件在DERIVED SOURCES DIR 其中包含版本字符串和数字 定义为const unsigned char and const doubl
  • AWS 承担 EC2 实例 IAM 角色的角色不起作用

    在我们的应用程序中 我们使用自定义角色访问 aws API 在开发环境中 我们在app config中提供了access Key和secret key 效果很好 在生产环境中 我们设置了一个 IAM 角色 该角色具有自定义角色的必要权限 并
  • 避免使用第三方宝石是否正确?

    我正在使用 Ruby on Rails 3 2 2 我想知道以下想法是否 源自我的上一个问题 https stackoverflow com questions 11190792 how to properly add brackets t