これが正しい、とかを言いたいわけではなく、自分はいつもこうやっているよー、というのをメモに残しておきます。
ケース1
例えば、Aというアプリを動かすにはBとCのライブラリが必要、というケースがあったとします。 こういった場合、自分はまず、BとCのライブラリを敢えてインストールせずにAを動かそうとします。 そこでエラーが出ればBをインストールして試し、ダメならCもインストールします。
理由
素直にBとCをインストールしてから始めればいいものを、何故こんな面倒なことをするのか、理由を考えてみました。
1. エラーが起きた場合どうなるか把握できる
最初から成功してしまうと、エラーになった場合の挙動などを知らずに先に進むことになります。最初に敢えて失敗しておくことで、後々エラーが起こった場合、素早く対処することができます。
2. BとCがなくても動いてしまう場合がある
ドキュメントには「BとCが必要」と書いてあっても、試しに実行してみたら何の問題もなく動いてしまうケースがあります。その場合「何故動いたのか」を調べていくことになるので、結果的に知識を深めることができます。
ありきたりの言葉ですが、疑うことは大事ですね。
ケース2
iOSアプリ開発を例に挙げます。URLSession
を使ってHTTP通信するケースを考えます。
let task = URLSession.shared.dataTask(with: url!) { data, response, error in if let data = data, let response = response { print(response) } else { print(error ?? "Error") } } task.resume()
この場合もまずは次のことを試します。
url
に nil を入れてみるurl
に実在しないデタラメのURLを入れてみるtask.resume()
を実行しない
理由
1. データがおかしくなった場合の挙動を知っておけるので、後々エラーになったときに役に立つ
これもケース1とほとんど同じですね。最初に失敗しておくことで、
- アプリがクラッシュした → お、
nil
が混入しとるな - レスポンスが返ってこない → そもそもリクエストしてる?
といった対応ができるようになります。
2. いきなり成功すると不安になるから
「一発でビルドが通った」
これほど不安なことはありません。 この気持、わかってくれる方もいらっしゃるのでは??
まとめ
ここに書いた内容が、他の皆さんもやっている「当たり前」の進め方なのかはわかりません。だからこそメモに残してみました。 俺も同じだよ!などあれば教えてください。