こんにちは、進撃する人です。
かれこれ3カ月でおおよそ700時間以上はプログラミングに没頭しています。
そこで、ネックになってくるのがプログラミングのエラー。
syntax errorやrailsをやっている人ならrouting error、missing templateなど様々なエラーに苦しめられるでしょう
「う、うわぁあああ!!ActiveRecord notnullviolationエラーや!」
Railsの場合ですがこんな感じで赤い文字のエラーが出ると「最初はなんじゃこりゃ!」と思いますが、私の場合は一通りエラーに慣れてしまい!
「お、エラーきたで!いっちょやったるか!」
と、ゲーム感覚でエラーを解決するようになりました笑
私はこの3ヶ月で300個~400個はエラー解決してきたという自負があるので、エラー解決までのプロセスを書いて行きたいと思います。
エラーが解決できない時の対処法
今回、エラー解決のプロセスをまとめますが、もしエンジニアの経験がさらに積め次第どんどん更新していきます。
700時間プログラミングを学習してきた上でのエラー解決の際のプロセスを書いていきます。(なお、今回はJavascriptとRailsの例です)
エラー部分を大まかに予測する
何百回とエラーを解決していくとわかりますが、エラーは大まかに予測することができます。
例えば、上記は「routing error」というエラーです。
Railsはroute.rb→controller→viewという流れで読み込まれる仕組みになっているのですが、routingエラーというのは明らかにroute.rbの部分に問題があるのがわかります。
全く初めての人がエラーに直面した時、「全くわからない」状態だと思います。
なのでまず、いきなり自分で何か作るよりもProgateやドットインストールで基礎部分を最低限理解しておけば「どこでエラーが起きてるのか」くらいはわかるようになるので、エラーが起きてる場所を特定できるようにしましょう。
ググり方を工夫する
さて、エラー箇所を特定しても「そもそもエラーの内容がよくわからない」という人も多いかと思います。
そこで次にやることが「ググる」ことです。
エラー解決の際、鬼ググります。
とにかくめちゃくちゃググります。
以下、おすすめのググり方です。
- エラー文を丸々コピペでググる
- キーワードの組み合わせを変えてググる
有効なのは上記です。
例えば、先ほどのエラー文をググってみると
「No route match」というエラーが出ます。
検索結果の上位5つくらいを読んでみるとわかるのですが、
- route.rbに不備がある
- rake routeをすればわかる
…ということがググってわかりました。
しかし今度は
- そもそもroute.rbってなに?どこにあるファイル?どんな意味があるの?
- rake routeって何?どんな意味があるの?
と、新たな疑問が湧いてくるわけです。。。
その新たに湧いた疑問をさらに「route.rbとは」「route.rbはどこにある」などのキーワードをググって理解し、解決するのが基本的なエラー解決のオーソドックスな方法です。
めちゃくちゃ泥臭い作業ですね笑
デバックツールを使う
基本、上記の通り「エラー箇所を特定する」「ググって調べまくる」だけである程度は解決できます。
しかし、
「変数に値が入っているかわからない」
もしくは
「変数に入っている値が期待したものか確認したい」
そんな時は「デバック」をする必要があります。
- Railsであればbinding.pry
- Javascriptであればconsole.log
を使い、値が入っているかどうかを確認することができます。
言語によってデバックに使うツールは異なるので「Rails デバック」「Javascript デバック」と言ったように検索すればデバックツールを探せます。
捨てる
あくまでプログラミングスクールでチーム開発をしたレベルという前提ですが、現場のエンジニアはアプリをローンチするまでに特定の機能実装する上で時間が足りない場合、捨てます。
「もし、エラーが出てる箇所が機能面でさほど重要でない機能であるならば、捨てることも必要」と、現場エンジニアの方がおっしゃってました(これに関してはまだ現場のエンジニアではないので聞いた範囲です。話半分で聞いてください)
ぶっちゃけ誰かに聞いたほうが早い
ぶっちゃけ言いますと、エラーは誰かに聞いたほうが早いです。
まずはエラーの箇所を大まかに特定する→googleで調べる→10分格闘してわからなかったら誰かに聞く
このステップが一番効率いいんですよね。。。
ただ、ある程度レベルの高いエンジニアさんって時給3000~5000円程度で働いているのでそれなりのエンジニアさんを1時間拘束したら5000円のコストがかかります。
結構、キツイコストですね。。。
しかもどこで聞けばいいのかわからないという点でもなかなか「誰かに聞く」というのは難しい問題でもあります。
そこでおすすめなのが3点。
プログラミングスキルをあげるのに一番いいのがぶっちゃけエンジニア業界に就職するのが一番早いです。
これは独学でやっていてモチベーション、環境共に「就職した方が早いw」という結論に至りました。
また、問題点として「そもそも未経験でエンジニアに就職するのが難しい」という問題があります。
その点に関してはプログラミングスクールに通って最低限のスキルを身につければ(年齢とかあなたの能力にもよりますが)OKです。
もし、「プログラミングに興味はあるけど就職するほどではない」という人であれば入江開発室の入江さんという方が開発したMENTAというメンターサービスを使って質問してみるのもいいでしょうし、最近はエンジニア系オンラインサロンが増えてきたので入ってみるのもいいと思います。
まとめ
以上がプログラミングでエラーを解決するのにおすすめの方法です。
エラーは正直、ウザいですが、プログラミングをしていくのにエラーは解決は必ず通る道です。
むしろ「エラーを解決してきた数だけエンジニアとして成長する」と巷では言われてますw
以上、プログラミングを勉強していてエラーが出た時の解決法です。