Open5
JSConf JP 2023 参加メモ

参加予定
11:30 Track B
13:00 Track B
13:30 Track C
14:10 Track B
14:40 Track B
15:30 Track B
16:00 Track C
16:30 Track D

Deep dive into biome
Biome とは?
- RomeからforkされたWeb開発のツールチェイン
- Romeの開発が止まったので、コミュニティベースで開発
- Weeklyで6万ダウンロードくらい
- Vercelも使っている。 v0.dev のコードのformatはBiome。他 Ant Design、Tamaguiなど。
なぜ Biome を使うのか?
- Rustで作られているので早い
- 設定が簡単Zero config
- TSやJSXの設定も初期から使える
Biomeのパーサーの特徴
- invalidなシンタックスがあっても、解析を継続できる
- Green TreeとRed Treeを作り、それをASTにする
- Green Tree
- immutableなtree
- コメントや空白等も作る
- Red Tree
- mutableなtree
- これをトラバースしてASTを作る
- lossless syntax tree と呼ばれる
- Green Tree
- Green TreeとRed Treeを作り、それをASTにする
Custome ruleの設定
- rustで書く
- ただ、ESLintのルールの実装と似ている
- Custome ruleは基本的に書かない

Build and publish 2023
Memo
- 話について行くのやっとで内容メモする時間はなかった...

TYPESCRIPTで型定義を信頼しすぎず「信頼境界線」を設置した話
Memo
- 外側(network、storage etc)から内側(appコード)にデータが流れるものについては値が信頼できない
- その境界で値の検証をすることで、その後のコードでは型安全を信頼することができる
- 境界では異常系+正常系のテストをすべき
- 境界以降のコードでは正常系のみでもOK

TODO: 聴きながらメモが難しすぎたので、後日追加する