采暖业鱼龙混杂 苏宁振臂一呼:给消费者安心 | 华兴Alpha对话九章云极尚明栋:科技赋能企业服务的新实践 | 游密科技正式发布新一代智能会议协作平台 | RubyConf China 2019之媒体采访matz及金数据团队 | 美团举办“商家零距离 运营全指导”交流会,助力成都老字号提档升级 | “什么时候感到做一个中国人很幸福?”屠呦呦知乎提问引爆网友晒“幸福” | 宁波第九届智博会:灵云AICC助力AI商业化应用 | 长江公益大讲堂武汉学院开讲 助青年投资未来规划人生 | 过山车级视频防抖 新品OPPO Reno2正式发布 | 雪加上线京东天猫,中美电子烟首次正面交锋,中国市场谁更胜一筹? |
 
当前位置: 新闻>滚动>

RubyConf China 2019之媒体采访matz及金数据团队

发布时间:2019-09-11 14:40:23  |  来源:北国网  |  作者:   |  责任编辑:彩神APP官方网站登入频道

2019年8月24—25日,rubyconf大会在上海小南国举办,RubyConf China是由 Ruby China社区以非盈利形式组织的一年一度的技术交流大会,自 2009年始至 2017年已成功举办九届。

本届ruby大会包括Matz在内的众多国内外技术大咖齐聚一堂,聚焦前沿技术及实践经验,旨在帮助参会者了解 Ruby相关领域最新的技术趋势与最佳实践。金数据团队研发团队负责人:@冯智超、金数据系统架构师:@尉刚强pqwei也作为讲师在现场与大家一起探讨对 Ruby的见解。

在会后记者采访时,ruby语言发明者 @matz给出了ruby的未来方向解答及对初创团队的建议,金数据的研发团队负责人:@冯智超分享了关于金数据团队在开发初期选择的 Ruby时原因以及在使用过程中最佳实践。

采访Ruby之父:matz

记者:Ruby目前由于缺少大厂的支持,并且社区也不是足够强大,导致很多公司想使用 Ruby而找不到方向。您作为创始人,在推广上有什么想法吗?

matz:Ruby是开源的,不具有商业性质,单纯地让更多人使用Ruby并不是我的终极目标,让更多的开发者觉得Ruby好用,享受编程的过程,提高他们的生产效率,才是我们的终极目标,为了做到这一点,我们努力优化Ruby的性能。另外,Ruby社区的成员也一直致力于Ruby的推广,这样坚持做下去,我想Ruby会为更多人所用。

记者:我们知道目前很多动态类型语言都在试图引进一些静态类型语言的特性,你认为 Ruby下一步这方面会有什么变化吗?

matz:动态语言和静态语言在发展过程中会互相借鉴,最早期的编程语言Fortran是静态语言。后来的Lisp又是动态语言,之后出现的编程语言,在发展过程中互相借鉴的现象很常见。比如,Ruby在明年发布的Ruby 3中,计划增加类型判断的功能。为了保持Ruby的优点,我们希望实现不需要类型声明,就能实现类型判断的功能,这个功能可以使Ruby更有利于处理复杂项目。

记者:您之前在演讲中也提到过 Ruby非常适合小团队初创产品,像金数据在7年前刚开始的时候也是这样子,3、5个人 web创业。当时使用 ruby生产力会非常高。但是随着业务的增长,团队人数变多,7年后,ruby会变成一个有挑战的庞大复杂的项目。您对这种legacy ruby项目,有什么想法和建议吗?

matz:对于Ruby项目的结构,推荐把大项目分成一个个小项目的组合的做法。当项目越来越大的时候,想办法分割成小项目后再把它们整合起来。这种做法不但有利于每个小项目团队保持激情和提高生产效率,由小项目构成的服务整体也能提供强大的功能。

在使用Ruby开发的大型服务中,就有团队采取这种形式提供Web服务,他们把Web服务分割为多个小服务——虽然把这种小项目称作是“微服务”有些言过其实,然后分别维护这一个个的小服务。

记者:我们知道您以前也来过中国。今年来到 Rubyconf Shanghai,和以前相比,有什么不同的感受吗?

matz:我来中国参加过几次Ruby Conf,这次因为正值我的新书《编程语言的设计与实现》在中国出版大家非常热情地参加签售,和我一起拍照。和很多热爱Ruby的人交流,我非常开心,唯一遗憾的是我不会说中文。如果听得懂中文的话我可能会有更大的收获,我会努力学习中文。

采访金数据讲师:冯智超

记者:我们知道金数据是12年开始开发的,那么当时是基于什么原因选择了 Ruby作为开发语言?

冯智超:金数据在2012年选择ruby原因有两个。一是像ruby语言开发者matz说的,ruby是一个非常好玩的语言,是专为人类而写,在开发过程中非常有趣。二是ruby的开发效率高。事实证明金数据的选择非常正确。

记者:目前金数据团队在使用 Ruby时,有哪些最佳实践可以和大家分享?

冯智超:首先,因为 Ruby是一个动态类型解释型语言,为了保证代码质量和功能质量,我们在研发时,非常强调代码测试覆盖率和 Code Review。

其次,随着产品功能愈加复杂,代码复杂度的提升,我们会将一些业务抽象成为组件(比如 gem),来降低核心业务的复杂度。

最后,Ruby也不是适用于解决所有问题的,我们也使用了一些微服务架构,在这些服务中,也使用了一些例如 Python,NodeJs等其他语言和框架。