1

Ruby社区,一直朝着错误的方向发展。我花了一些时间来确认和更多的时间来查明为什么,以及可以做什么。社区正面临巨大的技术和心态问题。我们必须重新定位自己以便生存和发展。

技术选择和加强了他们的心态,创造了大量的长期技术债务。生态系统并不是基于良好的软件设计原则生产库和程序。生态系统充斥着大型项目,不尊重架构边界,或者是过度耦合的许多事情,依靠猴子补丁的第三方代码,这样的例子不胜枚举。悲伤的是项目在技术债务下高比例崩溃。企业也受苦于糟糕的工程实践。有为了专门清理这个烂摊子的商业模式存在。我们可以做的更好。

Ruby开发人员习惯于被娇生惯养的集成解决方案。许多新的和中级开发人员很快就gem install business-logic,预计配置然后交付的东西。这将创建一个循环关注紧急需求,而不是长期的持续发展。我们中有多少人考虑使用库或其他决定的影响,从现在起的6个月,甚至两年后?长期的结果是许多Ruby开发人员不能承担技术责任或代码所有权。我发现越来越难以找到有经验的开发人员实现业务逻辑,底层技术要求,或没有框架就无法生存。

Matz创建Ruby使得程序员快乐。他让程序员通过创建一流的api(如快乐 Enumerable模块),强大的元编程结构,一个真正的面向对象实现,以及函数式编程最好的部分。程序员是开心的,因为他们可能会迅速产生工作软件。Matz最初的想法伴随着我们和影响我们的文化。今天,文化更喜欢漂亮的代码胜过技术正确性。这是明显的在dsl扩散而不是设计良好且可重用的api。Ruby的元编程支持是最有力的语言特性。不幸的是它经常过度使用创建过于复杂和不透明的解决方案,通过隐式的依赖关系。所有这些因素都将开发人员变成不幸的Ruby开发人员。

谈话开始在私人圈子里。这是一个幕后聊天发生在会议和互联网的小角落。有不满的咕哝和想要不同的东西。但这是一个私下的咕隆。为什么它是私人?这可能是因为人们害怕提及的话题,因为它可能被视为咬他们。它也可能因为当前的思想领袖不认为这是一个问题——有关。不幸的是,不是更多的公开对话。人们需要表达他们的意见,这样我们就可以一起工作来改善。

解药是痛苦的。它需要一个完整的重新定位。这是不容易的。我知道因为我有测试过,我知道其他人也试过。这是激烈的,但我们必须现在就行动。永远不会有更好的Ruby生态系统如果我们不行动。

有经验的开发人员必须以身作则创建小型设计良好的库,使用简明的代码结构组成更大的栈,具备在长时期持续开发的能力。我们必须积极鼓励更好的工程实践在我们的同行中,积极阻止不适当的技术解决方案。我们必须教导初学者和中级开发人员如何避免这些陷阱,这样他们可以教别人建造更多的基本上良好的解决方案。

这些变化将慢慢解决现在困扰我们的许多问题。我们会得到更强,更好,更合理的社区。我相信,采用这种方法可以构建下一个版本我们的社区。它改变了我的开发习惯,而且我见证了别人的变化。我们必须使用这些点重新定位自己:

  • 喜欢简单胜过方便,便利付出代价。自己编写额外的代码不是一个问题。

  • 喜欢显式胜过隐式-程序更容易维护和理解,当依赖性或副作用是显式的。

  • 喜欢小库胜过大库-小API的表面区域更容易集成到大型代码库并执行边界。

  • 喜欢代码对扩展开放而不是修改,设计良好的代码不需要猴子补丁

  • 喜欢自组合的栈而不是交钥匙解决方案

  • 关注中长期的需求

  • 架构师具有较强的边界意识

  • 积极最小化和审计你的依赖关系。不要盲目地信任对方的工作。

  • 以身作则,示范,教别人如何应用这些价值,通过开放源代码,代码评审和其他手段。

你将重新定位自己,建立下一个版本的Ruby社区吗?

英文链接


chenge3k
231 声望21 粉丝

Elixir,2016,fun.


引用和评论

0 条评论