講演ピックアップ: RubyKaigi 2018

2018-06-03



自分は旅に関してはかなりの出不精である。外出自体はよくするが関東圏から出ることはほとんどない。そんな自分が有給を2日ほど取って宮城は仙台まで2泊3日の旅に出た。なぜか? そう、RubyKaigi 2018が仙台で行われたからだ。RubyKaigiって何かって? 最高のイベントのことだよ。

TL;DL

ruby kaigi

RubyKaigiは最高だった。訳者から本にサインもらったりMatzさんと一緒に写真撮ってもらったよ。登壇者、イベント運営者、スポンサー企業ありがとう!

講演ピックアップ

いや良い講演はたくさんあったよ。でも半分くらいは英語の講演だし専門的な内容も多くて理解し切れてなかったり朝起きられなくて聞けなかったりしたんだ。だからここで書くのはほんの一部だし特に何か基準があるわけじゃないよ。

RubyGems 3 & 4

Hiroshi SHIBATA @hsbt

Slide Share

RubyGem。多くのエンジニアは毎日触れているツールだが、実際のところ彼について詳しく知っている人は少ないだろう。

自分が「ほへー」と感じたのは例えばakr/all_ruby。これは現存する全てのバージョンのrubyでスクリプトを実行しその結果を得るツール。なんとruby-0.49から調べられるよ。これが何の役に経つかというと後方互換性のためだ。例えば自分が開発するGemに何か更新を入れた時、それが古いバージョンのrubyで問題なく動くか?といったことを検証出来る。もっとも、そんなことが必要になるのは一部の非常に広く使われているgemくらいだが。

もう1つはGem::Duplicate。これはみんなが開発中によく見かける「このメソッドはXXXのver N.Nで削除される予定だからYYYに書き直しといてくれよな!」という警告を出すためのもの。あまり目立たない為にGem開発者でも知らないまま同じ機能を独自実装していることも。

Improve Ruby coding style rules and Lint

Koichi ITO @koic

RubyKaigiではrubocopの話が結構多い。当然そのコミッターの登壇もね。最近は一番Rubocopにコミットしている(rubykaigi中にマージ権も貰ったらしい)が実は自分では使ってないらしい。

この話ではCoding Style(個人の好み)とLint(バグを産む書き方の検出)を区別している。ここでいうStyleとかLintというのはrubocopでCop(チェック対象になる記述)として登録する際の分類のこと。.rubocop.ymlでStyle/AsciiCommentsとかLint/UnusedMethodArgumentとか書いたことがあるだろう。

つまり、これらの分類でStyleにされているようなものは個人/組織の文化で変えるようなもの。Lintは原則としてバグを避けるために守るべきものという位置づけというワケ。

Rails/OSS パッチ会というのをESM(永和システムマネジメント)で開催しているらしい。何もネタはないけど様子を見ながら軽卒に行きたい。たぶん行くと思う。

One cable to rule them all

Vladimir Dementyev @palkan_tula

やったー! ActionCable周りの話だー!(ドコドコドコ
ついこの前にActionCableをみんなに使ってもらうべく技術書典でActionCable解説本を書き上げて頒布した(技術書典4にOwl Worksとして出展します)のでActionCableに対する思い入れは個人的に強い。

この講演はActionCableが持つ欠点である処理の重さや遅さを改善するためのAnyCableというツールの紹介がメイン。まず、ActionCableが他のCable(リアルタイム双方向通信)ライブラリに比べて遅い理由を非効率なpubsubや肥大化する寿命の長いオブジェクトにあるとして、解決策としてActionCableを置き換えるAnyCableをGoで書いた。

重要なのはAnyCableがActionCableを置換することを目的として作られたという点。つまりプロトコルが共通でありrailsでActionCableのために生成されるJavaScriptなどをそのまま利用することができる。

思わず英語が全く出来ないのに講演後にモジモジしながら「アノ、コウエン、ヨカッタ、ツカッテミル。ステッカー、モラウ、イイカ?」などと講演者に話しかけた。とりあえずステッカーはもらえた。

このAnyCableについては近日中に使ってみて記事を書くよ。期待しててくれよな。

IRB Reboot: Modernize Implementation and Features

ITOYANAGI Sakura @aycabta

irbが進化する話、あとrdocの話。「進歩してるからRuby2.6からは--no-documentオプション外してくれよな!」とのこと。

個人的に良さそうだと思ったのはirbに補完機能が追加されること。"neko".spまで書いてtabキー打ったらsplitまで出て引数とかドキュメントが表示される。

なお、この機能が実装されたのはriコマンド(ri "String#split"とかでメソッドの説明が出る)があまりにも使われないため、何か他の形でrdocを活用できないか考えたらしい。

「Googleでよくない?」
@aycabta「うん。それは、そう」

2日目にMatzとデカ外人がペアプログラミング配信していたが乱数生成のメソッドについてド忘れした際にも普通にググっていた。

How happy they became with H2O/mruby, and the future of HTTP

要約するとH2O使ってはようみんなで幸せになろうや…。

apcheやnginxの設定は無論、というか言うまでもなくプログラミング言語ではない。故に複雑な条件分岐などを含む処理構造を実装しようとすると非常に辛い。H2Oとmrubyで書けば複雑な処理でも問題なく実装できるし、サーバの挙動に対して自動テストも記述できる。

おまけに速度面でも優れているらしい。これ次のISUCONで使ってみようかなぁ…。


 このエントリーをはてなブックマークに追加


<< ハッカーになってみよう: SECCON CTF挑戦