Ruby社区:下一个版本(翻译,简学互动)

Ruby社区,一直朝着错误的方向发展。我花了一些时间来确认和更多的时间来查明为何,以及能够作什么。社区正面临巨大的技术和心态问题。咱们必须从新定位本身以便生存和发展。程序员

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

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

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

谈话开始在私人圈子里。这是一个幕后聊天发生在会议和互联网的小角落。有不满的咕哝和想要不一样的东西。但这是一个私下的咕隆。为何它是私人?这多是由于人们惧怕说起的话题,由于它可能被视为咬他们。它也可能由于当前的思想领袖不认为这是一个问题——有关。不幸的是,不是更多的公开对话。人们须要表达他们的意见,这样咱们就能够一块儿工做来改善。架构

解药是痛苦的。它须要一个完整的从新定位。这是不容易的。我知道由于我有测试过,我知道其余人也试过。这是激烈的,但咱们必须如今就行动。永远不会有更好的Ruby生态系统若是咱们不行动。框架

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

这些变化将慢慢解决如今困扰咱们的许多问题。咱们会获得更强,更好,更合理的社区。我相信,采用这种方法能够构建下一个版本咱们的社区。它改变了个人开发习惯,并且我见证了别人的变化。咱们必须使用这些点从新定位本身:函数

  • 喜欢简单赛过方便,便利付出代价。本身编写额外的代码不是一个问题。测试

  • 喜欢显式赛过隐式-程序更容易维护和理解,当依赖性或反作用是显式的。开放源代码

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

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

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

  • 关注中长期的需求

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

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

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

你将从新定位本身,创建下一个版本的Ruby社区吗?

英文连接

相关文章
相关标签/搜索