mizdra's poem

雑なこと (日記/技術ポエム/メモ/…) を書くブログです.

2020-05-03

散髪

朝から散髪した. 超偉い.

乱数調整向けタイマー (rocketimer)

コードべースリファクタリングしたり, ESLintの設定 (主に @typescript-eslint 関連のrule) 見直したりしてた. 気軽に @typescript-eslint のrule使っていくと型情報要求されまくってlintに時間掛かりがちなので, opinionatedなものは可能な限り避け, bad practiceを検知できるruleを中心に入れるという方針でruleを追加していた. TIMING=1 yarn run eslint とかするとどのruleに時間が掛かってるか分かって便利です.

github.com

TypeScriptとパフォーマンス

rocketimerではmaterial-uiを使っているのだけど, material-uiはビルドや型検査に時間が掛かることが以前から知られていて *1*2*3 , 件のプロジェクトでもビルドが遅くなったり, tsserverの反応が遅かったりと影響が出ている. 常に遅い訳ではなくて, TSX書いてる時は数秒待たされるけど, ただのTS書いてる時は即座にレスポンスが返ってくるという感じ.

めちゃめちゃ困っている訳ではないけど, TSXちょろっと書く度に数秒待たされるのまあまあしんどいので, 改善できると嬉しい. 無闇に最適化するのは危険だけど, まあ困ったときの切り札として最適化テクニックを学ぶのは悪いことではないだろうと思って, 今日は色々それっぽい情報調べてた. 明日ビルド速度測定する環境構築しつつ, TS 3.9RCに上げたり, tsconfig.json弄ったりしてビルド速度爆速化してみる.

“Solution Style” tsconfig.json

TS 3.9でrelease予定の「“Solution Style” tsconfig.json」とかいう新機能, 便利そうだった.