
作为 Ruby on Rails 开发人员,利用各种组件(gem)的强大功能来增强开发流程、提高代码质量并确保安全性非常重要。
在本文中,您将了解一些 Ruby on Rails 应用程序必备的组件这些组件可提供审计、代码分析、代码质量改进、测试和调试等功能。
是一个组件,可扫描应用程序的依赖项,查找已知的安全漏洞。它会根据漏洞数据库检查您的 Gemfile.lock,并在您的任何 gem 存在已知漏洞时发出警报。通过使用 Bundler Audit,您可以主动解决安全问题,确保应用程序的安全。
它的主要功能包括
可以在本地添加 Bundler Audit,或者更好将其添加到 Gemfile 中以实现 CI/CD 集成。
gem ‘bundler-audit’
是一个组件,可让您为 Rails 模型创建用户友好的自定义 。它将默认的数字 ID 替换为人类可读的短语,从而改善应用程序的搜索引擎优化友好性和用户体验。有了 FriendlyId,你就可以根据属性或自定义逻辑为模型轻松生成短语。
gem ‘friendly_id’
是一款能帮助你识别和优化不必要的数据库查询的软件。它提供 N+1 查询检测、未使用的急迫加载检测和其他性能优化功能。通过使用 Bullet,你可以提高应用程序的效率,确保数据库查询得到优化。将其添加到开发组下的 Gemfile 中。
gem 'bullet', group: 'development'
是一款分析代码库并检测代码气味或设计问题的软件。它能帮助您找出可以简化和重构代码的地方,以提高代码的可读性和可维护性。通过在代码上运行 Reek,您可以确保您的应用程序遵循更佳实践,并更易于长期维护。
gem ‘reek’
是一种广泛使用的组件,用于在 Rails 应用程序中执行一致的编码风格和更佳实践。它提供了一套可根据项目偏好进行定制的规则和指南。通过使用 Rubocop,您可以确保代码库整洁、可读性强,并遵守公认的编码规范。
gem 'rubocop', require: false
是一个组件,用于分析 Rails 应用程序,并根据更佳实践提供改进代码的建议。它能帮助你识别潜在的性能问题、安全漏洞和设计缺陷。通过使用 rails_best_practices,你可以确保你的应用程序遵循既定的 Rails 惯例和准则。
gem ‘rails_best_practices’
是一款用于扫描 Ruby on Rails 应用程序安全漏洞的组件。它能检查代码库是否存在潜在的安全风险,如 、跨站脚本和其他常见漏洞。通过使用 Brakeman,您可以在开发过程中尽早发现并解决安全问题,从而降低安全漏洞的风险。
group :development do gem 'brakeman' end
是用于 Rails 上的 Ruby 的行为驱动开发(BDD)和测试的流行组件。它为编写测试提供了强大而富有表现力的语法,使定义和记录应用程序行为变得更加容易。使用 RSpec-rails,您可以通过有效的测试实践确保代码的可靠性和正确性。
group :development, :test do gem 'rspec-rails', '~> 6.0.0' end
是一个功能丰富的组件,可增强 Ruby on Rails 的调试体验。它提供了一个功能强大的 REPL(读取-评估-打印循环)环境,具有语法高亮显示、代码自省和断点调试等高级功能。通过使用 Pry,您可以交互式地调试应用程序、检查变量,并更有效地诊断和解决问题。
group :development, :test do gem 'pry’ end
是一个组件,可帮助您了解 Rails 应用程序的流程并找出潜在的性能瓶颈。它能提供有关每个中间件和控制器操作所耗费时间的详细信息,使您能精确定位需要优化的区域。通过使用 Traceroute,您可以优化应用程序的性能并提供流畅的用户体验。
gem traceroute
在您的 Ruby on Rails 应用程序中加入这 10 个基本 gem,可以显著改善您的开发工作流程、提高代码质量并增强安全性。从优化数据库查询到执行编码标准和进行全面测试,这些 gem 能为开发人员带来广泛的好处。
请注意,许多成熟的 Rails 项目都会在其 CI/CD 管道构建中结合使用 Brakeman、Rspec-rails 和 Bundler Audit,以此来覆盖安全和漏洞:
在您的新项目中试用所有或部分这些 gem,体验它们为您的 Ruby on Rails 开发之旅带来的优势。或者让您的现有项目跟上时代的步伐。祝你编码愉快!
使用宝塔面板,您可以快速地创建一个FTP管理账户,对网站文件进行管理。但有必要提醒大家的是,使用FTP远不如使用SFTP安全,你可以查看文章“”进一步了解两者之间的差异。 此外,宝塔面板的文件管理模块其实已经能够满足站长的大部分文件管理需求。当然,如果你非得要使用FTP管理服务器文件,可以参照以下...
宝塔面板另外一个特质是,你无需通过Linux命令行来查看服务器各项指标状况,即可以阿里云服务器类似的可视化图表,查看资源使用、负载、CPU占用及内容使用百分比等指标。 默认监控是关闭,有需要的,可以开启,监控数据默认保存30天,可以自行修改,默认监控数据保存在日志,可手动清理该日志。 监控管理,...
宝塔面板的计划任务,主要用于安排和管理需要定时执行的任务,如备份、内存清理等。其实对于大部分站长来说,主要使用该板块的备份网站、备份数据库及释放内存的三个定时任务计划。 Shell脚本的添加 输入任务名称,选择执行周期,输入执行的脚本内容。 注意事项: 输入脚本内容...
PHP开发:有些人认为它是,另一些人认为它是一种过时的技术,不值得花时间学习。但是这些数字说明了什么,尤其是当您查看PHP开发人员的薪水时? 虽然肯定有许多更新、更炫、更令人兴奋的语言,但PHP仍然是后端Web开发的可靠主食,也是许多雇主仍在寻找的技能。 有兴趣自己成为PHP开发人员吗?我们...
无服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。 服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。 换句话说,Serverle...
PHP 8.2预计将于今年11月发布,最新的稳定版本是PHP 8.1.5。虽然现在还为时过早,但对更新的接受程度参差不齐。 但是,知道会发生什么可以帮助您。通过了解新功能和不推荐使用的功能,您可以了解更新可能如何影响开发。这些知识还可以帮助您为最终发布做好准备。 在这篇文章中,我们将回顾最新...