Frontend Meetup vol.1 で革命と秩序とSPAという発表をしてきた

FiNCさん主催のFrontend Meetupというイベントで革命と秩序とSPAという発表をしてきた。

connpass.com

有志の方がまとめを書いてくださっているので、そちらもぜひ。

www.chirashiura.com

qiita.com

僕の発表資料はこちら。

speakerdeck.com

主催のFiNCさん、ありがとうございました。

内容

フロントエンドのパラダイムシフトとfreeeの関わり方と、今のスタックであるReact + FluxUtils + Frowtypeについてのお話。 どちらかといえば後半のFlowtypeの適用についての方に力を入れてお話しした。

個人的な感覚もあるけど、Flowtypeはここ1年で大分扱いやすくなっている。当初はReactのAPIの型定義が揃っていなかったりしたけど、現状では型定義のないAPIは見当たらない。 意味のわからないエラーに遭遇することもほとんど無くなった。個人的な慣れもあるかもしれない。

なぜTypeScriptでなくてFlowtypeなのか、という点については単純にbabelでトランスパイルする環境がすでにあるので、それを刷新してまでTypeScriptに寄せるよりも導入が楽だからというのが一番大きい。 当初からデフォルトがnon-nullableであったとか、個人的な好みもあるけれど、TypeScriptにも2.0から--strictNullChecksが入ったし、そういう部分での優位性は失われつつある。

TypeScript 2.0 · TypeScript

Flowtypeの世界はあくまで型アノテーションであり、TypeScriptは言語であるという根本的な違いはあるけれど、少なくとも静的型を提供するという目的においては両者とも同じ方向を向いている。

資料でも触れているけど、僕はjsには絶対に型が必要だ!という強硬派ではない。だけどチーム開発においては型があることの利点が大きいと感じている。

Fluxなりのアーキテクチャによりレイヤーを設けられたフロントエンドの世界において、Flowtypeを導入するだけで型安全を手に入れられるのか、というとそんな訳はなくて、それなりに書き方を工夫する必要がある。(具体例は資料に書いています)

発表は試行錯誤した結果だけど、もっといい書き方もあるかもしれない。知見のある方と是非意見交換したい。よろしくお願いします。

宣伝

というわけで、freeeでは革命と秩序に積極的なフロントエンドエンジニアを鋭意募集しています。

jobs.jobvite.com

共に世界をぶっ壊して再構成して秩序を取り戻しましょう。よろしくお願いします。