今出川FMは、株式会社ヘルプヒールの今をお届けするポッドキャストです。
というわけで、今日もゲストにお越しいただきました。
スペシャルゲストは、ヘルプヒールでエンジニアとしてリーダーとして活躍していただいてます、ヤドさんにお越しいただきます。
ヤドさんどうぞよろしくお願いします。
よろしくお願いします。
簡単に普段どんなお仕事をしているか、紹介していただいてもよろしいでしょうか。
ヘルプヒール開発グループで、顧客要望実現チームっていうところのチームリーダーをしております。
お客様から来た要望をどういうふうに解決していくのかとか、実際にそれを実装したりとか、そういうところを中心に活動しております。
というわけで、今日のテーマなんですけれども、TS会議に行ってきました会ですね、スペシャルです。
行ってきました。
というわけで、ヤドさんが今年は参戦したということで、ちょっといろいろお話を伺いたいんですけれども、
まずリスナーの方には初めてTS会議っていうのを聞いた人もいると思うので、
簡単にTS会議ってどんなイベントか教えていただいてもよろしいですか。
そうですね。TSっていうのがタイプスクリプトのことなんですけれども、
本当にその名前の通りタイプスクリプトに関するカンファレンスになっておりまして、
今年は金曜日と土曜日の2日開催のイベントだったんですけれども、
本当に全セッションタイプスクリプトに関する話っていう。
濃い目ですね。
濃かったですね。でも結構、ちょっとこの後も話すとは思うんですけど、
Ruby会議とかって本当にコアな話が多いイメージだと思うんですけど、
TS会議は割と実践的な話とかもあったりして、業務に役立ちそうだなみたいな話もたくさんありましたね。
そんな感じの雰囲気のカンファレンスでした。
いいですね。結構この後いろいろ深掘りして聞いていければと思うんですけど、
写真見たんですけど、800人以上参加されたんでしたっけ?
見たいですね。現地参加が800人以上なんで。
そうか、オンライン配信もあるんですね。
オンライン配信も何百人っていうか、900人とかって書いてたかな。
すごいですね。800人現地のオンライン900人じゃん。相当注目度高いですね。
単純に言語としての人口も多いんですかね。
そんな気はしますよね。
ウェブフロントエンダーは結局タイプスピリッツが使ってるところが大半占めてる気がするんで、何らかの形で関わってる方が多いんでしょうね。
いいですね。イベントをトータルでいくと一言で言うと、参加してみての感想としてはどうでした?
そうですね。もちろん面白かったし、
あと何でしょうね。最近参加したイベントの中では、いろんな角度の話が聞けて面白かったなっていうところですかね。
これ僕が最近参加してるイベントの種類がそうっていう話もあるんですけど、
イベント全体が一つのテーマに沿って、例えばAIコーディングについてとか、組織改善についてとか、
そういう話のテーマがあるようなイベントに参加したのは僕は多かったんですけど、タイプスクリプトについてって結構広いんですよね。
そうですね。
タイプスクリプトに関わってたら本当に結構何でもありっちゃありなので、
こういう角度の話もあるんだとか、いろんな知らないことがたくさん聞けて面白かったですね。
いいですね。確かに同じ話を1日中聞いちゃうと結構慣れてくるとかもありがちだけど、
2日間にわたっていろんな話聞けると相当刺激的ですよね。
そうですね。だからちょっと疲れたった時に。
大陸はね、カンファレンスさんって持ってかれますからね。
そうですね。情報の渦がすごかったというか。
濃密な時間過ごしてたんでしょうね。
そうだったと思います。
結構まずカンファレンスの醍醐味ってセッションに参加するっていうところだと思うんですけど、
面白かったセッションとか印象に残ったセッションってありますか?
そうですね。内容もそうなんですけど、
僕が初日に参加した1日目のセッションが、
最初に聞いたセッションと2人目のセッションが実は両方とも知り合いだったんですね。
両方ともヘルプフィールのイベントに来ていただいた方が2連続で発表されてて、
すごい知り合いが発表していると思いながら聞いてて、
それがまずちょっと楽しかったですね。
お知り合いの1人なのがサイボーズに勤めてます。
佐々木さんっていう方。
イベント来ていただきましたね。
そうですね。
いわゆるタイプスクリプトの型について考える発表で、
これは実際の業務上で、
例えばTSEignoreとかAzcastとか使って型を誤魔化してたみたいなコードを分類して、
実際どうすればよかったのかとか、
どういう良くない例が品質してるのかみたいなのを紹介されてた発表だったんですけど、
これはすごい実践的で参考になりましたね。
結構あれなんですね。
型システムをうまく活用できない場面自体を型化して、
できるかしらある種対応方法を提示するみたいな感じの発表だったんですかね。
そうですね。
だから前半のほうは結構、
確かにそういう逃げ方しちゃうよねみたいなのが割とあって、
そういう風に解決すればいいのかなみたいな話だったんですけど、
結構後半のほうはアドバンスとの話になってきて、
そこまでしないとなるほど型定義できないのかはちょっとつらいなみたいな話もあったりして、
タイプスクリプトの限界みたいなところにも迫ってたりするような話で、
初歩的なところからアドバンスの内容まですごい面白かったですね。
いいですね。
昔からよくある話としてはエニーで言ったのがおまかしだとよく聞きますけれども、
そうじゃないところもやってるっていうのは面白いですよね。
そうですね。
途中でもあったんですけど、
これ数年前まではこれできなかったんですけど、
タイプスクリプトのアップデートでできるようになりましたみたいな話でもあって、
そういうのは確かにあるよなと思いながら、
いいですね。
そうですね。
タイプスクリプトってまだまだアップデートの余地残してるんだろうなっていうのを
発表期で結構分かって、それも面白かったですね。
簡単に使う分にはタイプスクリプトってそんなにバージョンのアップデートを
意識しとくとあんまりないんですけれども、
最近出たことによって対応できたって具体的にはどういうアップデートで
それが実現できるようになったんですか。
ちょっと込み入った話に、おそらくメインの型システムはある程度できあがってるので、
周辺をさらに強化していくための話になっていくのかなと思って、
結構ちょっと込み入った話になるかもしれないですけど。
そうですね。これはさんじきさんのスライドの中にもあるんですけれども、
タイプスクリプトの中にあれのフィルター関数っていうのがあると思うんですけれども、
タイプスクリプト5.4まではフィルターの関数がちょっと不十分なところがあって、
ぬるを弾くのがちょっと、ちょっと僕もちゃんと分かってないんですけど、
正しく動作してないように振る舞うみたいなのがあったと思うんですけど、
ぬるが入ってたらこれがエラーになってしまうっていう話だったのかな。
なんだけど、5.5以降からはぬるが含まれてても正しく動くっていう形になったみたいな話があって。
あれですかね、カタスイロンが精度が向上、精度というか。
そうですね。
ぬるの除外とかをしたときにちゃんと返す方もみんな外れるみたいな、そんな感じなんですかね。
たぶんそうですね。
みたいな話とかがあって、カタスイロンが基本的にどれぐらいの精度が出るかみたいな話があったかなと思うんですけど、
そこら辺がアップデートちゃんとされてるっていうのが、なるほどなと思いながら。
そのセッションの中では逆にここはまだできてませんみたいな話とかもあったりして、
まだアップデートの余地あるんだなという感じですね。
ここはまだできてませんが、まだTypeScriptの世界にはあるってことなんですね、逆に言うと。
みたいですね、そうですね。
isArrayが要素型を持たないとか、そういうところがまだ対応できてないみたいですね。
面白いですね。
結構こういう仕様の部分に向き合うシチュエーションって相当、TypeScriptを使いこなそうと意識的にやらないとなかなかたどり着かないですもんね。
そうですね。
私、こういうところを頑張って解決しようって思うところって結構アドバンスな話になり、
ちゃんとTypeScriptに向き合ってるっていうのが、やっぱりちゃんとTS Conferenceならではだなと思いました。
他には結構面白かった発表ありますか?
鈴木さんの発表面白かったと思うんですけど。
あとはレイアエックスさんの発表で、PDFのレイアウトエディターを何か作ってるっていう、
そこの中でどうやってレイアウトエディターを型システムで支えてるかみたいな話があったんですけど、
これもなかなか結構濃い内容で面白かったですね。
PDFエディターついてるんですね、爆楽に。
みたいですね。請求書発行用に。
普段我々は見ない画面だけれども、実はすごいバックオフィス向けにあるってことなんですね。
多分そうだと思いますね。
実際の画面とかも見ながらあったんですけど、これ大変そうだなっていうのは見た感じですごい明るいようなシステムでしたね。
確かにエディター的な機能って割と型システムみたいなカチカチっと決まった世界として表現するには相当、
柔軟な入力があることを前提にした型システムの使い方をしなきゃいけないから結構ない気がしますよね。
これ実は先ほどの佐々木さんの発表のときもテーマになったのがキントーンだったんで、
キントーンって要するにユーザーが入力した結構自由なフォームを作れたりするみたいな話だったんで、
これもちょっと関連するところはありましたね。
キントーンね。
ある程度自由にユーザーが入力できるみたいな世界観だと型の定義めちゃくちゃ大変そうっていうのがそうだろうなっていうのはありますね。
キントーンすごいのはパッとキントーンで作られた後のフォームとか見ると割と作れるのかなって思っちゃうかもしれないけど、
実はキントーンのすごさってあれなんですね、バリアントなところというか、
テンプレートなり型なりの部分自体を柔軟に作れる分、後ろの工程がさらに自由度高くなるから、
それを一連で受け取れるようにするっていうこと自体の凄み。
それをしかもデータ構造として表現できてるっていうのがすごいですよね。
メタのメタのプログラミングみたいな感じの発展かも。
知り合いが実は朝敷さんとは別の方なんですけど、キントーンのSDK作ってる知り合いとかがいて、
めちゃくちゃコアの部分作ってる話なんですけど、ご相談のとおりながらいつも話聞いてます。
Pdfデータっていうところもそうか、入力欄とか変数の受入れとかそういうのがあるって感じなんですかね。
そうですね、まず種類がものすごい話があって、資料の中にもあったと思うんですけど、
組み合わせ数がそもそもすごいみたいなんですよね。
6×3×無限通りってなるシーンですけど。
6と3は何だろう。
なんか分類かな。
まず種類がすごいっていうのがあるみたいで。
で、あとは内部で一部、最適的な構造を持ってるところとかもあるらしくて。
なるほど。
これをカタシステムで表現するみたいな話もあったりして、すごい大変そうだなっていう感じがありましたね。
これ開発者側が相当メタ思考強くないと回答しきれないですね、どれだけカットキーになっても。
すごいですね。
この話は全体的にカタ定義のところもとにかく結構頑張って丁寧に作って、
するとその後の工程めちゃくちゃ楽できたみたいな感じで。
そうですね。
例えばカタシステムのところをちゃんと作り込んだら、
その後の部分の例えば実装の漏れのところとかをエディタ側で自動でチェックしますよみたいな話であったりとか。
あとは他のところで使うときに型の情報をそのまま取り出せて、
使い回しできますよみたいな話あったりとか。
カタシステム情報をそっちこっちで使ってるってことはゾットかなんかでやってる感じなんでしょうか。
みたいですね。
いいですね。
爆落さんってバックエンド何で動いてるんでしょうっけ、ノードJSとかなんですかね。
バックエンドも多分ノードJSじゃないかな。
じゃあそうするとゾットで全部技術作が統合できるというか共通化できる。
ちょっと間違えたら申し訳ないんですけど、かなと思います。
面白いですね。
その型の作り込みって結構物がある前に型を先に作り込むってなかなか難しいというか。
だから結構設計を丁寧にやったってことですね。
そうですね。要件定義とかがものすごいちゃんと作り込まれてるってことなんでしょうね。
ここの動きは結構参考にしたいですね。
私の場合はよくも悪くも手触り持って作りながらじゃないと設計があまりフィードバックできないタイプの人間が。
ちゃんときれいに順の出し設計できるってある種すごい才能ですよね。
こういう流れとしては、やっぱりAIコーディングが発達したっていうのが結構大きいかなと思って。
めちゃめちゃ勉強になりましたね。
もう一個ぐらいもし良ければ良かった発表とかあれば話聞きたいんですけどどうですか。
そうですね。ヘルプフィールドもちょっと関わりがあるというか、我々の開発してる個センスのヘビーユーザーであるヤマノックさんの発表が、
こちらの10分セッションだってちょっと短かったんですけれども、
ナビゲーションAPIっていうブラウザ上で動作するAPIですね。これが全主要ブラウザで利用可能になるまでの経緯みたいな話がありまして、
ちょっと歴史的な話とか、タイプスクリプトの裏側の話みたいなのがあって、これは小話的に面白い話でしたね。
ナビゲートAPIってGIS系のやつとかですか。
いや、これはヒストリーAPIの後継なんで。
ヒストリーAPIの後継なんですね。
なので、ブラウザの履歴のところの部分をコントロールしているAPIっていう。
ヒストリーAPIは使い方難しいですよね。
そうですね。結構履歴が簡単に壊れるみたいな扱いの難しさがあって、
それはナビゲーションAPIで解決しているみたいなところらしいですね。
もうあれですか、普通のジェネラリリースというか、どのブラウザでも大体使えるって感じなんですか。
今年の初めの方に使えるようになったらしくて。
そうなんですね。
Chromeは結構早い段階で導入されたっぽいんですけど、それ以外のブラウザがもうめちゃくちゃ時間かかったらしくて。
山本さんの発表の途中でお聞きしたのが、タイプスクリプトの型定義の中にナビゲーションAPIの型定義がずっとなかったらしいんですけれども、
タイプスクリプトの公式の型定義としての採用基準に、2つ以上のブラウザエンジンで実装されていることっていう基準があるんですよね。
なので、長らくChromeしかなかったらしいので、それが他のブラウザにもちゃんと実装されたことによってタイプスクリプトの型定義として公式に定義されるようになりましたって話があって、
なるほどなと思いながら、そんな基準があるんだと思って聞いてましたね。
確かにね、ここら辺のある種運用フローというか、どう定義されてるかとか、知らないと何となく動いてるのかなと思っちゃうけど、実はちゃんとブラウザっていう感じなんですね。
この型を採用してくれみたいな声はたくさんあると思うので、どういう基準で採用してるんだみたいなところはあんまりこれまで気にしたことはなかったので、なるほどそんな基準なんだなっていう感じでしたね。
いいですね。実際発表内容としては、そのナビゲーションAPIのヒストリーの話みたいな感じじゃないですか。ちょっとややこしい話になった。
そうそう。
なるほど。
ヒストリーAPIの国境へたるナビゲーションAPIのヒストリーの話をお話しさせたんですね。
これから先の展開の話とかもちょっとあったりして。
結構ナビゲーションAPI自体は未来が明るいAPIって感じじゃないですかね、逆に言うと。
だからこれから種類になっていくのは多分ほぼ確実なので。
いいですね、こうですかね。
結構フロントエンドを書く人にとってはキャッチアップしといた方がいいというわけですね。
SPとかもめちゃくちゃ影響を受けますもんね。
まさにまさにそうだと思います。
いいですね。
ヤマノクさんの発表がすごいストーリーがわかりやすくて、ナビゲーションAPIってこういうものです、こういう理由で今まではできなかったんですけど、こういう事情になってできるようになりましたみたいな感じですごいわかりやすくて。
途中に挟まる話とかも、さっきの2つ以上のブラウザエンジンで実装されて採用されるようになりましたみたいな話とかも面白くて、全体的にまとまりがすごくあって、さすがヤマノクさん登壇スキルめちゃくちゃ高いなと思って。
いいですね、さすがですね。
ちょっと見習いたいなと思いましたね。
来年はぜひヤドさんも登壇していただくということで。
じゃあ頑張っていってほしいです。
CF描こうかなと。
ぜひぜひ行ってみましょう。