Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

builderscon 2019に行ってきた

今回は8/29~31に開催された builderscon tokyo 2019 へ行ってきた感想を書きます。

f:id:yo-shimada:20190905173056j:plain
参加メンバーの写真

はじめに

buildersconへの参加は2年連続です。昨年の感想はこちらになります。

tech.studyplus.co.jp

またスタディプラスは昨年に続きbuildersconのスポンサーとして、ネームカードスポンサーとウォーターボトルスポンサーとして協賛をさせて頂きました。

感想

buildersconのセッションはバリエーションに富んでおり、どの発表も大変興味深いものでした。その中でも参加した4名がそれぞれ印象に残ったセッションの感想を書かせて頂きます。

島田

Open SKT: メルペイ開発の裏側

speakerdeck.com

4階層アーキテクチャによる基本的な構成の説明から、高い信頼性を求められる決済サービスでどういった観点を重要視して、そのためにどう仕組みを作っているが興味深かった。決済システムの一貫性を保つための一般化したエラーハンドリングの考え方と、共通モデルのTry,Confirm,Cancelによる状態確保するための仕組みは参考になった。 また、メルカリとメルペイでの開発の考え方の違い。サービスの特性による求める安定基準に違いから来るものが興味深かった。特に開発フローでのレビューの差異等が参考になった。

RDBのトラブルの現場を追え!

speakerdeck.com

DBのトラブルとして考えられるケースの説明。全体を通してMySQL、PostgreSQLのそれぞれの勘所・差異の説明は興味深かった。 スロークエリのあるあるの対応や原因の切り分けには納得。不正データ(制約で守られていない)に関してはPostgreSQLとMySQL8から出来ること(チェック制約)が参考になりました。 ユーザー情報のテーブル設計に関しては普段感じている課題感に対してひとつ知見も得る事が出来て、面白かった。 最後の「 DBは同じ話が30年前からある」は、知見が陳腐化する速度がそこまで速くなく、どこでも利用する技術なので強みとなりやすいというのは、なんか良かった。

大石

ランチセッション「キーボードは好きですか?」

speakerdeck.com

私自身趣味で活動している自作キーボードに関するセッションをおいしいランチを食べなから聞くことができました。 このセッションでは最近ブームとなっている自作キーボードに関する内容でしたが、発表者がCorne Keyboardの設計者でもあり、大変濃い内容を聞くことができました。 また、発表資料が現在の自作キーボード文化をまとめた資料性の高い内容となっていますので、自作キーボードに興味のある方はぜひご覧ください。 弊社でも自作キーボードのもくもく会を定期開催していますので、この資料が役立つことと思います。

個人的に参考になった点

  • キーボードの種類(私は40%キーボード信者)
  • メカニカルスイッチの解説(Lubeに関する解説も良い)
  • メカニカルスイッチの構造、フランケンスイッチ(自分で作るのは大変なので触ってみたい)

コンパイラをつくってみよう

speakerdeck.com

「コンパイラをつくってみよう」というタイトルのとおり、発表者がライブコーディングでフルスクラッチのコンパイラを実装するという内容でした。 このコンパイラはGo言語で実装してアセンブリを出力するシンプルなものですが、ライブコーディングで少しずつソースコードの解析とコンパイラを実装する流れを見ることができました。 時々コンパイルエラーが発生するのですが、その際はギャラリーからエラー個所のアドバイスがあり、ギャラリー参加型のセッションという楽しい雰囲気となっていました。 この発表を聞いて自分でも簡単なコンパイラが作れそう、アセンブリ言語を扱うのも楽しそうという印象を受けました。

カンファレンス全体の感想

私がこれまで参加していた特定のプラットフォームの開発者のカンファレンスと異なり、ハードウェアやメーカー系の話題のあるカンファレンスで大変興味深く思いました。そして、まだまだ自分の知らない分野や勉強できることがあると感じましたので、機会があればまた参加したいと思います。 イベントの運営スタッフの方々、登壇者の方々、スポンサーの方々に感謝いたします。

田口

ブロックチェーン時代の認証

speakerdeck.com

ブロックチェーンについては正直ほとんど知らないことばかりだったのですが、興味本位で聞きに行きました。 自分のようにブロックチェーンについての知識が乏しい人にも詳しい説明がなされた発表で、大変助かりました。

現在のWebサービスは中央集権的であり、プライバシーやデータが提供される側で完全に管理されている状態で、ブロックチェーンの登場でそれが非中央集権的に、個と個のやり取りで管理されるようになってきているという話が印象的でした。現在のWebとブロックチェーンがお互いの課題感をお互いに解決できる未来を妄想するとわくわくしますね。発表者のrmanzokuさんもとても楽しそうに話していたのが印象的でした。

Web Componentsによる段階的AngularJS脱出作戦

docs.google.com

AngularJS、つまりAngularの1.x系のバージョンが2021年6月30日でEOLを迎えるので、今のうちから脱却に動いていこうという話でした。 弊社でもAngularJSで作られたプロダクトが動いているため、少しでも脱却するために得るものがあればと思い参加しました。

まず最初に、Web ComponentsがSafariでもサポートされていること、Polyfillまで見ればIE 11でもサポートされていることに驚きました。恥ずかしながら、もっと未来のことかと思ってました。 Web Componentsの仕様の一つであるCustom Elementsを使って、言葉通り段階的にAngularJSアプリケーションを書きかえていく話でした。 Angularでは公式でCustom Elementsをサポートしているパッケージ(@angular/elements)が出ており、アプリケーションの一部をCustom Elementsで書き換えるといったことが可能で、それを利用して少しずつAngularJSから脱却していくやり方を実際のデモを通して見れました。 このやり方は発表者であるlacolacoさん自身が考案し試行段階ということです。今後どうなっていくか気になるので、注視していこうと思います。

山下

現代フロントエンドに欠かせないwebpackとBabelを理解しよう!

speakerdeck.com

最近webpackerのバージョンアップをする機会があり、その際設定ファイル等の変更でbabelやwebpackのドキュメントを見ながら苦しんだため、是非聴きたいと思い聴いてきました。

前半はbabelやwebpackについて誕生の背景やコンセプトなどの説明、後半は内部実装を見ながら処理の流れのを追っていくという内容でした。 前半の説明がわかりやすく、個人的にはbabelがどのような流れでコードを変換し各処理にどのパッケージやプラグインが必要かを、変換されないパターンも交えながら解説してくれていて理解が深まりました。ただ、後半は内容が難しくまだまだ勉強が必要だと感じました。 また、今後babelやwebpackをどう学んでいけばよいかという質問に対して、公式ドキュメントを読みましょうという回答をされていました。babelやwebpackに限った話ではないですが、ついサボりがちなため公式ドキュメントを読み学んでいきたいと感じました。

ウォレットアプリ「Kyash」の先 〜「Kyash Direct」のアーキテクチャ〜

法人向けの決済プラットフォームKyash Directの開発についての内容でした。 既存Kyashのアーキがある中でスクラッチ開発を判断した経緯や、MicroservicesとMonolithどちらにするかをそれぞれメリット・デメリットを挙げどのように判断したかなど、開発を進める上で非常にためになる内容でした。 Microservicesでいくと決めた後も、サービスの分割方法、サービス同士の連携方法、DBの持ち方などについて、過去の経験や教訓、未来に起きるであろう課題の解決のしやすさを考慮しながら進めている点について見習わなければと感じました。 単に新しい技術を取り入れるだけでなく、自分たちのサービスや環境を考慮した設計をしていくことの重要性を感じた発表でした。

最後に

多種多様なセッションを聞く事ができ、buildersconのキャッチフレーズ「discover something new」とおり新たな知見を得ることが出来、大変有意義な時間となりました。 来年もまた参加とスポンサー等での協力が出来たらと考えています!