Xavier Noria on Rails 6,咨询等

已经在本周六,我们将在致力于该技术的主要会议RubyRussia 2019上与所有摩擦专家会面 。 9月28日非常接近,在这次采访 ,Evrone开发人员Pavel ArgentovXavier Noria准备了问题,与他一起在MSTU上“ Internet编程语言”课程一起工作的学生和老师帮助了他。

图片
查韦尔最后一次访问俄罗斯的罕见照片-在RailsClub Moscow 2012

您认为RoR世界最近发生的事情中最有趣,最重要的是什么?

我认为Rails 6令人印象深刻。 新的核心组件,支持多个数据库,并行测试; 一种新的引导加载程序,它通过自动加载功能“发往历史”著名的耙子。

您可以通过Rails咨询谋生。 这给您作为程序员带来了什么?

通常,它使我获得了普通工作无法提供的经验和意识。 咨询丰富。 每个公司和每个团队,他们都是不同的。 您遇到了业务,文化,工作流程,体系结构,功能和偏好的各个领域。 适应移动环境,必须解决的任务,保留了解决尖锐问题的技能。

继续上一个问题,根据您的经验,Rails开发人员应牢记什么?

开发人员首先应该尽可能深入地了解Ruby和Rails。 这意味着阅读书籍和文档,而不是分散的博客文章。 主人必须拥有自己的乐器。 例如,您需要很好地理解SQL,以便Active Record是该过程的催化剂,而不是黑匣子。 使用Active Record-轻松安全地生成本来可以手写的SQL-轻松处理结果数据集。 对HTTP的体面理解很重要,因为它是应用程序与外界交流的语言(包括记住WebSockets)。 还有许多其他事情要牢记,但我特别要提到性能。 您需要了解如何推动基准测试,需要了解MRI中的GVL等。 寻找有关该主题的资源,对其进行研究,并形成知情的直觉。

Ruby真的是使程序员的思维更好的语言吗? 如何充分利用这一点?

我个人对这种概括表示怀疑。 Ruby使我兴奋,而Scala激发了Scala程序员。 我从事Perl已有几年了,非常爱他,但是许多人不喜欢他。 不同的大脑会在不同的形式主义中找到乐趣,即使您自己的喜好也会随着时间而改变。 作为程序员,最好使用尽可能多的语言和尽可能多的范例。 令我烦恼的语言是Prolog。 对我影响最大的范例是Knuth风格的“文学编程”。 通过这些完全不同的编程方法可以使您变得更好。 我发现Ruby特别灵活和高级。
高级别有助于争论“更接近任务”。 这使我着迷于超高级语言(VHLL)。 我是受过教育的数学家,我可以处理他们将要采用的任何形式主义; 此处的编程语言是儿童玩具。 例如,图灵完整性与实际等效性并不吻合。 为了解决实际问题,很难提出比VHLL更好的东西。 您会感到真正有力且富有成效,因为人为复杂性降低了,您可以更好地专注于问题的实际解决方案。 解决真正的问题是我从事编程职业的原因。 一般来说,“需要C的地方-取C”。

我们使会议更加“ Ruby”而不是“ on Rails”。 除了Rails甚至webdev之外,还有哪些Ruby应用程序?

如果内存适合我,我使用的第一个Ruby程序就是FreeBSD Port / Package Manager。 那是在Rails之前的2000年代初期。 与Web开发没有直接关系的流行Ruby软件是Vagrant,Metasploit,Jekyll,Chef,Puppet或Homebrew。 另外,Rails公司中的系统很少仅由Web界面组成。 通常,有一个完整的软件生态系统。 一家主要语言为Ruby的公司通常也具有干净的Ruby后端软件(可能与其他技术结合使用)。

例如,在我目前正在咨询Stuart Delivery的公司中,我刚刚实现了一项服务,该服务接受从Kafka到Redis的消息,供Sidekiq工人进行处理。 我们还参与了一个非平凡的数据迁移项目和一个超级有趣的业务模拟器。 一切都是用纯Ruby编写的。 公司服务器端的前端是Rails,但在幕后和整个平台上,存在更多不同的程序和语言。 这在我的实践中很常见。

破坏时间-您对RubyRussia 2019的报告会有什么看法?

我将讨论Zeitwerk,这是一种新的Ruby gem,它为Ruby项目实现了自动加载,重新引导和主动引导。 默认情况下,Rails 6将这些功能委托给Zeitwerk。

您对Ruby世界的最佳印象是什么? 也许是代码,技术,知识或态度?

这是一个主观印象,但是我认为Ruby的世界令人惊讶地具有创新性。 一段时间前,我们与李小龙谈到了这一点。 对于初学者来说,我认为很难不同意Rails代表着Web开发真正革命的说法。 像Heroku,New Relic,Shopify或GitHub这样的公司都是革命性的。 但是,以我的经验来看,主要偏​​向某些社区的人们对附近社区的活动视而不见。 我敢肯定,无论是Scala,Haskell还是Brainfuck,任何社区都可以找到创新。 因此,如果我可以在全球范围内观察每个社区,我会发现Ruby社区并不是特别创新,因为它们都是以一种或另一种方式进行创新。

您认为,Rails是否需要类似标准CMS组件库的东西? 像用于构建标准CMS零件的脚手架吗?

我认为,这对于Rails来说有点不合时宜。 让我也用这个问题来评论一下,脚手架只是在会议上进行快速演示或生成应用程序以检查某些东西,重现错误,查看特定功能如何工作的一种经济实惠的方式。 我从未见过“在战斗中”的脚手架;它们不适合实际使用。

现代解决方案通常是异构的:我们可以将Julia用于ML,将Java用于繁重的工作负载。 Ruby是否提供足够的语言交互工具? 有没有什么工具可以简化这一过程?

JRuby与Java进行本地通信。 您可以编写MRI的C扩展名,也可以使用FFI以可移植的方式包装C库,而Helix允许您在Rust中编写扩展名。 一般而言,使用文件系统,套接字,HTTP,数据库,gRPC,消息代理以标准方式与进程进行通信更容易。

正如许多人所注意到的,Ruby不再是“崭新的”。 现在,它是“更好的旧语言”。 另一方面,学生还年轻。 如何激发他们对学习Ruby的兴趣?

在2000年代,我在业余时间里向巴塞罗那大学的学生教了Perl七年。 在我学习课程之前,他们主要涉及C和Java,并且我谈论过脚本语言,并以Perl为例。 很好玩。 我们需要一个引人入胜的程序来教授编程,并专注于这些语言提供的功能,并允许您深入研究特定的选择。 对于Ruby,这是从简单的OOP实现到出色的元编程功能。 例如,您可以显示Active Record模型如何在类主体中没有一行代码的情况下工作。

有数十种编程语言可供选择。 为什么选择Ruby,为什么不选择Python或JavaScript,Clojure,Rust,C ++,Go呢? 所有选择都是有争议的,反之亦然-这些都是不错的选择。 选择其中一项,使该课程具有纪念意义,让学生学习编程,最佳实践,成语概念,让他们学习如何检查文档,并探索除形式主义之外的重要相关问题。 这将使他们成长,从根本上为职业做好准备。 我认为,这就是大学的角色。

对于同一件事,有许多不同的工具:具有Active Record,Dry-rb和其他功能的Rails核心。 我应该抓住其他选择吗? 他们是否使Rails成为“路径”而不是“路径”?

它在很大程度上取决于个人的喜好。 您绝对应该学习并了解适合您的工具,图层,模式的组合。 重要的是要记住,“轨道路径”并不意味着“将整个应用程序拖放到默认文件夹中”。 这是一个普遍的误解。 你要装修吗? 服务对象,PORO? 太好了! 这与所谓的“ The Rails Way”并不矛盾。 Rails提供了一组默认的抽象和代码组织,我们认为,至少对于起点而言,这对于许多应用程序已经足够了。 然后,如果您希望将控制器操作编写为单行文件,以将所有工作卸载到服务对象中,则可以这样做。 有些人可能不喜欢这样。 不同的人-不同的大脑。

RubyRussia见!

记得会议已经在这个星期六举行了, 注册仍然开放。

不仅会有报告,而且还有最好的公司的代表:

主办单位-Evrone
一般合伙人-Toptal
金牌合作伙伴-Gett
银牌合作伙伴-ValarmJetBrainsBookmateCashwagon
铜牌合作伙伴-InSales

Source: https://habr.com/ru/post/zh-CN468769/


All Articles