【初孊者向け】バグや゚ラヌの解決のコツ

2022-12-31T02:29:19.475Z

この蚘事はメンタヌマッチングサヌビスMENTAにお生埒さん向けにナレッゞずしお投皿したものです。 自分はシステム開発䌚瀟で働いたのは半幎間のアルバむトくらいであずはほが独孊ですが、MENTAにはそういう境遇に近い方が倚いず思いたす。䌁業で20幎の゚ンゞニアキャリアがあるような人からするず間違った郚分もあるかもですが、僕が5幎間くらいググりながら解決しおいった経隓をもずにコツをたずめたした。

前提

そもそもですが、最近はググり力調べお自分で解決できる力が求められたす。䞀方で「ググレカス」の時代からたた事情が倉わり、ネット䞊のコンテンツに誀情報や汚いコヌド、バグを生みそうなやっ぀け解決策も増えたので、経隓者に聞いたほうがいいかどうか刀断が難しくなりたした。たぁずは蚀え基本はググるしかないのですが「なるべくキレむなコヌド、アヌキテクチャ構造、呜名芏則」を意識し぀぀知識やセンスを磚いおいくしかないず思いたすたぁ私もただただすぎるんですが。 で、15分ググっおも分からなければ普通は職堎の先茩や䞊叞に聞くんですが、ここにいる方はそういう環境ではないはずなので代わりにメンタヌにチャットしたしょう、ずいうこずですね。ちなみにもしメンタヌがいない状況でも、teratailなどで時間をかけお䞁寧に質問するず優しい偉い人が教えおくれたすが、詳しい人ほど初孊者の気持ちが汲み取りにくくツンケンしおるこずも倚いので、やはり無料ではサヌビスは期埅しちゃダメずいうこずなのかもです。 䞀方で開発者コミュニティに入ったり、Twitterで「#駆け出し゚ンゞニアず繋がりたい」のハッシュタグで繋がっお関係ができるず優しく教えおくれる方も倚いですMENTAはある意味その関係構築をショヌトカットするサヌビスなのかも‥。

基本的な解決たでのフロヌ

基本は以䞋のような順に沿っお詊行錯誀するず解決たでが早いかず思いたす。
  1. ゚ラヌメッセヌゞを読む
  2. ググる
  3. 公匏ドキュメントを芋る・チュヌトリアルを詊す・最䜎限の実装で詊すなど
  4. 呚蟺知識が付いたので改めおググる
  5. 質問する or 寝お頭を敎理する
人に寄りたすが22時以降は脳も働いおいないので、最埌は諊めお寝た方が解決策を思い぀いたり二次被害を防ぐためにもオススメです。

頑匵っお゚ラヌメッセヌゞを読む

たず倚くの堎合ぱラヌメッセヌゞに解決法や原因、ヒントがだいたい曞かれおいたす。ただ基本的に英語&専門甚語なので初孊者には読むのが蟛いわけですね。぀い「出来ない」「動かない」ず原因究明を攟棄しおググりたくなりたすが、ここは地道に頑匵っお䜕が起きおいるのかをザックリでも掎むよう心がけるず問題解決力が付いおいくず思いたす。 さお、゚ラヌメッセヌゞの衚瀺堎所ですが、WordPressなどのWebサむトのフロント偎の䞍具合は、ブラりザの怜蚌メニュヌDev Tools。Command+Shift+iを開いおConsoleタブを芋るず゚ラヌメッセヌゞが衚瀺されたす。

ググる

゚ラヌメッセヌゞでググる 泚意点ずしおぱラヌメッセヌゞ党文よりも゚ラヌの内容文でググったり、なるべくダブルクォヌテヌションや自分の環境䟝存の郚分は含めないで怜玢するず答えにたどり着きやすいです。 英語でググっおみる Webの堎合は䞖界䞭で同じ問題に誰かがぶ぀かっおいお、Stackoverflowなどで英語で質問回答がなされおいるこずが倚いので、日本語より英語でググる方がいい結果がでたりしたすdoesn't workやnot working, disable xxx, how to ~みたいな蚀い回しをよく䜿いたす。

公匏ドキュメントから情報を探す

ググるこずの問題は叀い情報や誀情報がヒットしたりするこずで、頻繁にアップデヌトがある蚀語やシステムだず䞀床公匏ドキュメントを開いおその䞭で怜玢するか、もしくはサむト内怜玢は䜿えるレベルでないこずも倚いので各カテゎリヌを俯瞰し1぀ず぀理解しながらほしい情報がどこにあるかを芋極めおいくしかないですかね。 よく「公匏ドキュメントで殎る」ず蚀うように、初孊者にずっお公匏ドキュメントはずっ぀きづらいです。基本は熟緎者や玄人がすぐに仕様ややり方を参照できるように䜜っおあるので、Webやプログラミングの基瀎知識、別蚀語での実装経隓などがないず専門甚語だらけでいきなり眮いおけがりにされたす。 なので最初はQiitaやググっお出おきた個人ブログを頌りに理解しおいくしかないですが、「公匏ドキュメントをちゃんず読めおなくおやり方を間違っおいた」ずいうのはよくあるので、解決しないたびに頑匵っお䞀床は芋に行っおみお党䜓を理解する癖を぀けるようにした方がいいかず思いたす。 未だに僕も公匏ドキュメントは蟛いし、あんなの1から順番に読むのはホント匷匷じゃないず無理なのでは‥。

チュヌトリアルを詊す

WordPressだずチュヌトリアルずかそういったのは無いですが、䟋えば誰かが䞊手く蚀ったブログややり方を曞いおいたら、䞀旊自分の仕様は無芖しおその人ず同じ通りやっおみる。これで動けば蚀語やプラットフォヌムの仕様が倉わったり、自分の環境構築に問題があるわけではないこずがわかりたす。

最䜎限の実装で詊す

䜜りたいものや実装したい機胜があるずき、なるべくたず最䜎限の実装を順番にしおいくずミスや゚ラヌを防ぎやすいです。ToDoアプリを䜜っおいるならこんな感じ。
  1. 入力フォヌムを1぀だけ衚瀺する
  2. 入力されたデヌタをデヌタベヌスに保存するセキュリティ蚭定はただしない
  3. そのデヌタを画面䞊で衚瀺するナヌザヌによるフィルタヌなどはただかけない
Git管理をしおいるなら、1, 2, 3のたびにコミットをしおおくず先々䞊手く動かなくなったずきに「ここたでは正垞に動いおいる」ずいうずころたですぐ戻れるので、早めにGitは導入した方がいいでしょうね。

キャッシュを消したり゚ディタヌを開き盎す

システムや゚ディタヌも䞇胜ではないので、昔の叀いファむルが残っおいるずかあるあるです。WordPressでいうずキャッシュや圧瞮系のプラグむンをすべお停止し、サヌバヌ偎のキャッシュもクリアしおみるずか。iOS開発でいうずXcodeを開き盎したりクリヌンビルドしおみたり、DerivedDataを消したりずかですね。

環境やラむブラリをむンストヌルし盎す

なんか色々やりながら䜜っおたら「䞀芋問題なさそうなコヌドなんだけど゚ラヌが出る」ずかで23日も解決しないこずがよくありたす。WordPressだずいろんな䌚員システム系のプラグむン入れお倉な固定ペヌゞやフィヌルド欄が沢山できおしたったずか、プログラミングだずむンストヌルしたラむブラリのバヌゞョンが違うずか、ググっお出おきた方法を詊しおデヌタベヌスや蚭定、スキヌマがぐちゃぐちゃずか。こういう時は1からむンストヌルし盎した方が早かったりしたす。

サヌバヌのメンテやダりンを疑う

サヌバヌの管理画面でメンテのお知らせがないか芋たり、Twitterでサヌバヌ名で怜玢したり。ごくたれにChromeブラりザのアップデヌトによる䞍具合ずかもありたす。たたあんたり蚀いにくいですが、お花の名前のサヌバヌはよくメンテなどで関係ない郚分にも䞍具合でるずか倚い‥。

teratailで質問する

もう1日栌闘しおもわからんずいう時は職堎の先茩・䞊叞やメンタヌがいない堎合はteratailで質問するのもありです。ただ結構「背景・環境・詊したこず・問題のコヌド」など回答者が正確に状況を把握するために敎理するこずが倚いので30分ずかかかりたす雑な聞き方だず偉い人たちに叱られたす😃。 なので質問するのも面倒なのですが、質問文を敎理する䞭で解決のヒントや原因、ただ詊しおないこずなどが芋えるこずもあるので、2日以䞊ググり続けるよりは聞いちゃうのがおすすめです。 ただすごい人ほどコミュニケヌションがツンケンしたりするので、顔の芋えないネット䞊のやりずりですし「優しい人に答えおもらえたらラッキヌ」くらいの気持ちでやるのがいいかずただし芪身になっおもらった人には感謝の気持ちを䌝える姿勢を忘れずに。

寝る

人間寝たら思考が敎理されるので、翌朝にあっさり解決するずいうのはあるあるです。22時以降ずか、深倜垯に頭もあたり回っおいないなかでググったりコヌド芋おもいいこずないので朔く寝たしょう。 クラむアントさんぞの玍品期限ずかあるかもですが、寝がけおサむトやシステムを壊しお二次被害を起こすず本末転倒なので、䞀旊20時くらいで「こうこうこういう理由で今日は厳しい可胜性が高いです‥」ず正盎に早めにお䌝えしおおくず気持ち的にも楜です。 開発者やWeb担圓者だけでなく、サヌバヌやブラりザ、WPなどのプラットフォヌム、䜿甚するプラグむンやラむブラリなど、あらゆるずころに䞍具合の皮があり、たたシステムずはやはりバグは避けられない銀行システムや医療システムずかの重みを感じる‥ので、予めそういうものだずいう認識を自身ずクラむアントさん双方が持っお眮けるずスムヌズにお仕事できるず思いたす。

最埌に

色々曞きたしたが、僕もこの考え方が䞀般的なのか、匷匷゚ンゞニアからみおどうなのかずかよくわかりたせん。ただ「䜜りたいものがあっお、そのための道䞭で遭遇したバグやトラブルに向き合う䞭で、そもそものWebの仕組みや蚀語の深い仕様などを孊ぶ機䌚になり、それが本質的なスキルアップに繋がる」のだずはやっおお感じたす。なので教科曞を芋ながら䜓系的に孊ぶよりも、これの繰り返しで成長できるず思っお長い時間をかけおやっおけばいいのではないでしょうか少なくずも僕はそっち掟です