Ruby on Rails Tech Meetupに参加してきました!(2016/10/24)

こんにちは、hachi8833です。

昨日はクラウドワークスさんが主催する「CrowdWorks Tech Meetup」の第2回である「Ruby on Rails Tech Meetup」というイベントに、BPS Webチーム部長のmorimorihogeさんと私で参加いたしました。

161025_0909_rlbfsh

今さらですが、CloudではなくCrowdなんですね。

会場は、久方ぶりの恵比寿ガーデンプレイスの真ん中辺のビルの6Fです。

ビジネスマンらしく19:00より前に折り目正しく到着しましたがやけに人が少ない…?と思ったら、本日のプレゼンターの1人kamipoさんが急病のため開始が30分後になったそうです。ズコー。

それなら何かお腹に入れておけばよかったす。会場でいただいたこの2粒のチョコだけが頼り。おなか減ったよー。

slack-for-ios-upload

morimorihogeさんは「だったらそれまで仕事するぜw」と、Gitのマージに悩むebiさんをリモートでサポート。

今度から夜の勉強会にはスニッカーズの一本も懐に用意してから臨むことにしましょう。マジで身を助けます。一本余分に用意しておいて隣でお腹をすかしているお嬢さんにさりげなくおすすめしたりとか。

snickers

そんなこんなで開始時間を迎え、そのときになって初めて、プレゼンターにあの@joker1007さんがいることに気が付いたのでした。

161025_0905_ibny0j

いよいよ開演(この字でいいのかな)。以下、私が割と好き勝手に書いてますので悪しからず。

当日の雰囲気は#cwmeetupで味わえます。全然関係ない大洗女子学園修学旅行とかも混じってますので適当に除けるか、Togetterまとめをどうぞ。普通Togetterにしますよね。

Twitterでの半畳はそんなにありませんでしたが、濃い内容が多かったこともあっておそらくみなさん手元のメモに忙しかっただけだと思います。実際は大いに盛り上がりました。

「Upgrade Forkwell to Rails5 the faster」(@sinsoku_listy

161025_1423_ece7gb

発表資料アップグレードのブログ

Rails 5がリリースされたその日の朝、相撲の立会いのごとく社内Railsアプリの5へのアップグレードを開始し、当日中に完了させたという泣かせる話です。

インフラエンジニアの朝は早い。RCのときからコツコツとgemをアップデートし、パッチを試し、プルリク投げてその日をじっと待つという、内助の功ここに極まれりといった感があります。褒められもせず、苦にもされず、そういう人になれたらいいな。

リリース直前になるとどどっとドキュメントの更新が入るというあたり、臨場感ありますね。どれだけ周到に準備を重ねても、本番は予想どおりなにがしかのハプニングに見舞われるのですね。

「まだRailsで消耗してるの?」(@h3_poteto

161025_1434_0xjbs1

発表資料

スライドのしょっぱなに映ってる方がGo言語のTシャツ着てるのが個人的にポイント高かったです。

最近、PhoenixというRailsにとてもよく似たフレームワークがじわっと注目を集めつつあるようです。そのPhoenixはElixirという、これまたRubyととてもよく似た言語を採用しています。Elixirの生みの親はJosé Valimで、Phoenixの開発メンバーでもあり、Railsコアコミッターを長年務めた方なので、RubyやRailsとの縁が非常に深いと言えますね。

elixir_logo

そういえば今年のRubyKaigiの会場でもElixir本が何冊も販売されていたのを目撃しました。発音はきっと「エリクサー」なんでしょうが、私の心の中でだけ「エリクシール」とフランス語っぽく呼んでいます。ErlangもついEalangと書きそうになってしまいます。

「ところでみなさん、Railsつらくないですか?ぼくはつらいです」は定番の賑やかしですねw

庭いじりと同様、顧客のリクエストが長年に渡って降り積もって生い茂ってくるとメンテが大変になるのは、どのフレームワークも最終的には大きく変わらないのかなと思いました。

PhoenixにはSprocketsないんですってよ、奥さん。Railsの特にSprocketとかSprocketとかSprocketとかで苦労している人には耳寄りなお話かと思います。

他にも非同期処理に強いとか、syoryukenのコミッターと戦わなくて済むとか、うれしいであろうポイントが目白押しです。

Elixirはコンパイラ言語であり、Erlangという並列・並行処理にお強い仮想言語にコンパイルされてErlangの仮想マシン上で動作します。なので当然並列・並行処理を得意としています。Live Reloadも、JSやCSSのトランスパイルまで含めてやってくれるらしいです。

「何だまた仮想マシンかよ」って思っちゃいけないんですよね。

その一方、morimorihogeさんが懇談会で他の方と「RailsというかRubyはコンパイラ言語じゃないので、どんなに古くても動いてさえいればソースが必ず見えるというのが最後の拠り所ではありますねーw」というようなやりとりをしていたのも思い出しました。

本番のソースがなくなるって、もしかしてざらにあるんでしょうか?

「 The State of Sprockets 」(@_yasaichi

161025_1440_us6dvj

発表資料

前の発表を絶妙に受けたSprocketsの話題です。_yasaichiさんは最新のSoftware Design誌にも寄稿されたそうです。

Sprocketsがv4でSource MapsとES6をサポートなど、細かな情報が満載でした。何かと恨みを買いがちなRailsのSprocketsですが、@_yasaichiさんも「Sprockets捨てたんですか?」の質問に「いや、離れただけですw」とさらりと爆弾発言。

161025_1124_eqhx51

Railsで新し目のJavaScriptライブラリを使おうとするといらぬ苦労をさせられることが多いようで、自力で縫い付けると後で困ったことになりそうだけど、さりとてSprocketsでどこまでがんばるかというバランスも悩みどころ、みたいな印象でした。

「巨人でない我々のためのバッチ基盤」(@joker1007

161025_1723_sx9mf7

発表資料RukawaのQiita記事

最近CTOデビューした@joker1007さんです。なぜかQiitaのプロフィールではまだ「フリーランス」となっていますが、近々更新されるでしょう。

RubyKaigi 2016@京都にもお見えになっていたのですが、当時私がjoker1007さんの素顔を知らなかったので完璧にすれちがってました。

joker1007さんがブラウザでめっちゃ大量のタブを開いているところが画面に映り、どよめきが生じました。

時間のかかる複雑なバッチ処理を書くのはどんなシステムでも悩みの種ですが、joker1007さんはJavaだのPythonだのJSONだのyamlだのではなく、そしてRakeでもなく、「Rubyで書きたいんだよぉおお、クラスが使いたいんだよぉおお」とばかりにRukawaというワークフローエンジンのgemを作ってしまいました。

なお最近ではDigdagというワークフローエンジンが有名なんだそうですが、「それがあったらこんなことしなかったYO!」だそうです。

面白かったのは、Rukawaの開発ではグラフ理論に登場するDAG(有向非巡回グラフ: Directed Acyclic Graph)を応用していた点です。

161025_1133_mzoso4

一言で言うと「一度出たら元のところには戻らない」という特徴を持つグラフ(←専門用語)です。「知は力なり」ということわざを久しぶりに思い出しました。

DAGのソートのために、Rubyのtsortというトポロジカルソートのライブラリも使ってるそうです。

Rukawaでは、並列処理などをRubyでがんばるのではなく、得意なことは得意なライブラリに振って振って振りまくる方針で開発したようです。

高級なRakeまたはシェルスクリプトのような位置づけなのかなという印象でしたが、Rubyで書きたいという一念でここまで作るあたり、joker1007さんの面目躍如たるものがありました。

参加を終えて

終了後morimorihogeさんとの雑談の中で、細かくは覚えていませんが「フロントのJS化が進むとRailsはAPIサーバー的な位置づけを模索することになるんだろうけど、RailsはAPIサーバーとしてはちょっと大げさかもね」「でも複雑なビジネスロジックを書くならRuby/Railsで書く方がgolangとかElixirとかで書くよりは楽だし、後の保守できる人の探しやすさという点でも有利なんじゃないかな」というような見解を述べていました。

161025_1625_lirvm9

個人的には、フロントがJSになると開発の分担が進み、Railsの一体感から遠ざかってしまいそうだなと思えました。フロントとAPIでリポジトリが別になるとそれはそれで面倒そうだし。

懇親会

終わった後の懇親会も大いに盛り上がりました。空きっ腹だと何を食べてもおいしいんですね。私は頑張って缶ビールは一つだけにしておきました。

BPSともお付き合いの長いイケメンコーダーの@masa_iwasakiさんもやはり会場に来ていて、morimorihogeさんらとともに盛り上がりました。

一つだけ。懇親会の途中のLightening Talkでスクリーンに高級寿司の写真がでかでかと映ったら、そりゃ寿司が出るのかと思うじゃないですか。ズコー。

食べ物写真を忘れてたので、morimorihogeさんとjoker1007さんのツーショットを代わりにどうぞ。ご快諾ありがとうございました!>joker1007さん

joker1007_morimorihoge

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833 コボラー、ITコンサル、ローカライズ業界を経てなぜかWeb開発者志願。 これまでにRuby on Rails チュートリアルの大半、Railsガイドのほぼすべてを翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

Rubyスタイルガイドを読む

BigBinary記事より

ActiveSupport探訪シリーズ