TES Blog

株式会社テクニカルエンジニアリングサポートに所属する社員が、自身が携わるテクノロジーやイベントに関する情報を発信しています。

RubyWorld Conference 2018に参加した感想

はじめに

2018年11月1日(木)、11月2日(金)にかけて開催された RubyWorld Conference 2018 に参加してきました。
少し間が空いてしまっていますが、印象に残ったセッションと、それに対する所感みたいなものをご紹介できればと思います。
(全部のセッションに感銘を受けましたが、すべては書ききれませんでした…😨)

10周年!

カンファレンスは初回の開催である2009年から数えて、今回で10回目となり節目の年となっています。
開催地ですが、Rubyの聖地である島根県松江市で行われました。
(弊社代表の奥岡が島根県出身なので、心なしかテンションが高かったです)

f:id:t-miyahara11:20181114061635j:plain
宍道湖

f:id:t-miyahara11:20181114062151j:plain
会場のくにびきメッセ

1日目

まつもとゆきひろ氏による基調講演

Ruby関係のイベントで何度かお見かけしたことがあったのですが、氏が登壇する講演自体、私自身初めてなので、強く印象に残っています。

1995年から公開したRubyですが、初期のメーリングリスト登録者は200名程度で、 フィードバックを元にしたバージョンアップや著書出版などを経て、次第にユーザ数が増えていった過程について、お話いただきました。

その中で多く語っていたのが「コミュニティ」というワードでした。

Rubyはコミュニティを形成しながら大きく成長を遂げた言語であるのは、周知の事実です。
RubyやOSSの価値を作り続けているのは言語そのものではなくてコミュニティであり、コミュニティに対して俯瞰して見ずに、一歩踏み出してほしいといったことを述べていました。

私自身Rubyを用いた開発はできるのですが、Rubyそのものに対して何もコミットできていないなと反省する話が多く、至らない点が認識することができた貴重な体験でした。 (コミュニティのレベルが高い…😨)

プログラミング入門をプロジェクトでやってみた

フェリス女学院大学の学生さんがRubyを使用したプログラミング授業の一環として、長期間のプロジェクトを通して開発を行った話をお聞きしました。

技術的に尖った話ではないのですが、プログラミングの初心者でしか知りえない内容であり、気付きを得られる講演でした。

その中で印象に残ったのは、トライアンドエラーを繰り返すといった習慣がそもそも無いという点です。
経験者であれば、日々の開発業務の中で失敗しながらプロダクトの完成度を高めていくのは当然のように思いますが、
入門者は必ずしもそうではないということは、言われるまで自分では中々気づかない点でしたので、これから指導を行う際に注意しようと思います。

RubyによるDBスケーラビリティ

クックパッドのLeonard Chin氏による、ActiveRecordを通してデータベース検索を行う際に発覚したトラブルについて、実例を用いた解決方法を解説いただきました。

講演の導入部分で基本的なソートの概念とB-Tree構造の説明を行い、EXPLAINを利用したチューニング、インデックスの効果的な運用方法についてお聞きしました。

単純にActiveRecordを使用した際のクエリ実行では、折角データベース側のチューニングを行っても想定通りに動作しないことがあるため、
呼び出すActiveRecordのメソッドへ渡す引数として何を設定するべきかドキュメントをしっかり読むこと、時にはソースコードを読み込み理解することが重要だと述べていました。

チューニングについてはなんとなく把握している部分もありましたが、大規模なデータを取り扱うシステムでの実例でしたので、これからまたチューニングする機会が発生しても、自信を持って取り組むことができそうです。

Rubyによるデータ分析・活用

Treasure Dataの古橋 貞之氏による大規模な分散システムの拡張についてお話いただきました。
最小構成でスタートしたシステムが、要望などにより徐々に最適なアーキテクチャを取り入れて拡大していく、といった内容です。

アーキテクチャの選択について大変興味深い内容でしたが、私が特に印象の残ったのが 必要とされているものは必要とされているときに作る、と述べられていた部分です。
初期設計を疎かにして良いという話ではありませんが、その時々に適材適所の選択を行い、学びながら作るをベースにできるのは強みだと思います。

はじめから大規模システムを目指したわけではなく、大規模化はあくまでも結果である点もしっくりきました。

2日目

Chad Fowler氏による基調講演

この講演を聞けたことが、自分にとってもの凄く意義があったなと思います。

ざっくり概要をまとめると、モチベーションに関する話、エンジニアとして何を学ぶべきか、集中することの重要性について述べていました。
特に印象に残っていることとして、人間は価値がないとわかっていても、その物事に対して時間を使ってしまう習性があり、本当に大事なことを先延ばしにしてしまうことが往々にしてあるという点です。
そして、先延ばしにすることはサインであり、先延ばしにしている物事が重要であると、体が無意識に教えてくれているということでした。

私自身やりたいことは多くあるのですが、色んな理由をつけて先延ばしにしてしまうことが多かったので、聞いていて耳が痛かったのですが、サインを見つけたとポジティブに捉えて少しずつ改善していこうかと考えを改めました。

自発的なモチベーションこそが大事だと語っていたので、外的要因(今回のカンファレンスですね)から内的要因に繋げられるように、取り組みを継続していこうかと思います。

おわりに

初参加のカンファレンスでしたので、どういった内容なのか期待を持って参加しましたが、非常に有意義な時間を過ごせました。
Rubyをもっと盛り上げていこう!という熱気みたいなものを、主催者側からも参加者側からも感じることができて、またRubyで何か作りたいな…と密かに思いました。

会場で配られていたバッグは、エコバッグとして使っていきます🐧

f:id:t-miyahara11:20181114063006j:plain
配布していたバッグ