艾伦•布拉德伯 (Alan Bradburne)
亚当·霍金斯的这篇博客:《Ruby 社区:下一个版本》触动了我。Rails 作为一个行业的当前状态和趋势最近一直在我的脑海中。
在短短 10 年间,我们已经从“如何构建一个博客,15 分钟的演示 (wups !),成长为 web 基础设施的一部分,成千上万的职位——包括我。它只是令人兴奋的我们已经走了多远。这是因为纯粹的辛勤工作和奉献精神,来自 (相对) 少数人,他们痴迷于让 web 开发更好、更聪明和更加充实和有意义。
但随着 Rails 的大规模增长,对于我们创建和维护 Rails 应用程序的人意味着巨大的责任,甚至更多的责任,对即将到来的 Rails 开发人员培训和指导。
我相信任何开发 Rails 一段时间的人,一定继承了有绝对巨大 Gemfiles 的应用程序。当然,Rails 本身只是一组 gem,但当审计这些应用程序似乎也保证将会有大量的过时和废弃的 gem,gem 本质上是俏皮话或猴子补丁,完全未测试 (或者更糟,严重考验),或非常令人担忧的是,出现新的和闪亮的 gem——经常有 too-clever-for-their-own-good dsl——影响了整个应用程序的设计和架构,移除它们需要大部分重写 (你的测试覆盖率看起来怎么样?)
Rails 的这种印象,严重损害 Ruby 和 Rails 开发人员的声誉,更严重的是,Rails 和 Ruby 本身。
我们怎么会在这里,开始改善我们需要做什么?
我认为我们到达这一点的部分原因是,Ruby 和 Rails 很容易玩!这样他们有些是自己成功模式的牺牲品。我坚信,玩耍是绝对最好的学习方法,而实验新技术对成为更好的开发人员是至关重要的。但作为一个开发人员对客户 (无论是作为一个自由职业者,承包商或雇员) 有很大的责任。作为开发人员关心我们构建的产品,我们的客户的幸福和成功,Ruby,Rails 和 Web 开发人员的声誉,我们需要确保我们都实践和教授负责任的开发。这意味着对你编写的代码和引用的代码负责。
只是因为有一个 gem,似乎立即解决你的问题并不意味着你应该将它添加到您的项目。阅读代码,阅读测试,了解它是如何工作的,它做什么,不做什么,依赖它,它是如何支持,开发人员应对问题和 PR 吗?非常重要的是,考虑删除它有多么困难。如果它将“聪明”地改变应用程序编码的方式,它可能不是一个好的选择。仔细考虑这些东西,在添加到 Gemfile 之前。
问问你自己你认为这个问题应该如何解决。如果你使用它在一个应用程序中,使用清晰和明确吗?当你离开了项目而一些可怜的人继承了您的代码,新的开发人员要了解发生了什么,或者他们会开始检查 git 日志和诅咒你的名字吗?
我们需要考虑我们如何鼓励负责任的开发实践在刚开始的 Rails 开发,同时也不阻止玩和实验。
我最近跟一个成功的 CEO 交谈,快速增长的公司,其业务是基于一个大型的 Rails 应用程序。到目前为止,Rails 兑现了所有的承诺,帮助他现在的公司。但是现在,很久以前似乎无害的开发选择,开始妨碍公司开发新特性和测试新的经营理念的能力。这绝对不是我第一次听到这个问题。
正如我之前说的,这是开始影响 Ruby 和 Rails 开发人员的声誉。也许我担心这只是我自私,但如果 Rails 得到一个坏名声,我也受影响。Ruby 是比这更好的。Rails 是比这更好的。我们是比这更好。
我完全支持亚当在他的帖子所有的观点。如果你是一个 Rails 开发人员,我强烈建议你阅读和考虑他的建议。但请不要停止玩,尝试,最重要的是,在 Ruby 中享受工作。