Chrome DevTools [ソフトウェア研究室]

 こんにちは!
 ナビゲーターのEVEです。

 本日は、予定していた中小企業診断士 事例問題ではなく、Chrome DevToolsの調査結果についてご報告します。
 現在、ログイン画面を突貫作業で作っているという話をしましたが、クライアント側に時間がかかっています。理由は、主要なプログラムをオブジェクト指向言語で作っているのですが、同プログラムをデバックするのは従来のalert文のみのデバックでは限界を感じたから・・・。しかも、継承が入ってくるともうどこでどんなことが起こっているのか分かりません!突貫工事と言いながら、遅々と進まないログイン画面の製造の進捗を一気に進めるために、Chrome DevToolsを利用することにしました。

[Chrome DevTools(クローム・デブツール)]

 以下が、ChatGPTからの、Chrome DevToolsの解説です。Geminiじゃなくって、ChatGPTなんだっけ?

 これは、ウェブページの開発やデバッグに役立つ一連のツールで、JavaScriptのコードのデバッグをはじめ、HTML、CSS、ネットワーク、パフォーマンスなど様々な面でサポートします。

特に、JavaScriptのデバッグには以下の機能が使われます:
- **Console**: エラーメッセージやログを表示
- **Debugger**: ブレークポイントを設定し、コードをステップ実行
- **Network**: ネットワーク通信の監視
- **Sources**: ソースコードの表示、編集、デバッグ


[1ステップずつデバックする]

 一番使いそうな機能としては、デバッカーがあります。Visual StudioEclipse同様に、ステップインしてから、1ステップずつプログラムを移動し、そして、その中の変数の値を見ることができるようです。以下が、その概要についてまとめたものです。

 以下の流れで、1ステップずつ、JavaScriptをデバックすることができます。

1)当該HTML画面を表示し、表示した画面において、[F12]を押下することにより、クローム・デブツールを起動することができます。
2)上部メニューからソースを選択する。
3)選択したソースから、デバック対象のプログラムを開く。
4)表示したプログラムの行番号をクリックしマーキングする。
 →4)でマーキングしたところが、ステップイン行になります。

 以下に1ステップずつデバックする上で、必要な機能を記します。
・ステップイン(F11)
 現在実行している関数の中に入って、さらにステップ実行を行います。もし関数が呼ばれていれば、関数内に入ってそのコードも1行ずつ確認できます。

・ステップオーバー(F10)
 現在の関数の中のコードを1行ずつ実行しますが、関数内には入らず、関数呼び出しをスキップします。

・ステップアウト
 Shift + F11
 現在の関数から抜け出して、呼び出し元に戻ります。

・処理の再開(F8)
 
 コードの実行を再開し、次のブレークポイントまで実行されます。

・処理の終了
 ブラウザのページをリロードまたは、DevToolsの「停止」ボタン(四角形のアイコン)をクリックすることで、現在のデバッグセッションを終了できます。


[その他の機能をメニューから類推する]

 1ステップずつデバックする機能が一番利用しそうなのですが、それ以外に使えそうな機能がないか、メニューからの概要から考察してみたいと思います。まず最初に上部メニューには、どんな機能があるのか、Geminiに聞いてみましょう

 Chrome Chrome DevToolsの各項目の機能について説明します。

■要素
・HTMLとCSSの確認と編集:ウェブページのHTML構造とCSSスタイルをリアルタイムで確認・編集できます。
・レイアウトとスタイルのデバッグ:要素のボックスモデルやスタイルの問題を特定し、修正できます。
・DOM操作:JavaScriptを使用してDOM(Document Object Model)を操作し、ウェブページの動的な変更を試すことができます。

■コンソール
・JavaScriptのログ出力:console.log()などのメソッドを使用して、JavaScriptの実行中に変数の値やメッセージを出力できます。
・JavaScriptの実行とデバッグ:コンソール上でJavaScriptコードを直接実行したり、エラーメッセージを確認してデバッグしたりできます。
・エラーと警告の確認:ウェブページで発生したJavaScriptのエラーや警告が表示されます。

■ソース
・JavaScriptとCSSのデバッグ:JavaScriptやCSSのソースコードを表示し、ブレークポイントを設定してステップ実行によるデバッグができます。
・ファイルの編集と保存:ソースコードを直接編集し、変更を保存できます。
・ワークスペース:ローカルファイルとウェブページをマッピングし、編集内容をリアルタイムで反映させることができます。

■ネットワーク
・ネットワークリクエストの監視:ウェブページがサーバーとの間で送受信するすべてのリクエストとレスポンスを監視できます。
・パフォーマンス分析:リクエストのタイミング、サイズ、時間などを分析し、ウェブページのパフォーマンスボトルネックを特定できます。
・リクエストの編集と再送信:リクエストヘッダーやボディを編集し、再送信してサーバーの応答を確認できます。

■パフォーマンス
・ウェブページのパフォーマンス分析:ウェブページの読み込み、スクリプト実行、レンダリングなどのパフォーマンスを詳細に分析できます。
・ボトルネックの特定:パフォーマンスのボトルネックとなっている箇所を特定し、改善策を見つけることができます。
・フレームレートの計測:アニメーションやスクロールなどのフレームレートを計測し、滑らかなユーザー体験を実現するための改善に役立てられます。

■メモリ
・メモリリークの検出:JavaScriptのメモリ使用量を監視し、メモリリークを検出できます。
・ヒープスナップショット:JavaScriptオブジェクトのメモリ使用状況をスナップショットとして取得し、分析できます。
・メモリプロファイリング:時間の経過に伴うメモリ使用量の変化をプロファイリングし、メモリ効率の改善に役立てられます。

■アプリケーション
・ストレージの管理:LocalStorage、SessionStorage、IndexedDBなどのストレージを管理できます。
・キャッシュの管理:アプリケーションキャッシュやサービスワーカーキャッシュを管理できます。
・マニフェストの確認:ウェブアプリマニフェストを確認し、PWA(Progressive Web Apps)のデバッグに役立てられます。

■セキュリティ
・セキュリティ問題の検出:HTTPSの設定、混合コンテンツ、証明書の問題など、ウェブページのセキュリティに関する問題を検出できます。
・証明書の確認:ウェブサイトのSSL/TLS証明書を確認し、安全な接続を確保できます。
・セキュリティポリシーの確認:コンテンツセキュリティポリシー(CSP)を確認し、クロスサイトスクリプティング(XSS)などの攻撃を防ぐための設定を確認できます。

■Lighthouseレポート
・ウェブページのパフォーマンス、アクセシビリティ、SEO、PWAなどの品質を評価し、改善点を提案します。
・Googleが推奨するベストプラクティスに基づいたレポートを提供します。
・ウェブページの品質向上に役立つ具体的な改善策を提供します。

■レコーダー
・ユーザー操作の記録と再生:ウェブページ上でのユーザー操作(クリック、スクロール、フォーム入力など)を記録し、再生できます。
・テストの自動化:記録した操作を元に、テストを自動化できます。
・パフォーマンス分析:記録した操作の実行時間を計測し、パフォーマンス分析に役立てられます。

これらのツールを組み合わせることで、ウェブページの開発、デバッグ、パフォーマンス改善、セキュリティ強化など、さまざまな作業を効率的に行うことができます。

 そして、下部のテキストエリアにあるメニューについて解説をしてもらいましょう!
 Chrome DevToolsの下部にあるtextareaと、そのメニュー項目の機能について説明します。このtextareaは、主にコンソールパネルで使用され、JavaScriptコードの実行やログの表示などに使われます。メニュー項目は、そのtextareaの機能を拡張したり、関連する情報を提供したりするためのものです。

■コンソール
・この項目は、コンソールパネルの主要な機能を提供します。
・JavaScriptコードの実行、ログの表示、エラーメッセージの確認など、開発中のウェブページのデバッグに必要な機能が集約されています。
・textareaに入力したJavaScriptコードを評価し、結果をコンソールに表示します。
・また、ウェブページで発生したエラーや警告、console.log()などで出力されたログもここに表示されます。

■新機能:
・この項目は、DevToolsに追加された新しい機能や変更点に関する情報を提供します。
・最新のアップデート内容や、新しいツールの使い方などを確認できます。
・これにより、常に最新のDevToolsの機能を活用することができます。

■AIアシスタンス
・この項目は、AIを活用したDevToolsの機能を提供します。
・例えば、AIがコードの提案やデバッグの支援などを行うことがあります。
・AIの力を借りることで、より効率的に開発作業を進めることができます。

■検索
・この項目は、DevTools内でテキスト検索を行う機能を提供します。
・ソースコード、ログ、ネットワークリクエストなど、DevTools内のあらゆる情報を検索できます。
・特定の文字列やコードを探す際に役立ちます。

■問題
・この項目は、ウェブページで発生している可能性のある問題を検出して表示します。
・セキュリティの問題、パフォーマンスの問題、アクセシビリティの問題など、さまざまな種類の問題が表示されます。
・問題を解決するためのヒントや、関連する情報へのリンクも提供されます。

■デベロッパーツール:
・デベロッパーツール自体の設定や情報にアクセスできます。
・デベロッパーツールの設定を変更したり、ドキュメントやヘルプにアクセスしたりすることができます。

 これらのメニュー項目を使いこなすことで、ウェブページの開発効率を大幅に向上させることができます。

なお、AIアシスタンスなのですが、英語のみ対応なようです。Chrome DevToolsの上部の歯車マークの設定から、日本語から英語に変更することにより利用することができます。多分、使い慣れてから、使用言語を日本語から英語に変更し、AIアシスタンスを利用することになると思います。

[あとがき]

 一応押さえたい情報は押さえました。このブログ更新後早速、クライアント側の製造に入ります。

 では、また!


コメント