第二のドワンゴ14日目です。
JSConf JP 2019(https://jsconf.jp/2019/)に行ってきました。 今回は参加後の感想や考えをつらつら書くだけの記事です。 Node学園祭は過去に2回行っているので3年連続(?)参加です。
当時の様子
Twitterのフィルター機能を利用して絞り込んでおきました。
スライドや画像の検索はこちら
スライドのリンクなどまとめてるブログなど
- JSConf JP 2019 All talks and Twitter account list
https://dev.to/tetra2000/jsconf-jp-2019-all-talks-and-twitter-account-list-9jl - JSConfJP 2019 スライドまとめ(WIP)
https://qiita.com/Tomo_Yanagi/items/1d69940d948de2ea2303
おもしろかった発表
- WEB の自重
https://jsconf.jp/2019/talk/jxck - BUILDING AND DEPLOYING FOR THE MODERN WEB WITH JAMSTACK
https://jsconf.jp/2019/talk/guillermo-rauch
(もちろん、ほかも面白かったのであしからず)
"WEBの自重"を聞いた後に思ったこと
WEBの自重では、新機能をWEB(ブラウザ)に実装するとき、「ユースケース自体は否定されていないが、ユーザーにとって不利益を被るかどうかが議論されている」(だったはず) という話を聞いてなるほどなぁ、と思った。 また、ユースケースに沿って仕様を決めていくと肥大化するので、抽象度を上げて実装することでユースケースに対応する、というのも感慨深かった。
こういうこと聞くと色々想像を働かせてしまう。たとえば、新機能を実装したいとき、あらかじめユースケースに対応する実装の利用率が高かった場合、決定材料として強力なものになるのではないか。つまり、スマートフォンのように「アプリ」という世界観にWEBをパッキングし、(低レイヤーの操作もできるという意味で)自由に実装を行い、ユースケースの利用率を測定するとWEBへ仕様を輸入することができそう、とか考えてしまう。これはブラウザにも言えて、ChromiumやWebKitに実験的な実装を行い、多くのユーザーが利用しているウェブサービス上でユースケースの利用率を測定することで話を進めやすくすることもできるだろう、と。 その中、EdgeがChromiumベースのブラウザになる、という点で「Chromeがゼロだった」という指摘があって、これは確かに危惧する点かもしれないなぁ、と心のなかでうなずいてました。
スマートフォンのアプリを利用していて感じるのは、「これWEBで実装できるし、アプリケーションにする必要あったのかな」とふと疑問に感じてしまうことが増えてきた。 もちろんUXの観点から言えばスマホで見るWEBブラウザのアプリより、ネイティブアプリのほうが良いのだけれど、先に上げたWEBブラウザがまだできない実装をしているネイティブアプリケーションはどれくらいアプリストアにあるんだろう、と考えしまった。
ブラウザ開発競争に疲れた企業はスマートフォンアプリケーションやPCのネイティブアプリに行くのかなあ、どうだろうなぁ、と思ってたり、いなかったり。
"BUILDING AND DEPLOYING FOR THE MODERN WEB WITH JAMSTACK"を聞いた
Zeitの創始者の方でした。(ガタイがいい・・・。) WEBフロントエンドの開発をやっていると一度は目にしたことがある名前だと思います(スポンサーとかでよく見る)。 今回は、発表の説明にあるように最先端(発表当時)のフロントエンドのデプロイフローについて話していた。 また、そこに至るまでの背景の課題が整理されていて、開発現場で直面する問題に対するブレイクスルーとなる考え方を見た気がする。 Zeit now(https://zeit.co/)でやっている内容が現段階での解であることがなんとなく理解できた。
使ってみた感じ、全部やってくれているのでこのレールから外れなければ楽なんだろうな、と思う一方で、この状態はKubernetesのそれと同じ感覚を持った。 ほとんど設定しか書かなくなってしまって内部の処理で行っていることを理解した上で使うには多くの事をしる必要がありそうだということ。 k8sと違うのはコストとリスクが低いことで比較的理解しやすいレイヤーの話なので最悪なんとかなる気がした。 実際の業務にzeitのプラクティスを適用するには事前調査と正しい理解が必要だなぁ、とぼんやり思った。 zeit nowが提供する仕組みはWEBのユースケースに対してどれだけの抽象度を持った解を提供するかが利用の決めてなるのかな〜なんて。
次にやること
雑に色々と考えてることとかを垂れ流してきたけども、次やるトピックスはいくつか決めています。
- ルーティング
- ロードバランス
- テスト
- WebAssembly
開発環境を作ったり、検証環境を作ったり、とにかく何かしらの環境を作るときの最初に当たる壁がルーティング。 CORSのかべにぶち当たること行くしれず、という昨今のなか、サブドメインくらい動的に生成してポート番号は80固定みたいな世界を作っていきたい。 またカナリアリリースやユーザーテストなど、productionの様子見をしつつ開発を勧めていくにはページに訪問する手前でコントロールできる状況にしておく必要があるなと。 WebAssemblyはW3Cの勧告まで到達しており、ホットな話題なのでぜひ取り組んでいきたい。 グルー言語と呼ばれるPythonのように、"グルー"ブラウザ(?)な世界も楽しんでいきたいですね。