Nodeまみれ!東京Node学園祭2016に行ってきた!【#02】

まさくに


Nodeまみれ!東京Node学園祭2016に行ってきた!【#02】

DSC00191

こんにちは、バックエンドエンジニアのまさくにです。
前回に引き続き、東京 node 学園祭 2016 の 2 日目午前の状況をお伝えいたします。

 
DSC00276

僕ぐらいになると、会場へは前日入りです。コレ本当のことで、2 日目会場となった CyberAgent へは 1 日目が終わったあと、準備のために入らせていただきました。自分は CyberAgent の社屋に入らせていただくのは初めてだったので、なにげにテンション上がっています。すごいや、ここが縦棒過ぎる決算報告資料で世間を賑わせた会社だ……。

ぶち抜きにもできる 2 部屋を会場としてお借りするようです。当日はここが A 会場、B 会場として区切られました。会場準備をテキパキと進めるスタッフの皆さんはとても仲がよくて、本当に「学園祭」の準備をしているかのようでした。そのような前準備にも参加させていただき、一体感を感じられて自分自身暖かい気持ちです。あと弊社バックエンドエンジニアの kaz さんも一緒に参加されていたのですが、なんだろう、初対面の人が親友であるかのように話しかけられるコミュ力……パネェ……。

Kaz Kaz
LIGのバックエンドエンジニア。いつも俗世と切り離されたようにふわふわとしているように見える。とてもよく食べる。

 

さぁ、東京Node学園祭2016、2 日目 午前の部をレポートします!
1 日目のレポートはこちらをご覧ください!


 

Opening

DSC00228

前日と同じく、Node.js 日本ユーザーグループ代表の古川陽介さんが登場し、Node 関連での最近のニュースを振り返りました。『Node.js』のバージョン 7、『npm』のバージョン 4、『ES 2016』などがリリースされたこと。コミュニティも育ってきたし、それにともたってこの Node 学園祭も育ってきたということ。ちなみに古川さんが登壇されていたのは A の部屋で、自分がいたのは B の部屋でした。ちょうどあいだに柱があったために目視でうかがうことはできなかったのですが、嬉しそうな顔をされているのだろうなと思います。

また、今年の学園祭のモットーの共有もありました。

Be More Global
Be More Interactive

いや、マジでRoom B に座ってるとRoom A の様子が見えねぇ……。
Room A の模様は kaz さん、Room B は自分がレポートいたします!

[Room A] Demystifying JavaScript Engines – Alejandro Oviedo

Alejandro Oviedo

Javascript エンジンの進化がやばい。

Room A 一発目の発表から「Demystify」という見慣れない単語がタイトルになっていて思わず身構えましたが、「JavaScript エンジンの神秘を紐解く」という発表内容で、各ブラウザで JavaScript のエンジンがいかに改善され高速化してきたか、が紹介されました。

各ブラウザのエンジンがまだ愚直に Javascript のバイトコードを直接実行していた時代、そのパフォーマンスは今では考えられないほどに非効率的で遅いものでした。それから月日が経ち、今では各ブラウザのエンジンに JIT コンパイラや最適化などといった技術がどんどん導入されて効率は劇的に改善されています。この発表では各ブラウザごとにどの様に最適化の実装が行われているか、最適化処理ではどういう手法でコードの最適化が行われているかが紹介されました。

スライドはこちら: http://slides.com/a0viedo/demystifying-js-engines#/

[Room B] Building Interactive npm Command Line Modules

DSC02913

Node.js でインタラクティブなコマンドを作ろうという Irina Shestak さんの発表でした。

「コマンドってとても便利だけど、オプションとか長くて覚えてられないわ。月曜に新しいコマンド使ったら使い慣れるのが金曜だもの。Node.js の yargs というイケてるライブラリを使って、イケてるコマンド作っちゃいましょ!」

という内容で(超意訳)、生涯飼える猫の数を計算するコマンドなどのユニークなデモを通して会場が沸きました。「対話的なコマンドを作れば覚えておくオプションは減るし、仕事がもっと捗るわよ!」とも仰っていました。

始まる前に通訳の方が「Yeah とか感情の盛り上がりをちゃんと表した方が海外の方は喜ぶよ!」と仰っていたので、ここだというタイミングで「Yeah!!」と言ってみたんですけれど、僕にはまだまだ会場を沸かす力はないようでした。

スライドはこちら: https://lrlna.github.io/nodefest-2016/#1

[Room A] Debugging Node.js Performance Issues in Production – Thomas Watson

Thomas Watson

「早すぎるタイミングで最適化は行うべきではない」

Yoshua Wuyts さんのセッションでは、アプリケーションを作っていて遭遇するパフォーマンスの問題を、プロダクション環境でデバッグし解消していく方法が紹介されました。パフォーマンスの最適化は最初にコードを書く段階で行われたりしますが、それには危険性が伴っていて「実は効果が薄い部分に莫大な時間を投じてしまう」、「思いもしなかった部分がひどいボトルネックになっていた」ということが頻繁に起こりえます。このためパフォーマンスの最適化はプログラムを実際に動かす段階まで待ち、動いた結果どこが本当のボトルネックになっているかを洗い出すのが先決だと仰られていました。

この発表ではデモが思ったように動かなかったのですが、デバッグツールを使って「どのような機能を使って、どのように重い処理を見つけ出すか」という内容まで紹介され、改めてパフォーマンス改善の必要性を思い立たせられるセッションでした。

スライドはこちら: https://github.com/watson/talks/tree/master/2016/11%20NodeFest

[Room B] Famicom programming with JavaScript

DSC02915

「僕の国では NES だけど、ここは日本だからファミコンって言うね」

ブラボー!!

ファミコンを Node.js で再現しちゃったアレな人 Fritz Van Deventer さんの登場で会場が沸きました。ぜひピコピコした資料をご覧ください。Fritz さんはバンドマンでもあり、最近はキムチ作りに凝っているらしく、超絶リア充とお見受けしました。いやさ、だってイケメンだもん。「8bit CPU なのでループが 256 回しかできねーんだ」とか「 56 種類くらいしか色がねーんだ」とか、なんでこの人 Node.js のカンファで、とうとうとファミコンのスペックについて語り始めちゃってるの……。もうバカ……惚れちゃう。

ファミコンを Node.js で再現しようという試みはグッドアイディアだと思ったけれど、初めての試みではなかったそうです。それでも自分でチャレンジすることには大きな意味があると仰っていました。「エンドルフィンが出てハッピーになれる。最初のハードルは低くしとくのがオススメ」とのことす。デモが動かなかったのが本当に悔やまれます。

スライドはこちら: http://fritzvd.com/talks/tokyo-famicom/#1

[Room A] サイボウズの開発を支えるKAIZEN文化 – Teppei Sato

Teppei Sato

驚きの白さと言わんばかりのホワイト企業のあり方を、まざまざと見せつけられました。

開始一発目に「JavaScript の話は一切でません」というお言葉から始まったこちらの発表では、まずサイボウズ社において推し進められている KAIZEN 文化についての紹介が行われ、「技術的負債との戦い」「新技術の導入」「リモートワーク」という 3 つの軸で社内エンジニアの環境を改善した話が展開されました。

リモートワークの活用を進める話では、特に「オフィスもリモートワーク拠点のひとつと考え、オフィスもリモートも上下関係なく平等に」「リモートならではの大変さを理解してもらうために順番でリモート体験」といった動きが紹介されていて、リモートワークを行う側が萎縮してしまったりすることがないよう最大限の配慮が行われているようでした。

スライドはこちら: http://www.slideshare.net/teppeis/kaizen-68803503

[RoomB] GraphQL for the RESTful crowd

DSC02921

Node.js で ポケモンが あらわれた!

タイトルからはまったく予想できなかったポケモンの出現に、聴衆は分かりやすく喜びました。僕も何を隠そう、ゲームボーイ時代に『ポケモン赤』を予約してからの20年選手ですので、ワクワクを止めることができません。皆さん、新作買います?

Facebook が開発した GraphQL というクエリ言語に関する Barak Chamo さんの発表でした。GraphQL というのは不勉強ながら初耳だったのですが、json に似た形式のクエリを書くことで、MySQL のような JOIN 地獄にならず、例えばタイプが「どく」と「くさ」のポケモンのデータを柔軟に取得できるとのことでした。おお、これはすごい! もうこれがあればサーバー側で、データを操作するためのロジックとかいらなくなってきちゃうんじゃないでしょうか。

ちなみに時間が押していたたこともあって、ほぼ翻訳なしの登壇となりましたが、なみなみならぬ興味を持てたからか不思議と問題なく理解できた気がしています。ポケモンのチカラってスゲー!

2 日目午前まとめ

自らの情熱を傾けたプロダクトが多く発表された 2 日目でした。参加された方は存分に楽しまれたのではないでしょうか。その時間を少しでも伝えられたら幸いです。

次回は東京 node 学園祭2016、パーティを含めた感動のフィナーレをお伝えいたします。
 

まさくに
この記事を書いた人
まさくに

バックエンドエンジニア

関連記事