发布于 2026-01-06 2 阅读
0

优秀 Ruby on Rails 开发人员的 10 个特征

优秀 Ruby on Rails 开发人员的 10 个特征

过去五年我一直在Josh Software担任Ruby on Rails开发人员,我觉得应该把我学到的关于RoR开发人员最佳实践的经验记录下来。我是如何学习的呢?当然,学习任何东西都需要犯错,我们就是这样学习的,对吧?

让我们来看看,要成为一名“优秀的”Ruby on Rails开发人员,你需要遵循哪些原则。

1. 你们的迁移计划“考虑周全”……

每当你遇到数据库表架构设计时,你会考虑所有方面吗?

  • 正在设计的表格将在哪里使用?它的数据量可能会增长到什么程度?(设想一下你设计的最糟糕的情况)

  • 我是否保留了正确的数据类型、默认值和约束条件?大多数情况下,我们并不需要整数列,smallint对于较小的数据集,我们可以用其他类型代替integers,类似地,也varchar(10)可以用varchar(255)其他类型代替text

  • 我是否已在必要的地方添加了索引?仔细思考一下这张表将要处理哪些类型的查询?

特别需要注意一点……你是否为同一张表编写了多个迁移脚本?如果是,这是一个坏习惯。

我们常常没有仔细考虑上面提到的所有要点,最终为同一个表创建多个迁移,导致代码库看起来很可怕。

相反,你应该使用up迁移down来修复或更改表,需求变更是一个例外。

2. 你始终遵循单一职责原则

我们都知道“瘦身主宰和胖模特”这种说法,有些人已经遵循这种说法,但我们是否明智地遵循了这种说法呢?

我们现在生活在 Rails 5 时代,为什么还要对模型进行过多操作呢?

为什么不遵循“保持一切精简,将多余的部分从模型移到关注点或服务对象”的原则呢?代码库中的类应该设计成只负责单一职责。

我偶然发现了以下关于如何在 Rails 中组织控制器和使用服务对象的帖子。

3. 你编写测试用例来测试“代码”。

我见过很多应用程序的持续集成构建需要很长时间才能完成,它们到底在测试什么

你的测试用例应该测试“代码”,而不是机器性能,更好的测试套件

  • 在不同的示例之间共享对象。
  • 使用方法存根,避免重复调用方法。
  • 不要对同一段代码进行两次测试;如果一段代码可以共享并在多个地方使用,那么就不要在多个地方编写测试用例。
  • 不会创建不必要的测试记录,但很多开发人员在不知不觉中最终创建了不必要的测试记录。

如果您使用fakerfactory_bot_railsdatabase_cleaner等 gem来创建和清理测试记录,那么创建不必要的记录会浪费您的时间和速度。

简单的例子

  create_list(:user, 10)
Enter fullscreen mode Exit fullscreen mode

如果你对 10 个用户没有特殊要求,那么最好减少列表大小。

  create_list(:user, 2)
Enter fullscreen mode Exit fullscreen mode

4. 保持生产环境健康

如果你是一名工程师,并且想要减少他人的工作量,那么你就是在利用其他工程师的成果来减少自己的工作量。

一个健康的 Rails 生产环境总是具备以下条件:

  • 监控——一切是否正常运行?如果未正常运行,请收到通知。
  • logrotate – 轮换、压缩和发送系统日志。
  • 使用when执行crontab,让计划任务为你服务。
  • 数据库备份脚本在维护窗口期间运行。
  • 异常通知程序,例如SentryRollbar,或者“任何适合你的程序”。

5. 你遵守基本的 Git 礼仪

如果你在团队中工作并使用 Git,那么你需要遵守 Git 礼仪,例如:

  • 不要提交未跟踪的文件——我们经常保留 git 未跟踪的文件,例如something.swp' backup.sqlschema.rb orstructure.sql backups ,some.test.script',你不应该提交这样的文件。
  • 分支命名——给事物命名总是很困难,但你必须这样做,特性分支应该有合理的名称,不要使用类似“ something-wip,”这样的名称somthing-test
  • 合并后删除功能分支——无需解释。
  • 提交信息——你的提交信息必须包含Github issue numberany project management story number/linkbrief description about feature/task

6. 请勿忽略 README.md 文件。

记住,你不是唯一一个终其一生都在开发某个应用程序的人。总会有人接手你的项目,他不应该浪费时间去研究如何进行设置。

您的应用程序库必须已更新README.md,其中包含首次设置应用程序的详细步骤。

7. 对你来说,秘密才是“真正”的秘密。

我们经常使用凭证进行数据库配置、secrets.yml 文件、第三方 API(如 AWS、支付网关、Sentry 等)。

您不应该将此类凭据/密钥/环境变量提交到 Github,而应该使用dotenv-railsfigaro等 gem或简单的点文件(这些文件不会提交到存储库)来确保它们的安全。

应提交一份包含此类凭证的示例文件,并定期更新。

8. 你会进行代码审查并与团队讨论功能。

在团队合作中,你应该让你的功能得到其他团队成员的审查,或者在开始任何功能之前与团队进行彻底的讨论。代码审查或功能讨论的优势在于,你会遇到许多没有想到的情况。

如果你是唯一一个在开发应用程序的人,那么你必须对自己的代码进行批判性分析,并在测试用例中涵盖所有场景。

9. 你掌握最新信息并持续更新

在开源社区中,Ruby、Rails 和 Gems 会频繁更新或发布,您必须通过订阅代码库或邮件列表来了解最新信息,并更新您的应用程序库。

此外,您还应密切关注生产操作系统和数据库的安全修复情况,以便及时采取必要的措施。

10. 无需赘言……

你编写的代码简洁易维护,你的代码库也……

当然,这份清单还可以包含更多要点,但我认为这些是最重要的,应该首先填写进去。如果您发现我遗漏了任何更重要的内容,请在帖子下方留言。

感谢您阅读至此,希望本文能帮助您成为一名“优秀”的开发者。

PS:我即将离开WordPress,这是转载帖子。

文章来源:https://dev.to/pramodshinde7/10-signs-of-a-good-ruby-on-rails-developer-2nc4