• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

Web制作の現場から、JavascriptやPHPの「デバッグ」について考える

2021年9月14日

  • このエントリーをはてなブックマークに追加

こんにちは!
WebXRクリエイターの伊東(@ALAKIWebVRAR1)です。

※TwitterでもWebXRの事を中心に情報発信中です。
よかったらフォローお願いします!
Follow @ALAKIWebVRAR1

Web制作の現場において、コーディング時にプログラムの不具合等に遭遇することがあります。
その際、ただ闇雲に手当たり次第プログラムを調整して、デバッグ作業に相当な時間を費やしてしまった経験がある方もいらっしゃるのではないでしょうか。

ALAKIでは、そのような生産性の低い状態に陥らないよう、社内向けに「デバッグについてのガイドライン」を整備しています。

日々業務効率化に奮闘されている開発者のみなさんに少しでもお役立ちできればと思い、今回はその一部を公開したいと思います。

この記事の目次

  • 1 【フェーズ1】不具合を可視化する
  • 2 【フェーズ2】原因を特定する
  • 3 【フェーズ3】解決策を実施する
  • 4 最後に

【フェーズ1】不具合を可視化する

不具合が起きた時にその問題に対処することが難しいと感じる場合、よくあるのが「何が原因で不具合が起きているのかすらわからない」という状況です。この状態でどんな対策をとっても、ほとんどの場合があてずっぽうになってしまって効率が悪いです。まずはさまざまな方法を使って「不具合を可視化」しましょう。

①Consoleを確認する

Javascriptが原因の不具合の場合、Google Chromeの標準機能である「DevTools」の「Console」の部分にエラー表示が出ているか確認しましょう。

②変数、関数の実行結果を出力する

Javascriptであれば「console.log( … )」コンソールログにエラーを表示し、PHPであれば「var_dump( … )」を使用することで変数、関数の実行結果をブラウザ上に可視化することができます。

③スマホ(iPhone)実機のエラーを確認する

iPhoneとMac端末を有線で接続し、PC側のSafariでデバッグを行うことができます。

※詳しくはこちら
https://qiita.com/unsoluble_sugar/items/2a3d06631a6b8259dc44

④プラグインや関数が用意している、エラー時のコールバックを活用する

例えばjQueryのajaxの構文には、「通信が失敗した時に発火するイベント」が用意されています。そのイベントが発火した際に実行する関数を設定し、console.log()等でエラーの内容を表示することも可能です。

ajax以外にも、さまざまなプラグインにも用意されているケースが多いので、調べてみてください。

※ajaxのエラー構文に関して詳しくはこちら
https://js.studio-kingdom.com/jquery/ajax/ajax

【フェーズ2】原因を特定する

不具合が可視化されてくると、可視化された情報の中でも「直接的に不具合に影響がありそうなもの」と「不具合に影響がなさそうなもの」が見えてきます。影響度が高そうなものから、不具合の直接的な原因を特定するための作業を行います。

※【フェーズ3】で実施する解決策がすぐに実行できるものの場合は、【フェーズ2】をとばすこともあります。

①怪しい部分のコードを消してみる

例えば、if分の中身の記述が実行されていないような不具合の場合、そのif文を消してみて中身のプログラムのみにしたら実行されるのかとか、コンソールエラーを吐き出しているコードを消したら、それより下のプログラムは正常に実行されるのか、など、検討をつけているプログラムが確実に影響していることを確認します。

②プログラムの「実行順」を疑ってみる

不具合の現象とは直接関係なさそうなプログラムでも、そのプログラムが原因でそれ以降の処理が止まってしまっている、といったことはよくあります。【フェーズ1】で見えてきたエラーコードが直接不具合の現象とは関係がない場合でも、プログラムの実行順などで干渉しているケースを疑います。

実行順に関しては、単純にプログラムの記述の順番ではないことがあるので注意してください。例えば、関数として上の方に宣言されていても、その関数を呼び出す記述がなければ関数内のプログラムは実行されませんし、ajaxのように非同期であれば同時に処理が走っていたりする可能性があります。

③変数の「スコープ」を疑ってみる

変数とは、その名の通り「値が変化するデータの入れ物」であり、その中身に入った値は、プログラム内のあらゆるところで代入されて変化します。

その変化の値を、どの範囲まで保つのかという概念が「スコープ」です。

開発者の意図しないような値が扱われている場合には、「スコープ」による原因を疑ってみてください。

※Javascriptのスコープ
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/var

※PHPのスコープ
https://www.php.net/manual/ja/language.variables.scope.php

【フェーズ3】解決策を実施する

【フェーズ1】【フェーズ2】までで不具合の原因を明確に特定することができたら、ほとんどの場合は「エラーコード」や「解決策の実装方法」で検索して実施内容を見つけることができると思います。

逆に、明確に何を調べていいのかわからない場合は、【フェーズ1】【フェーズ2】で問題の切り分けができていない状態の可能性がありますので、可能な限り可視化して特定、ということを徹底しましょう。

最後に

ALAKIでは、これからどんどん海外に向けたビジネスを展開していきます。
クリエイティブ業務における修正依頼にかかる時間を1/5にできる自社サービス「MONJI」は海外のユーザー様にも好評です。

以下のサイトより、超直感的な修正依頼をぜひ体験してみてください!

■MONJI サービス紹介サイト
https://monji.tech/ja/

また最近では、閲覧しているサイトから修正依頼を1クリックで作成可能なChrome拡張機能「MONJI-izm」をリリースしました。
従来の読み込みと比較すると、読み込み速度が2倍に高速化。あっという間に読み込みが完了します。
これまでにない、爆速な読み込みを体験してみてください!

■MONJI Chrome拡張機能「MONJI-izm」
https://chrome.google.com/webstore/detail/monji–izm/mbcmpffcfjglebcgpgecadkoopogabka?hl=ja
※Chrome ウェブストアのページが開きます

ALAKI株式会社では、「MONJI」をはじめとするサービスで世界中に価値を提供するため、一緒に大きな目標に挑戦する仲間を募集中です!
さまざまな国で、さまざまな人たちと、ワクワクするビジネスに挑戦したい方のご応募をお待ちしております!

■ALAKI リクルートサイト
https://recruit.alaki.co.jp/

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • PAK_PHPS9V9A6862_TP_V

    LaravelのクエリビルダでFROM句にサブクエリを利用する方法

    10 4月, 2019

  • 14800708_xl

    Macにおける、簡単ローカル環境のすすめ-Virtual Host編-

    30 6月, 2017

  • 13993703_xxl

    PHPで配列をテキストに結合する方法

    13 1月, 2017

  • Next story 実務で使うWebARのチェックポイント
  • Previous story AR(WebAR)の導入事例をご紹介!〜EC × AR〜

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.