翻译 Ruby 的声誉

chenge · 2016年08月17日 · 最后由 MrPasserby 回复于 2016年08月18日 · 4936 次阅读

艾伦•布拉德伯 (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 中享受工作。

英文链接

首发链接

但是现在,很久以前似乎无害的开发选择,开始妨碍公司开发新特性和测试新的经营理念的能力

这是通病,

主要还是 Ruby 社区的 Gem 的维护程度高,流行的 Gem 功能满足大多数场景而且也容易定制(这个真的是 Ruby 自身的优点)... (PS. 说 Gemfile 长的难道我们不应该聊聊 NPM 吗。。。

最近在写 Android 就很感慨,绝大多数开源组件(几乎所有的 UI 组件),都是没办法直接引用的,一方面 Jaba 的扩展性极差,另一方面,即使是知名的库,疏于维护也是挺普遍的现象。

再说了,工作毕竟是养家糊口,哪能每个需求都跟做游戏一样...宏观来看一定还是体力活多的...没乐趣也凑合凑合做出来(满足需求、Bug 性能在合理范围)很正常嘛...

所以我认为 Gemfile 长长一串、无脑直接引用真的是好事呀,Gem 能够开箱即用 0 配置本身就说明这个 Gem 贴合业务,伸缩性强了(而且就我过去维护的一些 Gem 来讲,本来就是以这点为目标)。至于说了解 Gem 本身,我觉得可以从两点来讲:1.这个是个人学习欲望的问题 2.不需要了解他的内部细节就已经可以足够满足需要了

#2 楼 @jasl 包管理都这样,别这样互相伤害

我也认为各个社区都一样,大多数 Gem 到最后都是不维护了,只能自己 Fork。一直维护的 Gem 就是几个作者自己公司也在用的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号