gaaamiiのブログ

間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

#builderscon 2018 参加記(1日目)

shgam.hatenadiary.jp

前夜祭に続き、行きました。

聴いた発表

  • Electronによるアプリケーション開発事情2018
  • Algorithms in React
  • Webサービスにて200週連続で新機能をリリースする舞台裏
  • 実録!ある担当者がみた「謎ガジェット」開発1年史
  • Webサービスの品質とは何か?アラート地獄と監視の失敗、サービスレベル目標設計から学んだ3つの答え
  • Envoy externals and "ideas" for people who wouldn't operate Envoy itself

気になったセッション

Electronによるアプリケーション開発事情2018

  • Electronを使ってMastodonクライアントを作っているというお話。
  • はじめから英語対応することで英語圏のユーザーにリーチしていてすごい。
  • パフォーマンス改善の取り組みとして、Tootの描画件数を制限した話が良かった。

Algorithms in React

  • 正直、話の半分も理解できずに終わった。
  • 状態更新の優先度の話など。
  • 動画上がったらもう一度聴く。
  • 最後の方で紹介されていたSuspenseは普通に今後使いそう。

Envoy externals and ideas

  • Microservicesのつらみを解決するためのパターン(?)
  • わかったようなわからないような。

感想

わからないことも多いんだけど楽しい。

業務で何か必要が生じてキャッチアップするときと違って、こういうお祭り感の中で「はは〜、そういうものがあるんですか」みたいなノリでいろんな話を聞けるのが楽しい。謎ガジェット(電子名札)の話とか、内容としてはこれおれが聴いたところで業務でいつ役立つんだという感じだけど、uzullaさんの発表がくそ面白くて聴き入ってしまった。

明日も楽しみなセッションがいくつもあるので楽しみ。

会社がスポンサーになったので #builderscon にスポンサーチケット参加できて最高

buildersconに参加しています。

builderscon.io

今日も明日もいます。

f:id:shgam:20180907083308j:plain

なんで参加してるの

弊社スタディプラス株式会社は今年、buildersconのスポンサーになったので、希望者3人がスポンサーチケットでbuildersconに参加できることになった。

普通に参加するとチケット5000円するのでとてもありがたい。自分が所属してる会社のロゴがスポンサーに表示されているのも気持ちが良い。

昨日は前夜祭を見に行って、IoTとかVRの話を聞いた。

前夜祭

レベルの高い話とかSNS共有厳禁の話とかで、IoT門外漢の自分にはなんとも言えない感じだったけど、最後のペパボMake部のお二人の発表が個人的にはすごい良かった。IoT歯ブラシスタンドの話はすごい良くて、なんかしたらどっかにPOSTするというIoTは入門としてとても良さそうだし、アイデア次第でいろいろ面白いことができそう。実際IoT歯ブラシスタンドちょっと使ってみたいと思った。

今日と明日

ウェブアプリケーション周りの話を中心に聞いていきたいと思ってる。 またそれぞれブログ記事にしようと思っています。

「最高の人生の見つけ方」を観た

夏季休暇取ったのに台風直撃したせいでずっと引きこもっていた。そこで「最高の人生の見つけ方」という映画を観た。

www.amazon.co.jp

余命宣告された2人が意気投合して世界旅行に出てひたすらやりたいことをやる映画。

人生で一番つらいことと向き合って、それを2人で思い切り笑い飛ばす感じがすごいよかった。

Elmやってるけどどうか(途中経過)

趣味でElmを書いていて、最近では仕事でも一部Elmを使わせてもらっている。作っているもの自体は大きくないし、人に説明できるような理解度でもないのだけど、やっていってる途中でどう感じてるのか雑に書いてみてもいいのではと思ってだらだら書いてみた。

関数シグネチャの読み方

Elmでは関数の引数は一つしか取れない。そのため関数はこういう形になる。

append : List a -> List a -> List a

Put two lists together.

append [1,1,2] [3,5,8] == [1,1,2,3,5,8]
append ['a','b'] ['c'] == ['a','b','c']
You can also use the (++) operator to append lists.

List - core 5.1.1

関数を利用しているappend [1,1,2] [3,5,8] の部分を見ると、なんか引数が2つあるように見えるけど、そうではない。append [1,1,2] を評価して返ってくる関数に [3,5,8] を渡している。

REPLで1つずつ試していける。

> List.append
<function> : List a -> List a -> List a

List.appendList a を受け取って List a を返す関数を返す関数だ。

> List.append [1,2,3]
<function> : List number -> List number

List.append [1,2,3]は、List number を受け取って List number を返す関数だ。

> List.append [1,2,3] [4,5,6]
[1,2,3,4,5,6] : List number

List.append [1,2,3] [4,5,6]は、List numberだ。

となる。ふむ。

謎の安心感

謎の安心感がある。型を合わせていけば何かが出来上がっていく感じがある。JS書いてると console.log とか多用してたけどElmではあんまり Debug.log してない気がする。型合わせていけばなんかちゃんとできるというのと、あとDebuggerという便利ツールがあって、状態の遷移がupdateを通る都度確認できるからというのもある。

Debugger

Debuggerはなんか普通に気に入った。Google Chromeの使いこなしテクニックとかいろいろ覚えるのしんどい。これくらいシンプルにアプリの状態見れるツールがあるのは嬉しい。

Elm Architecture

基本Model View Update の3つで、難しくないという印象。この印象のおかげで、Elmを始めた。

ただ、CommandとSubscriptionという副作用を扱うための登場人物がいて、これをちゃんと使えないとアプリケーション書けない。

Ports

JSとつなぐ仕組み。localStorage使いたいけどElm側から扱えないじゃんというような問題があって、そういうときはこの仕組みを使ってJSとつなぐ。

HTML見づらい問題

HTMLも関数で記述するので最初は見づらかったけどもう慣れた感がある。

モジュール分割

こうするべきというのがよくわかってない。コンポーネント分けについては以下のブログ記事を何度も読み返してる。

jinjor-labo.hatenablog.com

雑感

正直Elmを触りだしたのは半分冗談というか、社内LTネタになるかなくらいの気持ちだったんだけど、触り続けてるともうなんかJSとかTS書くよりこちらをやっていたほうが楽しいんじゃないかみたいな気持ちまで芽生えてきた。この謎の良さをもう少しちゃんと言語化できるようになるくらいまでは触り続けていきたい。