読者です 読者をやめる 読者になる 読者になる

リクルート住まいカンパニー Tech Blog

ITのちからで暮らしをよくしたい、エンジニア・デザイナーが発信するTech情報メディア

React.js, マイクロサービスからハード操作まで JSConf 出張報告

f:id:recruit-sumai:20170224173603j:plain

先日JSConf in Icelandへ参加し、JSConfで発表されたセッション、世界で使われているJSの最新事情や動向についてまとめました!

※一番お伝えしたい部分は「カンファレンスの動向」の部分です。時間がない方はここだけでも読んでいただけるとためになるかもしれません!

目次

  • JSConfとは?
  • セッション一覧
  • カンファレンスの動向
    • React.js
    • マイクロサービス
    • JSの新しい可能性
  • まとめ

JSConf in Icelandとは

リクルート住まいカンパニーのフロント企画開発グループで先日アイスランドで開催されたJSConf 2016 in Icelandに行ってきました! JSConfとは毎年世界各地で開かれている世界的なJavaScriptのカンファレンスでWebの有名企業をはじめ世界各地からJavaScriptのエンジニア達がセッションでスピーチをする世界的なカンファレンスです。(http://jsconf.com/) 今回はその中でも住まいカンパニーではアイスランドで開かれたJSConfに参加してきました!!(http://2016.jsconf.is/) 開催されたのは8月25日と26日の二日間でJavaScript漬けなとっても幸せな日々をアイスランドで過ごしてきたので、日本の皆様にも世界の最新JS事情と動向を知っていただきたく、テックブログを執筆しています!

【余談】アイスランドという国

今回はアイスランドでのJSConf開催ということでアイスランドの街事情について不動産マッチングサービスを提供している我々がほんのちょっとだけ調査してみました。

アイスランドの特徴

  • アイスランドは年間二酸化炭素排出量が世界一少ない、エコ大国!!
  • アイスランドは総エネルギー源の再生可能エネルギーの割合が85%!!
  • 現金決済が著しく少ない(GDP比1%以下)!!

さらに現地の人に話を聞いてみると、アイスランドの労働待遇の良さにも驚きました。 なんと時給は2000円以上が当たり前、給料は日本より非常に高額でエンジニアの有給は2ヶ月もあるとか… もちろん物価もその分高く、真相も確かめていないので定かではありませんがそれだけ聞くととても羨ましいですね!

実際に非常に綺麗な国で優しい人ばかりなので、次は観光としてまた行きたいなと思うくらいとっても良い国でした

アイスランドの風景⬇︎

f:id:recruit-sumai:20170124112423j:plain

JSConfの会場⬇︎

f:id:recruit-sumai:20170124112425p:plain

参考URL

セッション一覧

今回のカンファレンスは2会場に分かれて実施されており、それぞれの会場で聞きたいセッションを聞く、と言う形式でした。 タイトルを見るだけでも技術的な動向を感じ取れるかと思うのでまずはざっとどのようなセッションがあったのかスケジュールを見てみましょう!

1日目

時間 Room 1 Room 2
08:00 ~ 09:15 朝食(食べれませんでした)
09:15 ~ 09:45 オープニング(Opening JSConf Iceland 2016)
09:45 ~ 10:15 left-pad事件(詳しはこちらをどうぞ http://postd.cc/npm-and-left-pad/ )と感情移入:人のつながりを理解する
10:15 ~ 10:45 なぜVR Webについて考えなければならないのか - そしてVRの構築方法! Why you should care about the VR Web - and how to build it!
10:45 ~ 11:15 休憩
11:15 ~ 11:45 Reactのパフォーマンス 風刺画 A cartoon guide to performance in React エンジニアの最初ののジレンマ
12:00 ~ 12:30 CSS VariablesとReactiveアニメーション Reactive Animations with CSS Variables React: 一度学べばどこでも書ける React: Learn Once Write Anywhere
12:30 ~ 13:30 ランチ!
13:30 ~ 14:00 Bicycle.js デスクトップアプリ in JavaScript
14:15 ~ 14:45 新しいモバイルWeb: サービスワーカー、プッシュ通知、App Manifest The New Mobile Web: Service Worker, Push, and App Manifests (JavaScript)エンジンを解明 Demystifying (JavaScript) engines)
15:00 ~ 15:30 ユーザー体験が全て User experience is everything なぜモルモットはマイクロサービスのようなのか?? Why is a Guinea Pig Like a Microservice?
15:30 ~ 16:00 休憩
16:00 ~ 16:30 JavaScriptモダンアートの再構築 Recreate Masterpieces of Modern Art with JavaScript! モノリスをNodeとDockerでぶち壊す at Netflix Breaking the monolith with Node and Docker at Netflix
16:45 ~ 17:15 小汚いフロントエンドトリック Dirty little front-end tricks あなたはNode.jsをわかっていない You Don't Know Node.js
17:30 ~ 18:00 WebGLを使ったGPU上の独断的処理 Arbitrary Computation on the GPU Using WebGL Web上の音声認識
19:00 ~ 23:00 Hacker Party!!

2日目

時間 Room 1 Room 2
08:45 ~ 09:45 朝食(正確には起きれませんでした!!!)
09:45 ~ 10:15 もしも全ての子供がノートPCを持つようになったら, JavaScriptの世界はどうなる? 小さな、ウェアラブルハードウェア上のJavaScript
10:30 ~ 11:00 npmのサイト: The npm website: a tale of wonder and woe (and wombats!)) フロントエンドツールの未来 The future of frontend tooling
11:15 ~ 11:45 JavaScript@Spotify HSL: 待望のRGB
12:00 ~ 12:30 ロボットの目をJavascriptと作る - 解明されたコンピューターの魔法のビジョン This will flow your mind(静的型チェッカーの話)
12:30 ~ 13:30 ランチ
13:30 ~ 14:00 プログレッシブレンダリング - あなたのアプリケーションを早くする方法 Progressive Rendering – how to make your app render sooner Dockerを使ったフルスタックJavascript開発
14:15 ~ 14:45 MySamに会おう - 公開AI実験 Meet MySam - An open AI experiment #notailjavascript
15:00 ~ 15:30 大規模React移行 Pivoting to React at scale 嘘のように感じる - ペテン師症候群
15:30 ~ 16:00 休憩
16:00 ~ 16:30 あなたの脳はよいソフトウェアを作るためにどのような企みをしているのか On How Your Brain is Conspiring Against You Making Good Software
16:45 ~ 17:15 Javascriptコミュニティ
17:30 ~ 18:00 閉会式
19:00 ~ 23:00 パーティー !!

カンファレンスの動向

JSConf 2016ではJavascriptに関する最新事情や事例などためになるスピーチがいくつも行われたわけですが、 特に私が実際にいってみて、今のJSConfで感じたJSやそれに伴うソフトウェア開発に関する動向について まとめてみようと思います。

React

今回もっとも動向を強く感じたのはやはりReact.jsについての話でした。 別途React.js Confが行われるほど世界が注目している技術ですが、(http://conf.reactjs.com/) やはり今回のカンファレンスでもReactについては様々なトークが繰り広げられました

  • A cartoon guide to performance in React
  • React: Learn Once Write Anywhere
  • Pivoting to React, at scale

などのセッションではタイトルからわかる通りReactを中心に話が繰り広げられましたが、それ以外にも事例の紹介やいかにマイクロサービス化をすることの重要性を語るセッションにおいてもReact.jsの話は出てきます。 例えばPinterestではReactに大規模な移行を行ったそうですが、

f:id:recruit-sumai:20170124112422p:plain f:id:recruit-sumai:20170124112426p:plain

コンバージョン(ピンをする)率が10.6%も上がり、PVも10%上がったそうです!! これからだけだと単純にReactを使ったからなのか、それとも何か機能面やUX面でも改善がありそれを含めての数字なのかはわかりませんが、それでも本当に一度のアップデートでこのような効果が得られるのであればReactを使わない手はありませんね!

マイクロサービス

マイクロサービスについては主に以下のセッションで主題となって話されていました。

  • Why is a Guinea Pig Like a Microservice?
  • Breaking the monolith with Node and Docker at Netflix

こちらもRaectと同様マイクロサービスを主題としたセッション以外にもいかにソフトウェアを疎結合に、 マイクロサービスとして作り上げるかを意識している開発者が多かったように思われます。

特にNetflixのセッションでは、Web, iOS, Android以外にもPS4やテレビ、Apple TVなどたくさんのデバイスでの対応が求められているため、それぞれのサービスをどう設計して大規模になるシステムをいかに疎結合にするのか非常に興味深いセッションでした。

f:id:recruit-sumai:20170124112419p:plain

下記のオライリー本にもNetflixの事例が出ているように、非常にマイクロサービス化については先進的にに研究している という印象を受けました。 https://www.oreilly.co.jp/books/9784873117607/

弊社も一見単純に見えるシステムですが、中ではそれぞれの領域ごとにシステムが分かれており、さらにそこからWebサイトだけでもスマートフォン、PCでそれぞれシステムを分けています。 さらに物件情報の入稿システムや数百万レコードの物件検索サーバーなど日々大規模なシステムになりつつあります。

ちょうど筆者である私もマイクロサービスに関連するプロジェクトにまさにアサインされていることもあり、もっとマイクロサービスとは何か、いかにモノリスと戦うかを自社のシステムとともに学んでいこうと思いました。

JSの新しい可能性

様々な種類のJavascriptを使った新しい技術に関するセッションがありました

例えばWebのクライアントJS以外で活用されるJSでは

  • Electronについてのセッションである Spinning up an Electron App - Desktop Apps in JavaScript
  • ウェアラブル端末についてのセッションである JavaScript on tiny, wearable hardware
  • AI関連のセッションである Meet MySam - An open AI experiment など様々な分野で活躍しているJavascriptがいました

特にElectronのセッションでは可愛らしいBB8を実際に動かしながらGithubの人が発表していましたが、 なかなか面白いセッションでした

f:id:recruit-sumai:20170124112428p:plain

他にもWebでの表現を広げることについての

  • プログレッシブWebアプリについてのセッション The New Mobile Web: Service Worker, Push, and App Manifests
  • VR Webについてのセッション Why you should care about the VR Web - and how to build it!
  • Webにおける音声認識についてのセッション Speech Recognition on the Web などもありました。ますます新しい世界が広がっていく中でJSの使い方を考えさせるセッションでした。

Webのクライアントで必要となるJSも言語としてのJSも他の媒体で使うJSも世界がますます広がっており、 JSの重要度は我々ソフトウェアエンジニアにとって飛躍的に増してくることでしょう!

まとめ

ということで、React.jsやマイクロサービス、他にもたくさんのJSに関するセッションを聞くことができました。業務から離れJSという言語に向き合うことができた、本当に幸せな二日間を過ごせました😊 住まいカンパニーではJSが大好きなエンジニアを探しています。より良い住まいを提供するために、React.jsやマイクロサービスなど活用できそうな技術を一緒に検討し、suumo.jpに取り入れませんか??