開発者なら誰でも経験があります。デバッグに集中している最中に、JWTを素早く解析したい、圧縮されたJSONを整形したい、HTTPステータス422が何を意味するのか確認したい——気がつけばブラウザタブが5枚開いていて、StackOverflowを検索し、スニペットをコピーし、本来直そうとしていた問題を見失っている。
実際のところ、こうした細かいタスクのほとんどは、ツールのインストールもローカルスクリプトも有料サブスクも必要ありません。ブラウザ自体が史上最強クラスの開発環境です。あとはどのツールに手を伸ばすかを知っているかどうかだけです。
ブラウザ上で直接片付けられる生産性ハックを10個紹介します。それぞれが開発フローの中で実際に発生する痛点を狙い撃ちにしています。
1. JSON構造を当てずっぽうで読まない——ワンクリックで整形
圧縮されたJSONをエディタに貼り付けて頭の中で構造を追うのは苦行です。圧縮JSONは基本的に読めません:{"user":{"id":42,"name":"Alice","roles":["admin","editor"]},"token":"abc123"}
ブラウザ版のJSON フォーマッターはワンクリックでこれをインデント付きの色分けされたツリーに変換します。本当に時間を節約してくれるのは見た目だけではありません——優れたフォーマッターはJSONを検証して構文エラーの位置を指摘してくれるので、Unexpected tokenという典型的な袋小路にハマらずに済みます。
ハック:APIレスポンスのデバッグを始める前に、必ずまずフォーマッターを通すこと。構造的な問題(ネストの間違い、末尾カンマ、引用符のないキー)が20分ではなく5秒で見つかります。
おまけ:折りたためるツリービューで200行の大きなペイロードでも探したいキーまで素早くナビゲートでき、手動スクロールが要りません。
2. ライブラリなしでJWTをデコード
JWTはどこにでもありますが、デコードしないと完全に不透明です。本番環境で認証バグに見舞われたとき、トークンの中身を確認するためだけにbase64デコード関数を書いたり、ライブラリをインストールしたりするのは避けたいところです。
ブラウザ版のJWT デコーダーは任意のJWT文字列を入れるとすぐに以下を表示します。
- Header — アルゴリズムとトークンタイプ
- Payload —
iat、exp、subを含むすべてのクレーム、カスタムクレームも - Signature — 目視確認用(完全な暗号検証にはシークレットが必要)
ハック:Networkタブ(またはconsole.log)からJWTをコピーしてデコーダーに貼り付け、まずexpクレームを確認すること。「認証が通らない」バグの半分は単なるトークン期限切れです。10秒以内に判明します。
もう一つ便利な使い方:iss(発行者)とaud(受信者)クレームがバックエンドの期待値と一致するか確認すること。aud不一致は静かな401の典型的な原因です。
3. ワンクリックでUUIDを生成
データベースのテストレコード、ダミーユーザー、プレースホルダエンティティ用のIDを生成するためだけに、何回import uuid from 'uuid'を書いてきたでしょうか。あるいは、もっと悪いことに、どこかからUUIDをコピペして複数のテストfixtureで使い回したことは?
テストでIDを使い回すと、テストケース間に隠れた結合が生まれます。必要なときにUUID ジェネレーターで新しいUUIDを取得しましょう。V4(ランダム)はほとんどのテストデータに十分です。V5(名前空間 + 名前ハッシュ)は既知の入力から決定的なIDが必要な場合に役立ちます。
ハック:テストを書いている間はUUIDジェネレーターのタブを開きっぱなしにしておくこと。新しいfixture、新しいエンティティ、新しい行——そのたびに新しいUUID。2秒で済んで、テスト汚染バグの一カテゴリ全体を予防できます。
4. クエリストリングを壊さずにURLをエンコード/デコード
URLエンコードは見た目はシンプルですが、痛い目を見るまでその複雑さに気づきません。クエリパラメータに空白や特殊文字を含むURLを渡せば、%20、+、%2Bがコンテキストによって全く別物だということをすぐに学ぶことになります。
URL エンコード / デコードツールで以下ができます。
- 任意の文字列をクエリパラメータに埋め込む前にエンコード
- 外部システムから受け取ったパーセントエンコード文字列をデコード
%E2%80%94が実際何なのか即座に確認(ちなみにem dashです)
ハック:呼び出しているAPIから400 Bad Requestが返ってきたら、URL全体をデコーダーに貼り付けること。二重エンコード(%20であるべきところが%2520)や、リクエスト解析を壊す未エンコードの特殊文字があるかどうかが一目でわかります。
5. 正規表現を書かずに文字列の大小変換
命名規則はシステムごとにバラバラです。データベースはsnake_case、APIはcamelCaseを返し、設定ファイルはSCREAMING_SNAKE_CASE、フロントエンドコンポーネントはPascalCaseを要求します。最終的にはフィールドのバッチリネームのためにsedコマンドや正規表現を書く羽目になります。
テキストケース変換はこれを全部一発でこなします:camelCase、PascalCase、snake_case、kebab-case、UPPER_CASE、Title Case——目的のフォーマットを選んで入力を貼り付けるだけ。
ハック:命名規則の異なる2つのシステムをマッピングするとき、フィールドリストをまとめて変換すること。20個のフィールド名を貼り付けて一気に変換し、結果をマッピング層にコピー。正規表現もループもタイポもありません。
6. コミットせずにMarkdownをプレビュー
ドキュメント、README、GitHubイシュー、PRコメントを書くときは、入力とプレビューの間を行ったり来たりすることになります。レンダリング結果を見るためだけにコミットするのは遅い。GitHubのmarkdownプレビューはまずまずですが、適切なエディタモードにいる必要があります。
ブラウザ版のMarkdown プレビューは、入力しながらリアルタイムで左右分割表示してくれます。変更は即座に反映されます。
ハック:長いPR説明や技術ドキュメントは、コミットや公開の前にプレビューアでドラフトを書くこと。見出し、コードブロック、テーブル、リストの最終的な見た目が事前にわかります。特にテーブルは細かいズレ(パイプの位置ずれ、ヘッダー区切りの抜け)が起きやすいので便利です。
7. 本番投入前に正規表現を理解する
おなじみのジョークがあります:正規表現で問題を解決しようとすると、問題が2つに増える、というやつです。本当の問題は正規表現が難しいことではなく、不透明だということです。パターンを書いて実行し、失敗したら入力文字列とパターンを交互に見つめて天啓を待つしかない。
ビジュアルな正規表現テスターは、入力のどの部分がマッチしたか、どのグループがキャプチャされたか、どのフラグ(global、case-insensitive、multiline)が動作を変えるかをリアルタイムで表示してくれます。
ハック:本番コードに正規表現を入れる前に、想定される入力範囲を全部テストすること——特にエッジケースや不正な入力を含めて。具体的には「何もマッチしない場合」に何が起こるかを必ず確認すること。正規表現の失敗によるnull処理バグは意外なほど多く、デバッグも厄介です。
8. リポジトリを開かずにファイルや文字列を比較
すべての差分にgit diffが必要なわけではありません。2つの設定ファイル、2つのAPIレスポンス、2つのSQLクエリ——どこが変わったかだけ知りたい。リポジトリを開いてブランチを作ってコミットして……は明らかに大げさです。
ブラウザ版のテキスト差分チェッカーは、任意の2つのテキスト入力を並列または行内で差分表示してくれます。文字レベルのハイライト付きです。
ハック:「先週まで動いてた」というバグ報告が来たら、古い設定と新しい設定を差分ツールに貼り付けること。変わった行が大抵犯人です。誰のせいかを追ったり、履歴を遡ったり、Gitを使ったりする必要はありません——特にバージョン管理されていないシステムのファイルを比較するときに重宝します。
9. ブラウザで直接ハッシュを計算
ファイルのチェックサムを検証したい、ハッシュロジックの出力が正しいかテストしたい、テスト入力のSHA-256をサッと生成したい。ターミナルでecho -n "hello" | sha256sumを叩くのもいいですが、すでにブラウザの中にいるわけです。
ハッシュジェネレーターはMD5、SHA-1、SHA-256、SHA-512などをサポート。テキストを入れれば即ハッシュが返ってきます。すべてクライアントサイド処理です。
ハック:既知のベースラインに対してアプリケーションのハッシュ実装が正しいか検証するのに使えます。ブラウザで期待値ハッシュを生成し、コードの出力と照合する。差分が出る原因はアルゴリズムのバグよりも、エンコードの違い(UTF-8対Latin-1、改行コード、空白文字)の方が多いです。
10. Cron式を自然言語でパース
Cron構文は情報密度が高いことで有名です。0 */6 * * 1-5——平日の6時間ごと?毎月6日の平日の毎時間?大半の開発者はリファレンスなしでCronを正確に読めません。
Cron 式パーサーは任意のcron式を自然言語の説明に翻訳し、次の数回分の実行予定時刻を表示してくれます。ドロップダウンから式を組み立てたい場合にも対応しています。
ハック:cronジョブを本番に投入する前に、式をパーサーに貼り付けて自然言語の出力を注意深く読むこと。具体的に確認するポイント:メンテナンスウィンドウに被っていないか、意図したより頻繁に動いていないか、毎日動かしたいのに週末をスキップしていないか。
全体像:摩擦のないツール群
この10個のハックには共通点があります——本来集中を中断するはずだったタスクから摩擦を取り除いている、ということです。ターミナルを開いてコマンドを打って出力を待ってエディタに戻る——このコンテキストスイッチは、操作そのものよりも長い時間を奪います。ブラウザツールを使えばフローに留まれます。
見落とされがちなもう一つのメリットがあります——プライバシーです。クライアントサイドのブラウザツールでデータを処理すると、サーバーには何も送信されません。本物のユーザーデータが入った本番JSON?ブラウザの中に留まります。デバッグ中のJWT?マシンから外に出ません。セキュリティに敏感な開発作業では、これは重要です。
最良の開発環境に儀式は要りません。すでに作業している場所で待機していて、用が済んだら邪魔にならない。ブラウザもそうした環境になり得ます——適切なツールを揃えていればの話ですが。
ZeroToolをブックマークして、まずブラウザツールに手を伸ばす習慣をつけましょう。インストールは後でも構いません。