SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

RubyKaigiの知見を共有し合おう――AFTER RubyKaigi 2019レポート

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

 4月18日~20日に開催されたRubyistたちの祭典「RubyKaigi 2019」。その発表内容や知見を共有するためのイベント「AFTER RubyKaigi 2019」が、RubyKaigiスポンサーであるラクスル、Sansan、ZOZOテクノロジーズの3社共催で5月15日に行われた。本イベントでは3社のエンジニア&ゲストによるLTや、Ruby有識者によるパネルディスカッションが実施された。ここでは、そのレポートをお届けする。

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

RubyKaigiを通じて得た学びとは?【3社エンジニアLT】

 はじめに登壇したのは、Sansan株式会社の石畑翔平氏だ。石畑氏はまず、RubyKaigi 2019の感想として「とにかくご飯がおいしかった」「ノベルティが豪華だった」「貴重な講演をたくさん聴けた」とユーモアを交えて語り、会場を和ませる。そのうえで、RubyKaigiの影響を受け、石畑氏が後日に使用したというRubyライブラリ「Ruby Curses」「Committee」について紹介していった。

Sansan株式会社 DSOC Development Group 石畑翔平氏
Sansan株式会社 DSOC Development Group 石畑翔平氏

 「Ruby Curses」はTerminalの操作を行えるライブラリだ。石畑氏は「このライブラリを使って、文字色を自由に変えられるテキストエディタを作ろう」と考え、試しに実装してみたという。使用した感想として「『Ruby Curses』はカーソルの操作が非常に簡単。また、他にもWindowやFormの定義などのIFが用意されており、便利なライブラリ」と語った。

 石畑氏は次に、Open APIでのAPIリクエスト・レスポンスの検証を可能にするライブラリ「Committee」の詳細について解説していく。利用における注意点として「『Committee』はOpenAPIのver 3.0.0にのみ対応していた」と話したところ、なんと会場に来ていたCommittee制作者のおおた氏がその場でコーディングを行い、OpenAPI3のパッチバージョンを上げても動くように変更。修正版をすぐにgit pushするという熱い展開となった。

 次に登壇したのは、ラクスル株式会社の小林寛武氏。小林氏は、Samuel Williams氏のセッションである「Fibers Are the Right Solution」について振り返る。「Fibers Are the Right Solution」では、Rubyで書かれたWebアプリケーションのスケーラビリティ改善のためにFiberが有効であると解説されていた。

 FiberはRuby1.9から登場した機能だ。「Thread(糸)よりも軽量」という意味でFiber(繊維)と名付けられている。コンピューターサイエンスに存在する「継続(プログラムのある時点において、処理されていない残りのプログラム)」という概念を変数として扱えるように実装された機能である。

ラクスル株式会社 システム部 テックリード 小林寛武氏
ラクスル株式会社 システム部 テックリード 小林寛武氏

 Fiberを用いることで、非同期型のイベント駆動処理を実現してくれるアプリケーションサーバーが「Falcon」である。「Falcon」は1つのリクエストを軽量な1つのFiberとして処理し、ブロッキングが発生したら他のリクエストを処理することで、サーバー全体の処理プロセスを止めることなく動作してくれる。

 小林氏はRubyKaigi後、「Falcon」を実際に使用してパフォーマンスを計測したとのこと。計測結果や使い勝手についての情報を会場の方々に共有していた。

 株式会社ZOZOテクノロジーズの田島克哉氏は、RubyKaigiで同社のブースに展示した「ファッションチェックランキング」アプリについて発表した。ZOZOテクノロジーズではDroidKaigi 2019の際に「ファッションチェックアプリ」を作成した。これはデモアプリで、撮影されたファッションスナップがファッションコーディネートアプリ「WEAR」でどれだけ「いいね」されそうか採点するというものである。

 「ファッションチェックランキング」アプリはその結果をTwitterに投稿できる仕様になっており、Lambda上で動くRubyスクリプトがTwitterから定期的に結果をクローリングしてデータをDynamo DBに格納する。そのデータを用いて、Web上にランキングを表示する作りになっている。

株式会社ZOZOテクノロジーズ 開発部 田島克哉氏
株式会社ZOZOテクノロジーズ 開発部 田島克哉氏

 田島氏はRuby Kaigi 2019の最中に起きた、「ファッションチェックランキング」アプリに関する「裏話」について振り返っていく。イベント中に起きたトラブルやその対応策を、具体的な技術ノウハウとともに解説していた。

 中でも、「Lambda上のRubyスクリプトは、CloudWatchEventをトリガーにすると1分間に1回までしか呼び出せない。より高頻度でスクリプトを叩くため、ALBのヘルスチェックをトリガーにしてLambdaをコールする方法を使った(※)」という裏話には、多くの参加者から驚きの声がこぼれた。

※ただし、田島氏曰く「ヘルスチェックは本来そういう用途で使うべきではないのでマネしないでください」とのこと。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
これからのRubyはどう発展する?【ゲストLT&パネルディスカッション】

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

中薗 昴(ナカゾノ スバル)

 週の半分はエンジニア、もう半分はライター・編集者として働くパラレルキャリアの人。現職のエンジニアとして培った知識・経験を強みに、専門性の高いIT系コンテンツの制作を行う。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11598 2019/06/28 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング