ライブラリ・フレームワーク関連のエラーの消し方
アプリケーション開発時にライブラリやフレームワークが投げるエラーの消し方について、mgn901.iconの基本的な考え方をまとめる。 前提
文章が言語による思想の表現物であるとするならば、mgn901.icon
文章を読み解く力である読解力は「文章に込められた思想を把握する力」になる。
プログラムも言語による思想の表現物、文章である。
プログラムやそれに関する文章を読むには、プログラムや文章に込められた思想を把握する力が必要である。
またプログラムを書く側も、自分の思想を必要十分に表現するつもりでプログラムを書く必要がある。
「必要十分に表現」: 表現したい思想と、プログラムに実装された思想が一致していること。自分の思想を欠落なく、しかし無駄なく表現すること。
プログラム処理系は、プログラムに処理不能な状態が入力されておらず、プログラムを一意に解釈できる場合にのみ正しく動作する。一意に解釈できなかった場合に、エラーが発生したり、プログラムが停止したりする。
エラーの種類
コンパイル時に発生するエラー
実行時に発生するエラー
コンピュータでのあらゆる作業は次の3つを1つの単位として、それの繰り返しと捉えることができる。
1. あるプログラムにデータを入力する。
入力する主体には人間や別のプログラムが挙げられる。
2. プログラムが入力されたデータを処理する。
3. プログラムが処理結果を出力する。
出力先には画面などのUIや別のプログラムが挙げられる。
プログラミングであれば上記の「プログラム」を「関数」「ライブラリ」などに置き換えることができる。
原因の特定とエラー解消の速さにつながるもの
エラーの種類とエラーの発生場所を知ること。
ライブラリが提供する関数などに何を入力した結果何が起こるのか・出てくるのかを知ること。
リファレンスとチュートリアルを行き来することでライブラリの使い方が見えてくる。
エラーがどこで起こっているか知る。
エラー処理ができる言語なら、プログラムのどの部分を実行しているときにエラーが発生したのかや、その処理がどこから呼び出されたのか(コールスタック)を教えてくれる。 エラーの原因を探る。
エラーの種類に応じて直し方は異なる。
具体例
TypeScriptの型エラーであれば、ライブラリが想定している型を知っている必要がある。言語サーバを備えているエディタを使っているなら、補完などを使いこなして正しい型に直す。 サーバーにAPIリクエストを送った際にエラーが返ってくるのであれば、サーバーが受け付けているリクエストの型に、自分が送ったリクエストの型が適合しているかを確認する。
ライブラリのリファレンスを読むことで、エラーの原因がわかることがある。
エラー部分がライブラリの関数を呼び出している場合、そのライブラリのその関数についてのリファレンスを読んでみる。
ライブラリやフレームワークは面倒な処理を隠蔽してくれるので便利だが、エラーを解消するには隠蔽されている処理について知ることが重要である。
例えば、