AI Coding Glossary
開発初心者が覚えておきたいIT専門用語
筆者含め、Claude CodeやCodexなどのAIをフル活用し、プログラミングやWeb制作を進める人が急増している。コードの作成や修正はもちろん、エラーの原因調査から解決まで、初心者でもあらゆることができてしまう時代。正直、もうAIなしでのコーディングなんて考えられない状態になってしまった。
ただ注意しておきたいのは、「AIを使えば何も知らなくていい」というわけではないということ。
むしろ、一定のITリテラシーを持っているかどうかで、AIへの質問の質や返ってくる回答の理解度が大きく変わる。特にセキュリティ面が重要で、何でもかんでも「YES」を連発するのは危険すぎる。
ということで本記事では、AIで開発を始める初心者が覚えておきたい専門用語をリストアップしていく。(随時更新予定)
最初から完璧に理解しようとせず、各用語の意味がなんとなくわかればOK、くらいの気持ちで読んでみてほしい。
該当する用語がありません。
ローカル環境(Local Environment)

自分の手元のパソコン(PC)の中の環境のこと。単に「ローカル」と呼ばれることも多い。
反対に、インターネット上の空間のことを「サーバー」と呼んで区別する。
「ローカルでテストする」「ローカルにあるファイルを読み込む」というのは、わざわざインターネット上に公開して他の人がアクセスできる状態にしなくても、自分の手元のPCの中だけでアプリが動いている状態のこと。
AIと一緒にプログラミングをするときも、まずはこの「ローカル環境」の中でテストしながら作り込み、完成してからインターネット上(サーバー)に公開していくのが基本になる。
GUI(Graphical User Interface)

日常的にスマホやPCで目にする、ボタンのクリックやドラッグ&ドロップができる画面はすべてGUIにあたる。
反対に、後述するCLI(文字のコマンドだけで操作する画面)とよく比較して使われる。
CLI(Command Line Interface)

普段使っているGUI(マウスやタップで操作する画面)の反対にあたる。AIコーディングでは、後述の「ターミナル」というツールを使ってCLI操作を行う場面が頻出する。はじめは黒い画面に文字が羅列されていてとっつきにくく感じるが、開発には欠かせない。
IDE(Integrated Development Environment)

プログラミング(コードを書く作業)をするための高機能な作業ツールのこと。
日本語に訳すと「統合開発環境」となり、「コードエディタ」「エディタ」と呼ばれることもある。
普通のメモ帳と違い、コードの自動補完やエラー箇所のお知らせ、ファイルごとの管理などを一括で行え、開発を劇的に楽にする機能が詰め込まれている。代表的なものに「VS Code」や、AI内蔵型の「Cursor」がある(Cursorは筆者のお気に入りのツール)。
VS Code(Visual Studio Code)

Microsoftが無料で提供している、世界中で最も使われている代表的なIDE(コードエディタ)のこと。
公式(ダウンロード)サイト:https://code.visualstudio.com/

とにかく動作が軽くて使いやすく、デザインの変更やAI補助などの「拡張機能」が豊富に揃っているのが特徴。プログラミングを始めるとき、特別な理由がなければ、まずはこれをダウンロードしておけば間違いないと言える定番ツール。
ターミナル(Terminal)

PCに直接命令(コマンド)を打ち込んで操作するためのツールのこと。
いわゆる「黒い画面」と呼ばれることが多く、文字だけでやり取りを行う(CLI)。

Windowsの「コマンドプロンプト」やMacの「ターミナル.app」が最初から入っているほか、VS CodeなどのIDEの中にも内蔵されており、その場合は黒い画面ではないこともある。ファイルの作成や移動、開発ツールのインストール、サーバーへの接続など、AI開発を進めるうえで避けては通れない重要な作業場所となる。
PowerShell


古くからあるWindowsの「コマンドプロンプト」のパワーアップ版(上位互換)にあたり、より複雑な指示が出せるようになっている。AIコーディングでWindowsを使う場合、コマンドプロンプトではなくこちらのPowerShellを開くように指示されることが多い。コマンドプロンプトより新しいターミナルで、実質上位互換的に使える。
ディレクトリ(Directory)

WindowsやMacの画面上(GUI)で見るときは「フォルダ」と呼ぶのが一般的だが、ターミナルの文字画面(CLI)からコンピュータの構造として扱うときは「ディレクトリ」と呼ばれることが多い。
難しい話は置いておいて、まずは「ディレクトリといえばフォルダのこと」と考えてしまって全く問題ない。
パス(Path)

ファイルやディレクトリ(フォルダ)の場所を示す「住所」のような文字列のこと。
システムやAIに対して「このファイルを読み込んで」「ここに保存して」と正確な場所を指示したいときに必ず使われる。

PC上のフォルダ内のファイルなら、上図のような文字列の連なりとして表せる。
9-1. 絶対パス(Absolute Path)と相対パス(Relative Path)
絶対パスとは、PC全体の中でその場所を一番上の階層から完全に指定する書き方のこと。
最初から最後までフルで住所を書くイメージ。
相対パスとは、今作業している場所を基準にして指定する書き方。
近くの場所を「隣の部屋」みたいに省略して表現するイメージ。
権限(パーミッション)

ファイルやディレクトリを「誰が」「どう操作できるか(読む・書き込む・実行するなど)」を決める許可証のこと。
ターミナル操作やAIの実行中に「Permission denied(権限がありません)」というエラーが出ることがよくある。
これは、スマホアプリで「写真へのアクセスを許可しますか?」と聞かれるのと同じイメージ。権限がないと勝手にファイルを書き換えられないようになっており、AIであってもPCの重要な部分を壊さないためのセキュリティの壁として働いている。
Git
ファイルの変更履歴を細かく記録・管理してくれる仕組みのこと。
ゲームの「セーブデータ機能」に近いイメージ。

間違えてコードを消してしまったり、エラーが出っ放しになって元に戻したくなったりしたときに、過去のセーブポイントから簡単に復元できる。AIコーディングは試行錯誤の連続になるし、誤って重要なコードやファイルを削除してしまうこともあるため、Gitでこまめに履歴を残しておくことが最大の防御になる。

具体的には、ターミナルで特定のコマンド(git log --oneline など)を打つと、セーブポイントの一覧が見られる。
さらに別のコマンドを打てば、セーブポイントまで戻ることもできる。
GitHub
Gitで記録した履歴やファイルを、インターネット上で保存・共有できるサービスのこと。
先ほどがセーブデータ機能なら、こちらは「クラウド上のセーブデータ保管庫」だと考えるとわかりやすい。

自分のPCが壊れてもデータが消えないのはもちろん、世界中の人が自分のコードを見たり、他の人のコードを参考にしたりできる(公開設定をPrivateにすることで非公開にできる。基本的にはPrivateを選ぶ)。AIツールの中には、このGitHubから直接コードを読み込んでくれるものもある。
リポジトリ(Repository)
GitやGitHubで、ファイルやその変更履歴をまとめて保存しておく「保管庫」のこと。
ディレクトリ(フォルダ)とよく似ているが、ただファイルが入っているだけでなく「いつ、誰が、何をどう変えたか」という歴史まで一緒に保存されているのが特徴。新しいアプリを作り始めるときは、「まずはリポジトリを作成する」ところからスタートするのが一般的だ。
コミット(Commit)

「ここまでの作業をひとまず確定!」と宣言して、歴史に1ページを刻むイメージ。このとき「ヘッダーの色を変えた」「ログイン機能を追加した」というようなメモ(コミットメッセージと呼ばれる)を一緒に残しておくことで、後から見返したときに何を変更したのかが一目でわかるようになる。

具体的には、上図のようにgit add .とgit commit -m "コミットメッセージ"を使ってセーブすることが多い。
ブランチ(Branch)

たとえば、本番用のコードはそのまま安全に保ちつつ、新機能の追加や大きな修正を別の作業ラインで進められる。もしその作業中に失敗しても、元の安定版にはすぐ影響しにくいため、AIと一緒に大胆な変更を試したいときにも非常に役立つ。
環境変数(Environment Variable)

システムやアプリの動作に必要な設定値を、コード本体とは別に持たせるための仕組みのこと。APIキー、データベースの接続情報、メール設定、本番環境か開発環境かの区別など、コードの中に直接書きたくない認証情報や設定値を外側から渡すためによく使われる。
.env

プロジェクト内に置かれることが多く、APIキー、データベース接続情報、メール設定などをコード本体から分けて管理するために使われる。ただし、置くだけで必ず自動読み込みされるわけではなく、フレームワークやライブラリ側の仕組みが必要になることもある。
本物のパスワードや秘密のキーが入ることが多いため、GitHubなどへ公開してはいけない。通常は.gitignoreで管理対象から外すが、フロントエンドではVITE_やNEXT_PUBLIC_付きの値がブラウザ側に見える場合がある点にも注意が必要。
API(Application Programming Interface)

例えば、自分の作ったアプリに「X(旧Twitter)のタイムラインを表示したい」とか「ChatGPTのAIを組み込みたい」と思ったとき、それぞれのサービスが用意しているAPIという窓口を通してデータをやり取りする。レストランでいうところの、注文を通して厨房に伝え、料理を運んでくれる「ウェイター」のような役割を果たしている。
HTTP / HTTPS(HyperText Transfer Protocol)
Webサイトを見たり、インターネット上でデータをやり取りしたりするための「通信のルール」のこと。
普段ブラウザでURLを見るときに先頭についている「http://」や「https://」のことである。
特に「HTTPS」の「S」はSecure(安全)の略で、通信が暗号化されていて誰かに覗き見されにくい状態であることを意味している。
現状、たいていのサイトは「https://」で始まるが、古いサイトなどは「http://」から始まっていることもある。こういったサイトは通信が暗号化されていないため、基本的にアクセスしない方がいい。
もちろん当サイト(https://noveblo.com/)は「https://」からはじまっているので、ご安心を!
データベース(Database)

単純なファイル保存とは違い、必要なデータだけをすばやく探したり、追加・更新・削除したりしやすいように作られている。AIを使ったアプリでも、ログイン情報、会話履歴、生成結果、設定情報などを保存したいなら、データベースの考え方がとても重要になる。
フロントエンド(Front-end)

Webサイトやアプリでいえば、文字の見た目、画像の配置、ボタン、フォーム、アニメーション、画面遷移など、ユーザーが実際に触れる部分がフロントエンドである。HTML、CSS、JavaScript の修正案は、この領域に関するものが多い。
バックエンド(Back-end)

レストランでたとえるなら、注文を受けたあとに料理を作る「厨房」や、材料を管理する「倉庫」のような役割にあたる。ログイン判定、会員情報の保存、注文データの記録、決済処理など、画面の裏で重要な仕事を担当している。
サーバー(Server)
インターネット上で、サービスやデータを提供する「24時間営業のパソコン」のこと。
通常パソコンというとモニターが付いてくるが、サーバーはモニターがない、というか不要なことが多い。(機械同士のやりとりが中心となるため)
私たちがスマホやPCから「このサイトを見せて」とお願いすると、サーバーがその要求を受け取り、必要な画像や文字のデータを送り返してくれる。ローカル環境(自分の手元のPC)で作ったアプリも、最終的にはこのサーバーに置くことで、初めて世界中の人がアクセスできるようになる。
IPアドレス(IP Address)
インターネット上の機器に割り当てられた「ネットワーク上の住所(番地)」のこと。
「192.168.1.1」のような数字の羅列で表される。ネットの世界で手紙(データ)を迷わず届けるために絶対必要な宛先だが、人間にとって数字の羅列は覚えにくいため、後述のDNSという仕組みと一緒に使われることが多い。
DNS(Domain Name System)

私たちは普段、google.com や example.com のような覚えやすい名前でWebサイトにアクセスしている。DNSは、その人間向けの名前と、コンピュータ向けの数字の住所を結びつける「インターネットの電話帳」のような仕組みである。
Webサイトの接続先だけでなく、メールの配送先、ドメイン所有確認、認証用の文字情報などにも関わる。DNS設定を変えてもすぐ全員に反映されないのは、各所にDNSキャッシュが残ることがあるためである。
キャッシュ(Cache)

一度読み込んだデータを一時保存して、次回からより速く表示・処理するための仕組みのこと。便利な仕組みである反面、開発中には「コードを直したのに画面が変わらない」「古い内容が表示される」といった原因にもなりやすい。
Cookie(クッキー)

一度ログインしたサイトに数日後アクセスしてもログイン状態が続いているのは、Cookie にセッションIDなどの「このユーザーを識別する手がかり」が保存されているからである。カートの中身、表示設定、言語設定、アクセス履歴の一部などが保存されることもある。
SSH(Secure Shell)
離れた場所にある別のパソコン(サーバーなど)を、ターミナルを使って安全に遠隔操作するための仕組みのこと。
ネットワークを通って別のPCに入りこむため、途中で誰かに覗き見されたりパスワードを盗まれたりしないよう、通信全体が強力に暗号化(Secure)されている。「ネット上を通る、防弾ガラス付きの専用トンネル」を作って安全に通信・命令を届けるイメージ。AIを使ってサーバーに直接コードをデプロイ(配置)する際などによく使われる。
Docker(ドッカー)

「自分のWindowsでは動いたのに、他の人のMacでは動かない」といった環境差の問題を減らすためによく使われる。アプリ本体、必要なツール、ライブラリ、設定などをコンテナとしてまとめ、開発者同士で近い環境を再現しやすくする。
ただし、Dockerを使えば何もかも完全に同じになるわけではない。ホストOS、CPU、ファイル権限、ネットワーク設定などの影響を受けることもあるため、「環境差を大きく減らしやすくする技術」と考えるとよい。
フレームワーク(Framework)

開発でも、認証、画面表示、ルーティング、データベース連携などを毎回ゼロから作るのではなく、よく使う仕組みがまとまった土台を利用すると効率化しやすい。React や Vue のようなUIライブラリ、Next.js や Nuxt のようなフレームワーク、Django や Laravel、Symfony などがよく話題に出る。
プロンプト(Prompt)
AIに対して出す「指示」や「質問文」のこと。
AIは非常に優秀だが、抽象的な指示(例:「いい感じのサイトを作って」)だと期待外れのものを返してきやすい。自分が作ってほしい「具体的な機能・デザイン・ルール」をプロンプトとして上手く伝えられるかどうかが、AIコーディングの成功を大きく左右する。
・・・というのが通例だったが、あまりに指示が細かい・具体的過ぎると、今度はAIの対応を制限してしまうことがある。プロンプトが短い方が、AIを柔軟に働かせられるという側面もあるため、一概にどのようなプロンプトがベストかは判断できなくなっている。
デバッグ(Debug)

プログラムに不具合があると、画面が崩れたり、ボタンが反応しなかったり、エラーが表示されたりする。そのときに「どこが原因か」を切り分けて調べ、問題を直していくのがデバッグである。AIが書いたコードでも、思った通りに一発で完璧に動くとは限らないため、AI時代でも重要な基本作業である。
リファクタリング(Refactoring)
プログラムの「外から見た動作(見た目や機能)」はそのままに、「内部のコード構造」だけを綺麗に整理整頓すること。
ごちゃごちゃになった配線を、綺麗に束ね直すようなイメージ。コードが散らかっていると、後から新しい機能を追加するときにAIが混乱したり、思わぬバグを生む原因になったりする。定期的にAIに「このコードをリファクタリングして」とお願いすることで、健康的なアプリの状態を保つことができる。
エラーログ(Error Log)

システムが残した「トラブルの記録メモ」であり、原因を調べるための重要な手がかりになる。初心者にとっては意味不明な英語の羅列に見えやすいが、エラー名、ファイル名、行番号、メッセージ本文を見ると問題の場所を絞り込みやすい。
デプロイ(Deploy)

手元のパソコンで作って確認していたものを、サーバーなどの公開環境へ反映して、想定したユーザーが実際にアクセスできるようにする作業である。静的サイトならアップロードに近いこともあるが、アプリでは環境変数、DB接続、サーバー起動、動作確認まで含むことが多い。
デプロイして終わりではなく、公開後のURL確認、エラーログ確認、問題があったときに前の状態へ戻す判断も重要になる。
ドメイン(Domain)

たとえば当サイトなら、noveblo.com の部分がドメインにあたる。本来、コンピュータ同士はIPアドレスで通信しているが、数字だけでは人間にとって覚えにくいため、覚えやすい名前としてドメインが使われている。
ドメインはWebサイトだけでなくメールにも関係する。一定期間使う権利を登録して更新していくものなので、更新忘れや、商標・既存ブランドと紛らわしい名前にも注意が必要である。
パッケージ(Package / ライブラリ)
世界中の誰かが作ってくれた「便利なプログラムの部品(詰め合わせ)」のこと。
例えば「カレンダーを表示する機能」や「グラフを描く機能」などを自分でゼロから作らなくても、パッケージとしてダウンロードすれば瞬時に自分のアプリに組み込める。これらを管理するためのツール(パッケージマネージャー)として、JavaScript環境だと「npm」、Python環境だと「pip」という言葉が非常によく飛び交う。
JSON(JavaScript Object Notation)
システム間でデータをやり取りするときによく使われる「データ記述のルール(フォーマット)」のこと。「ジェイソン」と読む。
「名前 : 太郎, 年齢 : 20」のように、項目名と中身をセットにしてシンプルな文字列にするのが特徴。API(他のサービスとの窓口)を使ってデータを引っ張ってくるときは、だいたいこのJSONという形式でデータが届く。人間にもAIにとっても整理して読み書きしやすいため、現代の開発で最もよく目にするデータ形式。
OSS(Open Source Software)
設計図であるソースコードが、世界中の誰でも無料で見たり、使ったり、改造したりできるように公開されているソフトウェアのこと。
代表的なものにWordPressやLinuxなどがある。営利企業ではなく、世界中のボランティアエンジニアたちによって日々改良されていくという素晴らしい文化の結晶。AI開発で使うツールの多くも長年OSSとして育てられてきた背景があり、「無料で使えるのが当たり前」なITのベースを作っている。
UI / UX(User Interface / User Experience)
UIはユーザーの目に触れる「見た目・操作画面」、UXはそのアプリを使ったときにユーザーが感じる「使いやすさや体験」全体のこと。
「見た目は綺麗(UIが良い)だけど、ボタンが小さくて押しにくい(UXが悪い)」といった使い方をする。AIにデザインを頼む時は「今っぽいUIにして」とか「もっとUXを改善したい」という言葉を使うと、意図が伝わりやすい。
マークダウン(Markdown)
見出しや太字、リストなどの「文章の装飾」を、簡単な記号だけでパパッと書けるルール(書き方)のこと。
AIが理解しやすい文章として、最近注目を集めるようになった文章形式。NotionやObsidianなどのマークダウン形式で書くことが前提のツールは、AIとの相性が特に良い。「# 見出し」や「- リスト」のように書くだけで綺麗にデザインされ、開発者のメモや説明書(READMEなど)でも非常によく使われる。AIに「マークダウン形式で出力して」とお願いすると、そのままコピペして使える綺麗な表やリストを一瞬で作ってくれる。
コンポーネント(Component)

レゴブロックの「窓パーツ」や「ドアパーツ」のように、画面や機能を小さな単位に分けて作るイメージである。たとえば「ログインボタン」「ヘッダー」「商品カード」「モーダル」などを1つずつ独立した部品として作っておくと、いろいろな場所で使い回しやすくなる。
レスポンシブ(Responsive Design)
パソコンやスマホ、タブレットなど、見る画面のサイズに合わせて自動的に「ちょうどいいレイアウト」に切り替わるWebデザインの仕組みのこと。
昔は「パソコン用サイト」と「スマホ用サイト」を2つ別々に作っていたが、今は1つのコードで画面幅に応じて伸び縮みさせるのが主流。AIにデザインを依頼するときは、「スマホ対応(レスポンシブ)にしてください」と付け加えるのがお決まりのパターン。
ビルド(Build)

人間が書いた(あるいはAIに書かせた)バラバラのコードや素材を、最終的に実行・公開しやすい完成品ファイル一式へ変換・組み立てる作業のこと。
開発中のコードや素材を、実行や公開に向いた形へ変換・組み立てる作業のこと。特に最近のWeb開発では、React などを使ったあとにターミナルでビルドを実行しないと、本番用の完成ファイルが出力されないことが多い。
コメントアウト(Comment Out)

ソースコードの中で // や /* ... */、HTML の <!-- ... --> などの特定の記号を使うと、その部分はコンピューターから実行対象として無視される。そのため、「ここは後で直す」「この処理は一旦止めたい」といったメモや、一時的な無効化によく使われる。
ハードコード(Hard-coding)
「パスワード」や「ユーザーの名前」、「商品の値段」といった変動するはずのデータを、コードの中に「直接ベタ書き」してしまうこと。
例えば、税率計算の処理に「0.1(10%)」という数字を直接書き込んでしまうと、将来税率が変わったときにコードを全て探し回って直さなければならなくなる。AIにコードを作らせる際も、「ここはハードコードしないで」と伝えることで、後から変更しやすい質の高いコードに仕上げてくれる。
シンタックスエラー(Syntax Error)
コードを書く上での「文法的な間違い(スペルミスや記号の抜けなど)」によるエラーのこと。
英語のテストで、ピリオドを忘れたり単語のつづりを間違えたりしてバツにされるのと同じ。例えば「必要な括弧( } )が一つ足りない」というだけの理由で、アプリ全体が真っ白になって動かなくなることは日常茶飯事。これが出たらAIにコードを丸投げすれば、一瞬で「ここが抜けています」と添削してくれる。
ルーティング(Routing)
URL(アドレス)ごとに、「どの画面(ページやデータ)を表示するか」を割り当てる「交通整理」の案内板のこと。
例えば「/about」にアクセスが来たら会社概要ページを開き、「/contact」ならお問い合わせページを開く、といったルート(道順)を決めている役割。新しいページを作ったのに画面に表示されないときは、だいたいこのルーティングの設定を追加し忘れているケースが多い。
拡張機能 / プラグイン(Extension / Plugin)

VS Code や WordPress などは、最初から全部入りにするのではなく、自分に必要な拡張機能やプラグインを追加して使いやすくしていくことが多い。便利な一方で、信頼性や更新状況、権限要求、安全性を確認してから導入することが大切である。
APIキー(API Key)

前述の「API」を使って、例えば「自分のアプリにChatGPTを組み込みたい」と思った時、ただ繋ぐだけでは許可されず、自分が発行したこの秘密の鍵(文字列)を一緒に送ることで初めて連携できる。.envに書かれることが多いが、絶対に他人に知られてはいけないスーパー重要情報なので、GitHub等にアップしないよう(環境変数を使うなど)厳重に管理する必要がある。
ハルシネーション(Hallucination)
AIが「もっともらしいウソ」を、さも事実であるかのように自信満々に答える現象のこと。
直訳すると「幻覚」。AIで何か調べものをするときに、古い情報や誤った情報を返すことが度々ある。AIコーディング中であれば、「AIが提案してくれた便利そうなコードが、実はそもそも存在しない架空の拡張機能だった」というケースなど。AIのアップデートにより正確性はかなり改善されてきたが、AIの言うことを100%信じ切るのではなく、引用元を確認するなどして正しい情報であるかを常に意識することが大事である。
コンテキスト(Context)

例えば、AIに突然「画面の下の方にボタンを作って」と指示しても、何の話かわからないのと同じ。「今のコード全体の状況」や「自分が何を作ろうとしているか」というメモ(コンテキスト)を最初にAIへ読み込ませることで、トンチンカンな回答を防ぐことができる。最近のAIツールは、こういったメモ(Claude CodeでいうCLAUDE.mdなど)を自動で読み込んでくれる機能が優秀になっていることが多い。
トークン(Token)
AIが一度に読み取ったり、出力したりできる「情報の塊の単位」のこと。
厳密には文字数とイコールではないが、大まかに「AIにとっての文字制限」と理解してよい。「トークンの上限に達しました」というエラーが出たときは、AIに一度に長すぎるコードを読ませようとしたり、背景情報を詰め込みすぎたりして、AIの頭のキャパシティ(記憶容量)がパンクしてしまったことを意味する。
トークンの使用上限は、各種AIサービスのどのプランに契約しているかによって変わる。
一般に、有料の上位モデルの方が上限が高く設定されている。
ローカルホスト(localhost)
自分の手元のパソコン(ローカル環境)を、一時的にサーバーのように見立てたときの「自分自身の住所」のこと。
Webアプリを作って動作確認するとき、ブラウザに「http://localhost:3000」などのURLを打ち込むのが定番の流れ。インターネット上ではなく、あくまで「自分のPCの中だけ」で動いている状態なので、このURLを他の人に教えても(他の端末からは)アクセスできない。
ポート番号(Port Number)
通信を行うときに、「どの扉(入り口)を使ってデータをやり取りするか」を決める番号のこと。
前述のローカルホスト(住所)とセットで使われることが多い。「マンション(localhost)の何号室(ポート番号)」というイメージで、例えばWeb開発なら「3000」や「8080」が、SSH接続するときは「22」や「10022」がよく使われる。もしターミナルで「ポートが既に使われています」とエラーが出た場合は、別のアプリがその扉を占領していることが原因である。
変数(Variable)
色々なデータ(文字や数字)を一時的に入れておくための「名前のついた箱」のこと。
例えば「ユーザー名を入れておくための『userName』という箱」を用意しておけば、中身が「太郎」から「花子」に変わっても、プログラムは『userName』の中身を表示するだけで済むようになる。もし、名前の表示部分を「太郎」と直接書く(これをハードコードという)、名前の変更があったときに「太郎」書かれた箇所すべてを変更しなければならなくなり、作業が大変かつ見落としも起こりやすくなる。
コードを読む際は、この変数という箱の数々がどう動いているかを目で追うと、プログラムの全体の流れが掴みやすくなる。
関数(Function)
よく使う一連の処理(複数の命令)をひとまとめにして、名前をつけた「自動販売機のようなパーツ」のこと。
「数字を2つ渡したら、足し算して結果を返してくれる」といった一連の流れを一つの関数にしておけば、何度も同じコードを書く手間が省ける。AIに「もっとコードをわかりやすく整理して」や「リファクタリングして」などと頼むと、ダラダラと長く書かれたコードを意味ごとに「関数」として綺麗に小分けにしてくれることが多い。
配列 / リスト(Array / List)
複数の変数(データが入った箱)を、ロッカーのように一列に並べてまとめて管理するための「連番付きの箱」のこと。
例えば「りんご」「みかん」「ぶどう」という3つの別々のデータを、ひとつのグループとして扱いやすくする。「買い物リスト」を作り、1番目にこれ、2番目にこれ…と整理して入れておくイメージ。AIを使ったアプリでも、取得した複数のデータを画面に一覧表示したい時には必ずと言っていいほどこの配列が使われる。
クラス(Class)

たとえば、たい焼きメーカーの金型があれば、中身を変えながら「あんこ味」「クリーム味」などのたい焼きを何個も作れる。クラスもそれに近く、「こういうデータと機能を持つものを作るための共通の型」をあらかじめ決めておく仕組みである。
フルスタック(Full-stack)
「フロントエンド(表側)」から「バックエンド(裏側)」、さらにはデータベースやサーバー環境構築まで、Web開発の全領域を通しでカバーできること。
全部できるようになるには膨大な学習時間が必要で、熟練のエンジニアだけが名乗れる称号のようなものだった(フルスタックエンジニア)。しかし、現代のAIコーディングでは、AIがアシスタントや家庭教師になって全領域を手伝ってくれるため、初心者でも一気に「フルスタックなアプリ開発」に挑戦できる夢のような時代が到来している。かくいう筆者も、フルスタックエンジニアである。(まだ名乗るにはおこがましいが)
ルートディレクトリ(Root Directory)
プロジェクト(フォルダ)の一番上の階層のこと。
ディレクトリの中で、大元となる根っこ(Root)の部分を指す。AIにコードを作らせていると「.envファイルは必ずルートディレクトリに作成してください」と指示されることが多い。VS Codeなどのエディタで開いたとき、特定のフォルダの中ではなく、一番外側の「一番見晴らしの良い場所」にファイルを置く作業をイメージすればOK。
依存関係(Dependencies)

たとえば、カレンダー表示や画像処理などを実装したいとき、AIから「まず依存関係をインストールしてください」と言われることがある。多くの場合は、npm install、composer install、pip install -r requirements.txt などで必要な部品をそろえる。
便利な一方で、依存関係が増えるほど管理やセキュリティ確認の手間も増える。AIに提案されたパッケージ名をそのまま盲信せず、公式性、更新状況、脆弱性の有無を確認する意識が大切である。
エラーハンドリング(Error Handling)

数値欄に文字を入れられた、通信先のAPIが落ちていた、必要なデータが取得できなかった、というような予想外の事態に備える考え方。分かりやすい案内を出したり、ログを残したり、安全なところで処理を止めたりする。
キャメルケース / スネークケース(CamelCase / snake_case)

プログラミングでは名前にスペースを入れられないことが多いため、単語の区切りを別の方法で表す必要がある。userName のように単語の切れ目を大文字で表すのがキャメルケース、user_name のようにアンダースコアでつなぐのがスネークケースである。
正規表現(Regular Expression / Regex)
「郵便番号は3桁-4桁の数字」のような「文字のパターンの条件」を、専用の記号の組み合わせで表現するルールのこと。
メールアドレスの入力チェックなどでよく使われるが、実際のコードを見ると ^[a-zA-Z0-9]+$ のように完全に呪文(暗号)にしか見えない。初心者がこれを自力で読み書きするのは至難の業なので、「メールアドレスをチェックする正規表現を書いて」とAIに丸投げするのが良い。
無限ループ(Infinite Loop)
プログラムの処理が、終わりの条件を見つけられずに「永遠に同じ処理を繰り返してしまう」バグのこと。
AIに作ってもらったコードをローカルホストで確認したとき、ブラウザの読み込みマークがぐるぐる回り続けて操作不能になったら、だいたいこれが原因。コンピューターの頭のキャパシティ(メモリ)を食いつぶしてしまうため、強制終了してAIに「画面がフリーズしました、無限ループしていませんか?」とデバッグを依頼しよう。
プルリクエスト(Pull Request / PR)
自分が追加・修正したコードを、「本番のコードに取り込んで(Pullして)ください!」と他の人にリクエスト(依頼)すること。
チーム開発でよく使われるGitHubの機能。AIと一緒に作った新機能のブランチを、勝手に本番に反映させるのではなく、一旦プルリクエストを出して「これで問題ないか確認してね」とワンクッション置くのが安全なチーム開発のお決まりのパターン。
なお、筆者は現在個人で開発しているので、プルリクエストすることはない。
マージ(Merge)
枝分かれして作業していたブランチのコードを、本番用のメインのコードに「合体(統合)させる」操作のこと。
前述のプルリクエストが承認されると、晴れてこのマージ作業が行われる。RPGゲームで例えるなら、別ルートで集めたアイテムや経験値を、主人公のメインデータにガッチャンコして引き継ぐイメージ。ここまで来てようやく、AIと一緒に作った新機能が本番の世界に組み込まれる。
コンフリクト(Conflict)

マージをしようとしたとき、「本番のコード」と「自分が今追加しようとしているコード」の「同じ行」が別々の内容に書き換わっていて、Gitが「どっちを優先すればいいの!?」とパニックを起こすエラーのこと。
「競合」とも呼ばれる。AIにコードを書き直してもらっている最中に、自分でも手動でコードをいじってセーブ(コミット)してしまうとよく発生する。解決するには「こっちのコードを採用する」と人間が手動で選んであげる作業が必要になる。
パスを通す(Add to PATH)

新しくインストールしたツールやコマンドを、ターミナルの「どこからでも名前を呼ぶだけで使えるようにする」設定のこと。
開発ツールをインストールしたのに、ターミナルでそのコマンドを打つと「Command not found(そんなコマンドは見つかりません)」と怒られるのは、この「パスを通す」作業を忘れているのが原因。AIから「環境変数にパスを通してください」と指示されたら、「パソコンにツールの居場所を登録するんだな」と思い出そう。
