なぜRustのエラーメッセージはわかりやすいのか?
Rustについて
エラーメッセージについて
90%の人が丁寧だと回答!
エラーメッセージについて満足していない開発者は9%(Google) 多くの開発者がlintとエラーメッセージで動かしながら学んでいる
エラーメッセージの質が高いからこそ
どのくらい重要視されているか
「わかりにくい」エラーメッセージはバグと同列に扱われる
Issue trackerを見るとエラーメッセージだけでも15個のlabelがある
初心者にとってわかりにくい
Rustのエラーメッセージの変遷
型が異なるエラーのメッセージの変遷
最初:mismatched types、行数のみ
2版:視覚的にわかりやすく(ハイライトや当該箇所に波線+波線近辺に文字を出す)
常にエラーメッセージが改善されている
年600件
なぜエラーメッセージがわかりやすいのか
常に改善されているから
レポーターではなく、メンター
改善の流れ
抜本的な変更(RFC)
ビジュアライズの例
人力で一つずつ改善
言語設計(traitのエラー)
attributeでカスタムメッセージを設定できるようにした
ユーザーフィードバック
issueベースで進む
MCVEを提供する(最小の完全に問題を再現できるコード例) これがあればメンテナ、コントリビュータがすぐに再現できる
ウォークスルー(重複したエラー出力)
コード修正 + テスト追加(UIテスト)
エラーメッセージは完成しない
時代によって変わっていく
どう活かせるか
意外とエラーメッセージは作っている
エラー箇所を指し示す
エラー箇所の近くにメッセージを出す
help/note annotation
ユーザーの問題を解決に導く
「文字コードが不正です」ではなく「UTF-8形式にしてください」とする
次の操作に進める状態まで持っていく
事象、原因、対処を示す
アラートメッセージ
「スパイクしてないか確認してね」だとネクストアクションがわからない
「{RunbookのURL}をみてください」だと全員が対処できるようになる