API
プログラムが別のプログラムを呼ぶための決められた窓口
API とは、プログラム同士であらかじめ取り決めた窓口です。決まった形で要求を送ると、決まった形で答えが返ってきます。相手の内部を見る必要はなく、窓口だけを見ればよいのです。API で人工知能を使うとは、人が打ち込む代わりに自分のアプリがモデルに質問するということです。
API キー
原文の表記 · API key
自分を証明し課金される秘密の文字列 — 絶対に共有しない
API キーは、誰が呼び出しているのか、料金を誰の口座に付けるのかをサービスに伝える長い秘密の文字列です。銀行のカード番号と同じように扱ってください。チャット欄や画面写真、公開リポジトリに貼り付けることは絶対に避けます。漏れた場合は提供元の管理画面でそのキーをすぐ削除し、新しいものを発行してください。
Git
ファイルのすべての変更を記録しておく道具
Git はプロジェクトのすべての変化を記録し、何がいつ変わったかを確認したり、好きな時点に戻したりできるようにします。複数人が同じファイルを直しても互いの作業を上書きしないようにもしてくれます。Git は自分のパソコンで動くプログラムで、GitHub はその記録を預かるウェブサイトです。名前が似ているのでよく混同されます。
もっと学ぶ
リポジトリ
原文の表記 · Repository
プロジェクトのフォルダと、その全履歴をまとめたもの
リポジトリとは、Git が見張っているプロジェクトのフォルダと、そこで行われたすべての変更の記録をまとめて指す言葉です。リポジトリを複製すると、ファイルだけでなくその履歴も自分のパソコンに付いてきます。コードが GitHub にあるという話は、そこに複製できるリポジトリがあるという意味です。
もっと学ぶ
コミット
原文の表記 · Commit
履歴に残す保存点ひとつ — なぜ変えたかの覚え書き付き
コミットとは、プロジェクトのある瞬間をまるごと写し取ったもので、何をなぜ変えたかの短い覚え書きと一緒に保存されます。コミットはずっと残るので、いつでもその時点に戻れます。小さく分けたコミットと正直な覚え書きが履歴を役立つものにします。大きな塊ひとつに「修正」とだけ書いても、後から何の助けにもなりません。
もっと学ぶ
ブランチ
原文の表記 · Branch
本流に触れずに作業できる分かれ道
ブランチを作ると、本流から枝分かれして何かを試すことができ、納得がいくまで元のほうはそのままにしておけます。うまくいかなければそのブランチを捨てるだけ、うまくいけば本流に合流させます。チームが互いの邪魔をせずに複数の機能を同時に作れるのは、これがあるからです。
もっと学ぶ
コマンドライン(CLI)
原文の表記 · Command line (CLI)
クリックの代わりに命令を打って操作するやり方
コマンドラインインターフェースは、メニューをクリックする代わりに、命令を一行ずつ打って操作するプログラムです。見た目は素っ気ないものの、正確で繰り返しやすいのが利点です。打った一行をそのまま保存し、人に渡し、明日また同じように実行できます。Git や人工知能のコーディング道具をはじめ、開発用の道具はたいていこの方式も備えています。
もっと学ぶ
ターミナル
原文の表記 · Terminal
命令を打ち込む、あの黒い画面
ターミナルは、命令を打ち込む場所を用意し、その結果を表示してくれるアプリです。Mac ではターミナル、Windows では Windows ターミナルや PowerShell と呼ばれます。そこに何か打ち込んだだけで危ないことが起きるわけではなく、画面はいつ閉じてもかまいません。初心者が抱く怖さは、実際の危険に比べてずっと大きいものです。
もっと学ぶ
アルゴリズム
原文の表記 · Algorithm
決まった手順をたどれば必ず同じ結果に至る手続き
アルゴリズムとは、入力を結果に変える、終わりのある手順の並びです。料理のレシピと同じだと考えてください。名前を五十音順に並べることも、最短の道を探すこともアルゴリズムです。言葉は堅く聞こえますが、私たちも毎日アルゴリズムをたどっています。コンピューターは飽きることも一行飛ばすこともなく、それをそのまま実行するだけです。
ライブラリ
原文の表記 · Library
誰かが作っておいた、そのまま使えるコードのまとまり
ライブラリは、ほかの人が書いて検証したコードのまとまりで、自分のプロジェクトに取り込むことで、すでに解決済みの問題をもう一度解かずに済ませられます。日付を読む、グラフを描く、メールを送る。たいていは誰かがうまくやってくれています。よいライブラリを選ぶことも立派な実力です。自分のプログラムは、その長所だけでなく不具合まで一緒に引き受けるからです。
オープンソース
原文の表記 · Open source
誰でもコードを読み、使い、直せるように公開されたソフトウェア
オープンソースのソフトウェアはソースコードを公開し、誰でも読み、動かし、直せるようにライセンスを付けています。こうして開かれているからこそ、見知らぬ人が問題を見つけてくれますし、特定の会社に縛られずに済みます。公開だからといって義務がないわけではありません。ライセンスごとに条件が違うので、どれが付いているかは確かめる価値があります。
デバッグ
原文の表記 · Debugging
プログラムがなぜおかしいのかを追い、直す作業
デバッグは、プログラムが意図と違う動きをする理由を突き止めて直す作業です。その大半は気の利いた修正ではなく、落ち着いて範囲を狭めていく作業です。実際に何が起きたのか、何を期待していたのか、その二つが最初にずれる場所はどこか。初心者はデバッグを失敗の証拠のように感じますが、実際にはプログラミングの大きいほうの半分がこれです。
エラーメッセージ
原文の表記 · Error message
何かがうまくいかなかったときに、プログラムが表示する文
エラーメッセージは、プログラムやブラウザーがコードの指示どおりに動けないときに表示する文です。たいてい、何がどこでおかしくなったのか — よく何行目かまで — を教えてくれます。怖そうに見えますが、いちばん役に立つ手がかりです。最初の一行を読むか、AI に貼り付けて意味を尋ねてみましょう。
もっと学ぶ
Python
AI でよく使われる、初心者にやさしいプログラミング言語
Python は、コードがほとんどふつうの英語のように読めることで知られるプログラミング言語です。データ分析と AI でいちばんよく使われ、PyTorch や NumPy など多くの AI ライブラリは Python から使います。このサイトでは、何もインストールせずにブラウザーの中で本物の Python を動かせます。
もっと学ぶ
プログラム
原文の表記 · Program
コンピューターが順番に実行する命令の集まり
プログラムは、コンピューターに何をするかを一歩ずつ伝える命令のリストです。アプリもゲームも Web サイトもプログラムで、AI のチャットボットもそうです。コンピューターはプログラムに書かれたことしかしないので、プログラムがおかしな動きをするときは、命令か、渡された入力に原因があります。
コード
原文の表記 · Code
プログラミング言語で書いた命令
コードは、Python や JavaScript などのプログラミング言語で書かれたプログラムの本文です。人が書き、コンピューターが実行します。コードは言語の決まりに正確に従わなければならないので、かっこが一つ足りないだけで動かなくなることがあります。コードを書くことをコーディングといいます。AI ツールもコードを書けますが、確かめるのはやはり人です。
コードエディター
原文の表記 · Code editor
コードを書いて直すためのプログラム
コードエディターは、コードのファイルを書いたり直したりするためのプログラムです。コードの部分ごとに色を付け、打っているそばから間違いを知らせ、ターミナルが組み込まれていることもよくあります。VS Code(Visual Studio Code)は人気のある無料のエディターで、多くの AI コーディングツールが拡張機能としてそこに加わります。
フローチャート
原文の表記 · Flowchart
作業の手順を順番に示す図
フローチャートは、作業の手順を矢印でつないだ箱で描いた図です。丸い箱は始まりか終わり、四角は行うこと、ひし形は「はい・いいえ」の問いで、そこで道が分かれます。プログラムを作る前に描いておくと、何がどんな順番で起こるべきかがはっきりします。
もっと学ぶ
原文の表記 · Input and output
プログラムに入るものと、出てくるもの
入力は、プログラムが受け取るものです。打ったキー、マウスのクリック、ファイル、質問などがあります。出力は、プログラムが返すものです。画面の文字、音、保存されたファイルなどがあります。その間で、プログラムが入力を処理します。AI のチャットボットも同じ形で、あなたの質問が入力、その答えが出力です。
構文(syntax)
原文の表記 · Syntax
コードの書き方の厳密な決まり
構文は、プログラミング言語の書き方の決まりです。かっこ、コロン、引用符、空白をどこに置くかが決まっています。コンピューターは書き手の意図を推測しないので、引用符が一つ抜けただけでも構文エラーになり、コードはまったく動きません。エラーメッセージはたいてい行の場所を示すので、まずそこを見ます。
ランタイム
原文の表記 · Runtime
コードやモデルを実際に動かすプログラム
ランタイムは、ほかで書かれたものを実際に動かすプログラムです。Node.js はブラウザーの外で JavaScript を動かし、Pyodide はブラウザーの中で Python を動かし、llama.cpp は AI モデルのファイルを読んで計算を行います。この言葉は「プログラムの実行中」という意味でも使われ、実行したときにだけ出るエラーはランタイムエラーと呼ばれます。
フレームワーク
原文の表記 · Framework
自分のコードで中身を埋めていく、出来合いの骨組み
フレームワークは、アプリの組み立て方をあらかじめ決めている大きなコードの集まりです。あなたが書くのは、フレームワークがちょうどよいときに呼び出す部品です。ライブラリはその逆で、あなたのコードが好きなときにライブラリを呼びます。Web フレームワークは多くの手間を省いてくれますが、その下ではやはりふつうの HTTP でリクエストを読み、レスポンスを書いています。このサイトがまずその流れを見せるのはそのためです。
もっと学ぶ
SDK
一つのプラットフォームの上で作るためのコードと道具のセット
SDK はソフトウェア開発キット(software development kit)の略です。プラットフォームが配るもので、あなたのプログラムはクラウドセーブ、ランキング、ログインといった機能を、一から書かずに使えます。ふつうはプラットフォームの API を呼ぶライブラリに、説明書と例が付いています。このサイトでは Cadeplay で出てきます。Cadeplay は SDK をあなたのゲームに自動で入れてくれます。
もっと学ぶ
ビルド
原文の表記 · Build step
ソースコードを、実行・配布できるファイルに変えること
ビルドとは、あなたが書いたコードを、実際に動かす完成したファイルに変えることです。たとえば React のプロジェクトを、dist フォルダーの中のふつうの HTML・CSS・JavaScript にまとめます。この作業をするのがビルドツールです。できあがったものもビルドと呼ぶので、「新しいビルド」はゲームやアプリを新しくまとめた版のことです。ビルドの結果は毎回作り直されるので、Git には入れません。
もっと学ぶ
ゲームエンジン
原文の表記 · Game engine
ゲームを動かすための共通の仕事を引き受けるソフトウェア
ゲームエンジンは、ほとんどのゲームに必要な仕事を引き受けます。画面への描画、入力の読み取り、音の再生、物理計算、画像や音の読み込みなどです。あなたはその上に自分のゲームのルールと絵を加えます。Godot、Unity、Unreal、Flame(Flutter の上で動く)がよく知られた例です。多くのエンジンは、一つのプロジェクトを Web・スマートフォン・パソコン向けに書き出せます。
もっと学ぶ
MVP
人が本当に使える、いちばん小さな版
MVP は minimum viable product(実用最小限の製品)の略です。ゲームなら、最低限遊べるゲームのことです。小さくても、初めて見た人が手助けなしに最初から最後まで遊べるものです。デモや下書きとは違います。MVP を早く出せば、実際のプレイヤーから正直な感想がもらえます。一人で何か月作業しても、それは得られません。
もっと学ぶ
.env ファイル
原文の表記 · .env file
秘密の値をコードの外に置いておくファイル
.env ファイルは、トークンやパスワードなどを 名前=値 の行で並べた、ただのテキストファイルで、プロジェクトのフォルダーに置きます。プログラムは名前で値を読み出すので、秘密の値そのものはコードに出てきません。このファイルは .gitignore に書いて、リポジトリに入らないようにします。一度でも push してしまった秘密の値は、漏れたものとして扱い、新しいものに取り替えます。
CI(継続的インテグレーション)
原文の表記 · CI (continuous integration)
コードを変えるたびに自動で走るテスト
継続的インテグレーション(CI)とは、だれかが共有のリポジトリにコードを送るたびに、サーバーが自動でプロジェクトをビルドし、テストを実行するしくみです。何かが壊れれば、その変更がマージされる前に、チームは数分以内に赤い印で気づけます。GitHub Actions は広く使われている CI サービスの一つです。
バージョン管理
原文の表記 · Version control
ファイルへの変更をすべて記録しておくこと
バージョン管理とは、ファイルへの変更を一つずつ、だれが・いつ・なぜ変えたかと一緒に記録しておくやり方です。これがあれば、どの二つの版でも比べられ、前の版に戻れ、何人もが同じプロジェクトを安全に直せます。いまいちばん広く使われているバージョン管理ツールが Git です。
もっと学ぶ
GitHub
Git のリポジトリをオンラインで預かる Web サイト
GitHub は、Git のリポジトリのコピーをインターネット上に保存する Web サイトで、チームで一つのプロジェクトを共有できます。保存のほかに、変更をレビューする Pull Request、課題の一覧(Issue)、自動チェックなどもあります。Git はあなたのコンピューターの中の道具で、GitHub は、GitLab などと並んで、リポジトリをオンラインで預かるサービスの一つです。
もっと学ぶ
Pull Request(PR)
原文の表記 · Pull request (PR)
自分のブランチをレビューして取り込んでほしいという依頼
Pull Request(PR)は、GitHub などのサイト上のページで、あなたのブランチの変更をメインのブランチに取り込んでほしいとチームに頼むものです。レビューする人は diff を読み、コメントを書き、承認します。さらにコミットを push すると、同じ PR が更新されます。コードの試験というより、何をなぜ変えたかを説明する場です。
もっと学ぶ
diff
原文の表記 · Diff
何が変わったかを行ごとに見せる表示
diff は、二つの版のファイルの違いを見せます。- で始まる行は消された行、+ で始まる行は足された行です。git diff はまだステージングしていない変更を、git diff --staged はこれからコミットされる内容を見せます。コミットの前に毎回 diff を読むのが、間違いを見つけるいちばん簡単な方法です。AI が加えた変更も同じです。
もっと学ぶ
.gitignore
Git が追跡しないものを並べたファイル
.gitignore は、Git が無視するファイルやフォルダーを並べた、プロジェクトの中のテキストファイルです。node_modules、ビルドの結果、秘密の値を入れた .env ファイルなどを書きます。一行に一つのパターンを書き、末尾の / はフォルダー、* はどんな名前にも合います。すでにコミットしたファイルには効かないので、その場合は先に git rm --cached が必要です。
もっと学ぶ
スナップショット
原文の表記 · Snapshot
ある瞬間のすべてのファイルをまるごと写したもの
スナップショットは、ある瞬間のプロジェクトの全ファイルの状態を記録したものです。Git のコミットは一つひとつがスナップショットで、変更点の一覧だけではありません。変わっていないファイルはすでに保存されたコピーを指すだけなので、スナップショットは小さく収まります。だから Git はどのコミットにもすぐ移れ、二つの時点をすばやく比べられます。
もっと学ぶ
ワーキングディレクトリ(working tree)
原文の表記 · Working tree
目に見えて、直している実際のファイル
ワーキングディレクトリ(ワーキングツリー)は、あなたが目にしているままのプロジェクトのフォルダーで、実際に開いて直しているファイルです。Git はこれを最後のコミットと比べて、何が変わったかを教えてくれます。変更がいる場所は、ステージングエリア、リポジトリと合わせて三つあり、そのうちの一つです。git status で、それぞれの変更がどこにあるかが分かります。
もっと学ぶ
ステージングエリア(staging area)
原文の表記 · Staging area
次のコミットに入れる変更を集めておく場所
ステージングエリア(インデックスとも呼びます)には、次のコミットに入れると選んだ変更が入ります。git add で変更をそこに移し、git commit はステージングにあるものだけを保存します。この中間の段階があるので、五つのファイルを直しても、一緒にまとめるべき二つだけをコミットでき、履歴が読みやすくなります。
もっと学ぶ
クローン(clone)
原文の表記 · Clone
リポジトリをまるごと自分のコンピューターにコピーすること
クローンは、すでにあるリポジトリ(ふつうは GitHub にあるもの)を、すべてのファイルと履歴全体ごと自分のコンピューターにコピーします。Git はコピー元も origin という名前のリモートとして覚えておくので、あとから新しい変更を pull したり、自分の変更を push したりできます。クローンは一度だけで、そのあとは git pull で最新に保ちます。
もっと学ぶ
リモート(remote)
原文の表記 · Remote
別のコンピューターにある、同じリポジトリのコピー
リモートは、同じリポジトリの別のコピーで、ふつうは GitHub にあり、みんなで共有すると決めたものです。慣例として、メインのものは origin と呼びます。git push で自分のコミットをそこへ送り、git pull や git fetch でほかの人のコミットを取り込みます。手元でのやり方は変わりません。リモートはただの集合場所です。
もっと学ぶ
push(プッシュ)
原文の表記 · Push
自分のコミットをリモートに送ること
push は、ブランチのコミットをリモートにアップロードして、ほかの人が見られるようにします。初めてのときは git push -u origin main で、自分のブランチとリモートのブランチも結び付けるので、次からは git push だけで済みます。先にほかの人が push していたら、その作業を pull するまで Git は受け付けません。git push --force はほかの人のコミットを上書きするので、共有のブランチでは使わないようにします。
もっと学ぶ
pull(プル)
原文の表記 · Pull
リモートのコミットを取ってきて、取り込むこと
pull は、リモートから新しいコミットをダウンロードし、すぐにいまのブランチに合わせます。git fetch のあとにマージをするのと同じなので、自分も同じ行を直していればコンフリクトが起きることがあります。git pull --rebase は、代わりに自分のコミットを新しいコミットの上に並べ直し、履歴を一直線に保ちます。
もっと学ぶ
fetch(フェッチ)
原文の表記 · Fetch
マージせずに、リモートのコミットをダウンロードすること
fetch は、リモートから最新のコミットをダウンロードしますが、自分のブランチには手を付けません。新しい作業は origin/main のような名前で待っているので、マージするかどうかを決める前に中身を見られます。そのため fetch は、ほかの人が push したものを確かめる安全な方法です。git pull は、fetch のあとすぐにマージをするものです。
もっと学ぶ
マージ(merge)
原文の表記 · Merge
二つのブランチの作業を一つにまとめること
マージは、あるブランチのコミットを別のブランチに合流させることで、ふつうは仕上がった機能のブランチを main に取り込みます。二つのブランチが別々の部分を直していれば、Git が自分でまとめます。同じ行を違うように直していれば、コンフリクトとして止まり、あなたが解決するのを待ちます。マージは、実際に起きたとおりの履歴を残します。
もっと学ぶ
コンフリクト(conflict)
原文の表記 · Conflict
二つの変更が同じ行にぶつかること
コンフリクトは、二つのブランチがファイルの同じ行を違うように直したため、Git がどちらを残すか決められないときに起きます。Git は止まり、その場所に <<<<<<<、=======、>>>>>>> の印を付けます。ファイルを正しい形に直して印を消し、git add してコミットします。コンフリクトはエラーではありません。人に判断を求める Git からの合図です。
もっと学ぶ
fork(フォーク)
原文の表記 · Fork
他人のリポジトリを、自分のものとしてコピーしたもの
fork は、ほかの人のリポジトリを、自分のアカウントの下にコピーしたものです。ふつうは GitHub で作ります。自分のものではないプロジェクトには push できないので、自分の fork に push し、そこから元のリポジトリへ Pull Request を開きます。fork は、オープンソースのプロジェクトに貢献するときのいつものやり方です。
もっと学ぶ
rebase(リベース)
原文の表記 · Rebase
自分のコミットを別の地点の上に移すこと
rebase は、自分のコミットを取り出して、別のコミットの上に並べ直します。そのため履歴が一本の直線として読めます。git rebase -i を使えば、共有する前にコミットをまとめたり、メッセージを書き直したり、順番を入れ替えたりもできます。rebase は古いコミットの代わりに新しいコミットを作るので、ほかの人がすでに持っているコミットは決して rebase しないでください。
もっと学ぶ
HEAD
いま履歴のどこにいるかを指す目印
HEAD は、いまいるコミットを指す Git の名前で、ふつうはいまのブランチの最新のコミットです。多くのコマンドはここから数えます。HEAD~1 は一つ前、HEAD~3 は三つ前のコミットです。git reflog は HEAD がこれまでいたすべての場所を一覧にするので、なくしたコミットはたいていここから取り戻せます。
もっと学ぶ
変数
原文の表記 · Variable
値をしまっておく名前
変数は、あとで使えるように値に付ける名前です。Python では 名前 = 値 で値をしまいます。この = は「等しい」ではなく、「この名前にこの値を入れる」という意味です。変数の中身はいつでも変えられ、値を書くところならどこでも、代わりに変数の名前を書けます。
もっと学ぶ
関数
原文の表記 · Function
名前を付けて何度も使えるコードのまとまり
関数は、名前の付いたコードのまとまりで、必要なときにいつでもまた実行できます。Python では def で作り、受け取る値をかっこの中に並べ、return で値を返します。print() や len() は Python に最初から入っている関数で、def を使えば自分の関数を作れます。
もっと学ぶ
条件
原文の表記 · Condition
どのコードを実行するかを決める、はい・いいえの問い
条件は、答えが True か False になる問いで、score >= 60 のようなものです。if 文は、条件が True のときだけその中の行を実行し、else はそれ以外の場合を受け持ちます。中の行は空白 4 つでインデントしなければなりません。Python はそれで if のまとまりがどこで終わるかを見分けます。
もっと学ぶ
くり返し(ループ)
原文の表記 · Loop
何度も何度も実行されるコード
くり返し(ループ)は、同じ行を何度も実行します。for ループは、range(1, 11) の中の数やリストの項目のように、項目を一つずつたどります。while ループは条件が True のあいだくり返すので、条件が False にならなければ、いつまでも止まりません。
もっと学ぶ
インデント
原文の表記 · Indentation
コードをまとまりに分ける、行の先頭の空白
インデントは、行の先頭の空白です。Python ではこれが決まりの一部で、if、for、def の下の行は、その中に入っていることを示すためにインデントしなければなりません(ふつうは空白 4 つ)。インデントすべき行がされていなかったり、幅がそろっていなかったりすると、Python は IndentationError で止まります。
もっと学ぶ
リスト
原文の表記 · List
[ ] の中に値を順番に並べたもの
リストは、いくつもの値を順番どおりに一か所にまとめ、角かっこの中に入れたものです。各項目には 0 から始まる位置の番号があるので、fruits[0] が最初の項目です。append() で項目を足し、len() で数え、for ループで一つずつたどれます。
もっと学ぶ
辞書(ディクショナリ)
原文の表記 · Dictionary
{ } の中に、キーと値の組を並べたもの
Python の辞書は、{"math": 80} のように、キーと値の組を波かっこの中にしまいます。値は位置ではなくキーで探すので、scores["math"] で 80 が出てきます。新しいキーに代入すると組が増え、同じキーは一度しか使えません。コードではよく dict と略します。
もっと学ぶ
アクセストークン
原文の表記 · Access token
道具があなたのアカウントを使えるようにする秘密の文字列
アクセストークンは、サービスが発行する長い秘密の文字列で、あなたの道具がパスワードなしであなたのアカウントを使えるようにします。たとえば Cadeplay にゲームをアップロードするときに使います。パスワードと同じように扱ってください。.env ファイルに入れ、チャットやコードには決して貼らず、漏れたらサービスのコンソールで削除します。AI が文章の中で数えるトークンとは関係ありません。
もっと学ぶ
ゲームループ
原文の表記 · Game loop
ゲームが1秒間に何度もくり返す流れ。入力を読み、世界を更新し、画面を描きます。
ゲームループは、あらゆるゲームの心臓です。1周ごとにプレイヤーの入力を読み、位置・当たり判定・得点を更新して、新しい絵を描きます。1周でフレームが1枚できます。ループはエンジンが回してくれるので、私たちはその中で起こることを書きます。
もっと学ぶ
FPS(1秒あたりのフレーム数)
原文の表記 · FPS (frames per second)
ゲームが1秒間に新しい絵を何枚描くか。
FPS は、ゲームループが1秒間に何回終わって新しいフレームを見せるかを数えます。60 FPS なら16.7ミリ秒ごとに1枚で、なめらかに感じられます。だいたい30を下回ると、ゲームがカクつき始めます。重い描画や、更新の遅いコードが FPS を下げます。
もっと学ぶ
スプライト
原文の表記 · Sprite
キャラクター・コイン・弾のように、ゲームの中で動き回る小さな絵。
スプライトは、ゲームが毎フレーム、ある位置に描く2Dの画像です。歩くキャラクターは、よく1枚のスプライトシート(順に見せるとアニメーションになる絵の帯)で作られます。スプライトにはふつう、当たり判定に使うヒットボックスがついています。
もっと学ぶ
当たり判定
原文の表記 · Collision detection
ゲームの中の2つのものが触れたかを、ヒットボックスという見えない箱で毎フレーム確かめること。
当たり判定は、プレイヤーが足場に乗ったか、コインを拾ったか、攻撃に当たったかを決めます。いちばん簡単な方法は、スプライトごとに長方形(ヒットボックス)を持たせ、2つの長方形が重なっているかを調べることです。エンジンには、これを代わりにやってくれる物理システムがあります。
もっと学ぶ
デルタタイム
原文の表記 · Delta time
前のフレームから経った時間。どの端末でもゲームを同じ速さで動かすために使います。
画面によって書き換えの速さがちがうので、どのフレームも同じ時間がかかるわけではありません。速さにデルタタイム(dt)を掛けると、1フレームあたりの距離ではなく、1秒あたりの距離で動きます。これがないと、速いモニターではゲームが速くなり、遅いスマホでは遅くなります。
もっと学ぶ
ワークフロー
原文の表記 · Workflow
仕事を終わらせるための決まった手順の並び
ワークフローは、いつも同じ順番で進む手順のまとまりです。AI の設計では、ワークフローは前もって書かれた道筋どおりに進み、エージェントは次の一歩を自分で決めます。GitHub では、ワークフローは .github/workflows/ に置く YAML ファイルで、手順を自動で実行します。たとえば、テストを走らせたり、誰かがコメントしたときに Claude にイシューを直してもらったりします。
プライバシーポリシー
原文の表記 · Privacy policy
アプリがどんな個人情報を、なぜ集めるかを書いた公開ページ
プライバシーポリシーは、アプリやサイトがどんな個人情報を、何のために集め、だれと共有し、利用者がどう削除できるかを説明する公開ページです。アプリストアは公開の前にこのページのアドレスを求め、審査担当者はアプリが実際にすることと合っているかを確かめます。多くの国の法律でも必要とされています。
もっと学ぶ
Babylon.js
Web ブラウザーの中で動く無料の 3D ゲームエンジン
Babylon.js は、Web ページの中で動く 3D ゲームや 3D の場面を作るためのオープンソースのエンジンです。物理・アニメーション・照明・3D モデルの読み込みが最初から入っています。TypeScript で書かれていて、JavaScript からも使えます。ブラウザーがそのまま実行環境なので、プレイヤーはリンクを開くだけで、何もインストールせずにゲームを始められます。
もっと学ぶ
Construct
ブラウザーで使う、ほとんどコードなしの 2D ゲーム作成ツール
Construct は、Web ブラウザーの中で動く 2D ゲーム用のゲームエンジンです。コードを打つ代わりに、「イベントシート」でルールを組み立てます。これが起きたら、あれをする、という形です。もっと必要なときは JavaScript を足せます。作ったゲームは Web やほかのプラットフォーム向けに書き出せます。
もっと学ぶ
C++
ゲームエンジンやブラウザーの中で使われる、速くて歴史の長い言語
C++ は、前もって機械語に変換されるプログラミング言語なので、プログラムがとても速く動き、メモリを直接あつかえます。Unreal Engine のようなゲームエンジン、Web ブラウザー、多くの大きなゲームが C++ で書かれています。そのかわり難しく、メモリの扱いを間違えるとプログラムが落ちることがあり、身につけるのに時間がかかります。
もっと学ぶ
C#
Unity のゲームに使う、Microsoft のプログラミング言語
C#(「シーシャープ」と読みます)は、Microsoft が作ったプログラミング言語です。Unity でゲームのスクリプトを書く言語で、Windows のプログラムや Web サーバーにも使われます。メモリを自動で片付けてくれるので C++ より簡単ですが、それでも覚えるツールはたくさんあります。
もっと学ぶ
Dart
Flutter のアプリを書くための、Google のプログラミング言語
Dart は Google が作ったプログラミング言語です。Flutter のアプリは Dart で書くので、Dart を学ぶことが Flutter でスマホアプリを作る第一歩です。JavaScript や Java に似ていて、スマホ向けの速い機械語にも、Web 向けの JavaScript にも変換できます。
もっと学ぶ
Defold
Lua でスクリプトを書く、無料で軽いゲームエンジン
Defold は、主に 2D ゲーム用に作られた無料のゲームエンジンです。ビルドが小さいので、スマホや Web でもゲームがすぐに読みこまれます。ゲームのロジックは Lua で書きます。Colyseus などのサーバーが Defold 用の SDK を出しているので、ゲームサーバーのページに出てきます。
もっと学ぶ
Flutter
一つのコードでスマホ・Web・デスクトップのアプリを作る Google のツールキット
Flutter は、Google が出している無料のアプリ作成ツールキットです。アプリを Dart で一度書けば、同じコードから iPhone アプリ、Android アプリ、Web ページ、デスクトップのプログラムを作れます。画面の部品はすべてウィジェットで、ウィジェットをほかのウィジェットの中に入れて画面全体を組み立てます。
もっと学ぶ
Flame
Flutter の上に作られた無料の 2D ゲームエンジン
Flame は、Flutter の中で動くオープンソースの 2D ゲームエンジンです。ゲームループ、スプライト、当たり判定、入力の処理といった、Flutter だけではゲームに足りないものを足してくれます。ゲームのまわりのメニューは、ふつうの Flutter のウィジェットのままで作れます。2D 専用なので、3D ゲームをこれで作る計画は立てないでください。
もっと学ぶ
Godot
2D と 3D のゲームを作れる、無料のオープンソースエンジン
Godot は、だれでも無料で使え、売り上げにも料金がかからないゲームエンジンです。MIT ライセンスのオープンソースだからです。2D と 3D の両方のゲームを作れ、ゲームのコードは Python に似た言語の GDScript か C# で書きます。ふつうのノートパソコンでも動くほど軽いです。
もっと学ぶ
Go
サーバーでよく使われる、Google のプログラミング言語
Go(Golang とも呼びます)は Google で作られたプログラミング言語です。Go のプログラムは一つの実行ファイルにコンパイルされ、速く動き、たくさんの接続を同時にさばけるので、サーバーでよく使われます。Nakama のゲームサーバーは Go で書かれていて、自分で書いた Go のモジュールで機能を足せます。
もっと学ぶ
Haxe
一つのコードをほかのたくさんの言語に変換するプログラミング言語
Haxe はオープンソースのプログラミング言語で、そのコンパイラーは同じコードを JavaScript・C++・C# などに変換します。ゲーム開発者は、一つのゲームを Web・デスクトップ・スマホに出すためにこれを使います。Haxe 用の SDK を出しているサーバーがあるので、ゲームサーバーのページに出てきます。
もっと学ぶ
Lua
ゲームの中に入れやすい、小さなスクリプト言語
Lua は、プログラムが自分の中に入れて持ち歩ける、軽くて簡単なスクリプト言語です。ゲームエンジンやサーバーが Lua を組みこむと、プログラム全体をビルドし直さなくても、ゲームのルールを書いたり変えたりできます。Defold は Lua を使い、Nakama のサーバーは Go や TypeScript に加えて Lua のモジュールも受け付けます。
もっと学ぶ
Phaser
ブラウザーで遊ぶ 2D ゲーム用の無料の JavaScript フレームワーク
Phaser は、Web ブラウザーで動く 2D ゲームを作るためのオープンソースのフレームワークで、JavaScript か TypeScript で書きます。ゲームループを代わりに回し、スプライト・物理・音・入力を用意してくれるので、自分は毎フレーム何が起きるかだけを書けば済みます。初めての Web ゲームの多くがこれで作られています。
もっと学ぶ
PixiJS
ブラウザーで 2D の絵を速く描く JavaScript のライブラリ
PixiJS は、グラフィックスチップを使って Web ページに 2D の絵やスプライトをとても速く描くオープンソースのライブラリです。描くことしかしません。物理も音もゲームのルールも持っていないので、完全なゲームエンジンではなく描画用のライブラリです。ゲームはそうした部分を自分で足すか、Phaser のようなエンジンを使います。
もっと学ぶ
Unity
スマホ・PC・家庭用ゲーム機のゲームで広く教えられているゲームエンジン
Unity は、スマホゲームの大きな割合と、多くの PC・家庭用ゲーム機のゲームに使われているゲームエンジンです。エディターで場面を組み立て、ゲームのスクリプトは C# で書きます。Web(WebGL)を含むほとんどすべてのプラットフォームに書き出せるので、たくさんの講座で教えられています。とても小さな最初のゲームには重すぎます。
もっと学ぶ
Unreal Engine
高画質な 3D ゲームのための Epic Games のエンジン
Unreal Engine は Epic Games のゲームエンジンで、見た目がいちばん大事なときに選ばれます。本物のような照明や質感、広い 3D の世界が得意です。ゲームのコードは C++ で書くか、ブループリントで目で見ながら組み立てます。高性能なコンピューターが必要で、最初の小さなゲームには大きすぎます。
もっと学ぶ
ブループリント
原文の表記 · Blueprint
箱をつないでゲームのロジックを作る、Unreal Engine の方法
ブループリントは、Unreal Engine のビジュアルスクリプティングの仕組みです。コードを打つ代わりに、「キーが押されたとき」や「音を鳴らす」のような箱(ノード)を置き、そのあいだを線でつなぎます。C++ を書かずにゲームのロジックを作れますが、大きなブループリントの図は読みにくくなることがあります。
もっと学ぶ
glTF
3D モデルをやり取りするための標準のファイル形式
glTF は、Khronos Group が管理している 3D モデル用のオープンなファイル形式です。一つのファイルに形・質感・テクスチャー・アニメーションが入っていて、エンジンがすぐに読みこめるので、「3D の JPEG」とよく呼ばれます。.gltf(テキストと別のファイル)か .glb(全部が一つのバイナリファイル)の形で配られます。
もっと学ぶ
TypeScript
型を足した JavaScript。コードを実行する前に確かめられる
TypeScript は、JavaScript に型を足したものです。変数ごとにどんな種類の値を入れるかを書いておくと、プログラムを実行する前にチェッカーが間違いを知らせてくれます。ブラウザーが実行するのは JavaScript なので、TypeScript はまずふつうの JavaScript に変換されます。大きな Web アプリ、Babylon.js、多くのゲームサーバーが使っています。
もっと学ぶ
Rust
メモリの間違いの多くを防ぐ、速いプログラミング言語
Rust は、C++ と同じくらい速く動きながら、コンパイルするときにメモリの使い方を確かめるプログラミング言語です。そのため、プログラムが落ちる原因やセキュリティのバグの種類まるごとを、実行する前に止められます。サーバー、コマンドラインのツール、SpacetimeDB のモジュールのようなゲームのバックエンドに使われています。決まりが厳しく、覚えるのに時間がかかることで知られています。
もっと学ぶ
PHP
サーバーで Web ページを作るプログラミング言語
PHP は Web サーバーで動き、ブラウザーに送る前に HTML のページを作るプログラミング言語です。WordPress をはじめ、Web の大きな部分が PHP で動いていて、SONUB 自体も PHP(Laravel)のプログラムです。訪れた人には PHP のコードは見えず、それが作ったページだけが見えます。
もっと学ぶ
Vite
Web プロジェクトをすばやく始めてビルドするツール
Vite はフロントエンドのビルドツールです。すぐに動かせるプロジェクト(React、Vue など)を作り、保存するとすぐにページが更新される開発用サーバーを動かし、コマンド一つで、どの Web サーバーでも配れる最終ファイルを dist フォルダーに作ります。Node.js が必要です。
もっと学ぶ
Pyodide
Web ブラウザーの中で動く Python
Pyodide は、本物の Python インタープリターを WebAssembly に変換して、Web ページの中で動くようにしたものです。SONUB の Python の授業はこれを使っているので、何もインストールせずに自分のコンピューターでコードが動きます。ランタイムをダウンロードするので、最初の読みこみには少し時間がかかります。コンピューター上の Python のように、ふつうのネットワークサーバーを開いたり、バックグラウンドのサービスを動かしたりはできません。
もっと学ぶ
A/B テスト
原文の表記 · A/B testing
二つの版を別々のプレイヤーに見せて、どちらがよいかを調べること
A/B テストでは、プレイヤーをランダムに二つのグループに分けます。グループ A には今の版を、グループ B には価格やチュートリアルを変えた版を見せます。そして、次の日に戻ってきたプレイヤーの数のように、前もって決めておいた数を比べます。勘の代わりに測った結果で決められますが、違いに意味があると言えるだけのプレイヤーの数が必要です。
もっと学ぶ
年齢レーティング
原文の表記 · Age rating
ゲームの内容をもとにストアがつける年齢の制限
ゲームを公開する前に、ストアはコンテンツ調査を求めます。暴力・血・ギャンブル・知らない人とのチャットなどについての、はい/いいえで答える質問です。その答えで、ストアに表示される「12 歳以上」のような年齢レーティングが決まります。調査に答えていないのは、できあがったゲームを提出できないよくある原因で、答えが間違っていると、あとでゲームが取り下げられることもあります。
もっと学ぶ
Apache 2.0
特許もカバーする、制限のゆるいオープンソースのライセンス
Apache License 2.0 はオープンソースのライセンスです。だれでもコードを使い、変え、売り、共有できます。中身を公開しない商用の製品に入れてもかまいません。そのかわり、著作権とライセンスの表示を残し、変えたファイルには印をつけます。そのコードについて貢献者が持っている特許の利用も認めているので、企業に好まれる理由の一つになっています。
もっと学ぶ
アセット
原文の表記 · Asset
ゲームが使う画像・音・モデルなどのファイル
アセットは、ゲームを作っているコード以外のファイルです。画像、スプライト、効果音、音楽、3D モデル、フォント、ステージのデータなどです。ふつうはゲームの大きさのほとんどをアセットが占めます。AI で作ったものも含め、すべてのアセットに使う権利が必要なので、出す前にライセンスを確かめてください。
もっと学ぶ
バトルパス
原文の表記 · Battle pass
シーズンのあいだ、遊ぶと順にごほうびが開いていく仕組み
バトルパスは、数週間から数か月のシーズンのあいだ続くゲームのアイテムです。遊んだりチャレンジを達成したりするとポイントがたまり、ごほうびの段階が一つずつ開いていきます。ふつうは無料のコースと、ごほうびが多い有料のコースがあり、シーズンが終わると一緒に終わるので、プレイヤーが戻ってくる理由になります。
もっと学ぶ
コアループ
原文の表記 · Core loop
プレイヤーが何度もくり返す、短い一連の行動
コアループは、ゲームの中でプレイヤーが何度もくり返すことです。たとえば、障害物を跳びこえる → コインを集める → スピードを上げる。このループが楽しくなければ、まわりに何を足してもゲームは救えないので、最初に作って試します。これは設計の考え方で、毎フレーム画面を描くコードのゲームループとは別のものです。
もっと学ぶ
生態系(エコシステム)
原文の表記 · Ecosystem
一つの技術のまわりにあるツール・ライブラリ・人のすべて
技術の生態系とは、そのまわりに育つすべてのものです。ライブラリ、エディター、チュートリアル、できあいのアセット、フォーラム、質問に答えてくれる人たち。生態系が大きければ、たいていの問題にはどこかに答えがあります。若い生態系なら、自分で作ったり解決したりすることが多くなります。エンジンや言語を選ぶときの大きな理由になります。
もっと学ぶ
境界ケース
原文の表記 · Edge case
コードがよく壊れる、めったにない極端な状況
境界ケースとは、ありうる範囲のぎりぎりの端にある入力や状況です。空の名前、ちょうど 0 のスコア、保存中にスマホの電波が切れる、同じフレームで二つのキーを押す、などです。コードはふつうの場合には動いても、ここで壊れることが多いので、境界ケースを書き出して一つずつ試すとバグを早く見つけられます。AI は境界ケースを書き出すのが得意です。
もっと学ぶ
フレーム
原文の表記 · Frame
ループのたびに一枚描かれる、ゲーム画面の静止画
ゲームは、パラパラマンガのように静止画をすばやくたくさん描いて動きを見せます。その一枚一枚がフレームです。フレームごとに、ゲームは入力を読み、位置を更新し、画面を描きます。1 秒に 60 フレームなら、1 フレームに使える時間は約 16 ミリ秒です。フレームごとに決まった量だけものを動かすと、速い画面ではゲームが速くなってしまうので、デルタタイムを使います。
もっと学ぶ
バランス調整
原文の表記 · Balancing
ゲームが公平で楽しく感じられるよう、難しさ・ごほうび・数値を整えること
バランス調整とは、ゲームの数値を合わせることです。ジャンプの高さ、ステージの敵の数、ごほうびの量、アイテムの値段などです。少し変えただけで、ゲームが簡単すぎたり、難しすぎたり、不公平になったりします。AI はシミュレーションをして数値を提案できますが、ちょうどよく感じるかどうかは、実際に遊ぶ人が決めます。
もっと学ぶ
ゲームロジック
原文の表記 · Game logic
ゲームのルールを実行するコード
ゲームロジックは、何が起きるかを決めるコードの部分です。攻撃が当たったか、点数をどう数えるか、ステージがいつ終わるか、だれが勝つか。画面を描くことや音を鳴らすことは別の部分です。オンラインゲームでは、プレイヤーが自分の手元のゲームを書きかえてずるをできないように、サーバーがゲームロジックを実行することがよくあります。
もっと学ぶ
ライブにする
原文の表記 · Go live
アップロードしたビルドを、プレイヤーが実際に受け取る版に切りかえること
ゲームのプラットフォームでは、ビルドをアップロードすることと、それをライブにすることは別の二つの段階です。チェックを通ったビルドは、昇格させるまで待っています。その瞬間から、それがプレイヤーの受け取る版になり、プレイ用のリンクが開きます。段階を分けておくと、まずビルドを見て確かめられ、ロールバックすれば前のビルドに戻せます。
もっと学ぶ
ギルド
原文の表記 · Guild
ゲームの中でいっしょに遊ぶ、長く続くプレイヤーのグループ
ギルド(クランとも呼びます)は、プレイヤーがゲームの中で作って入るグループです。メンバー、リーダーのような役割、参加の申しこみ、グループチャットがあります。仲間のためにプレイヤーがまた戻ってくるきっかけになります。開発者にとってはゲームサーバーが保存して管理しなければならないコミュニティの機能なので、どのサーバーを選ぶかが大事になります。
もっと学ぶ
サーバーのフック
原文の表記 · Hook
組み込みの動作の前後に自分のコードを実行できる決まった場所
フックとは、選んだタイミングでコードを足せるように、プログラムが開けておく場所です。Nakama のゲームサーバーでは、すべての組み込みの呼び出しの前後にフックを掛けられます。たとえば、アカウントを作る前にプレイヤーの名前を確かめたり、マッチが終わったあとにごほうびをあげたりします。サーバー自体のコードを変えずに機能を広げられます。
もっと学ぶ
アプリ内課金
原文の表記 · In-app purchase
ストアを通して、アプリの中でアイテムや機能を買うこと
アプリ内課金は、アプリやゲームの中でする支払いです。コイン、広告なしの版、バトルパスなどを買います。スマホではストア自身の支払いの仕組みを通り、ストアが代金の一部を受け取ります。ストアはレシートを返すので、ゲームのサーバーはアイテムを渡す前にそれを検証しなければなりません。
もっと学ぶ
インスペクタ
原文の表記 · Inspector
動いている場面の中をのぞいて、値を変えられるウィンドウ
インスペクタはデバッグ用のツールで、動いているゲームやページの中のオブジェクトを一覧にし、位置・大きさ・色・物理の設定などのプロパティを見せてくれます。値を変えると、再起動しなくてもすぐに結果が見られます。Babylon.js、Unity、ブラウザーの開発者ツールにはどれもインスペクタがあります。
もっと学ぶ
インターフェース
原文の表記 · Interface
あるコードが用意すると約束した関数の一覧
プログラミングでのインターフェースは、何をどうやるかではなく、何ができるかを表します。入力と出力つきの関数の一覧です。その関数を持っているコードなら、どれでもその場所で使えます。Go では、Nakama のサーバーが型付きのインターフェースをモジュールに渡すので、正しく呼んでいるかをコンパイラーが確かめてくれます。
もっと学ぶ
リーダーボード
原文の表記 · Leaderboard
スコアの順にプレイヤーを並べた一覧
リーダーボードは、スコアやタイムなどの数でプレイヤーに順位をつけます。新しいプレイヤーにもチャンスがあるよう、毎日や毎週リセットするゲームが多く、サーバーは同点のときの順位の決め方を決め、にせのスコアを送るずるを見つけなければなりません。ゲームのクライアントが送るものは何でも書きかえられるので、スコアはサーバーで確かめるべきです。
もっと学ぶ
ライセンス
原文の表記 · License
コード・絵・データをどう使ってよいかを決めた条件
ライセンスは、コード・画像・音・データについてくる、書面での許可です。使ってよいか、変えてよいか、売ってよいか、そしてそのかわりに作者の名前を出すなど何をしなければならないかが書いてあります。ネットで見つけたからといって、使ってよいわけではありません。MIT や Apache 2.0 のようなオープンソースのライセンスは多くを認めていますが、それぞれに条件があります。
もっと学ぶ
LiveOps
公開後に、イベントやショップの変更、更新でゲームを運営すること
LiveOps(ライブ運営)とは、出したゲームを生かし続ける仕事です。週末のイベント、ショップの新しいアイテム、シーズン、バランスの変更、A/B テストなどを、新しいビルドを出さずに管理画面から変えることがよくあります。何年も続くゲームはこれに支えられていて、チームが自分で作らなくてすむよう LiveOps のツールを売っているバックエンドもあります。
もっと学ぶ
ローカライズ
原文の表記 · Localization
ゲームの文章や内容を、それぞれの言語と文化に合わせること
ローカライズは翻訳だけではありません。言葉のほかに、日付・数字・通貨・画面の配置(長くなる言語もあれば、アラビア語のように右から左に読む言語もあります)・文化に関わる細かい部分を、それぞれの市場に合わせます。AI はすばやく翻訳の下書きを作れますが、出す前にその言語を知っている人が意味・用語・口調を確かめるべきです。
もっと学ぶ
マッチメイキング
原文の表記 · Matchmaking
合うプレイヤーどうしを一つのマッチに集めること
マッチメイキングは、オンラインゲームがだれとだれをいっしょに遊ばせるかを決める仕組みです。マッチメーカーはマッチを待っているプレイヤーを集め、近い実力、地域、ping、ゲームモードなどのルールでグループにします。よいマッチメイキングは、マッチを公平にし、待ち時間を短くします。この二つの目標は引っぱり合います。
もっと学ぶ
原文の表記 · Meta layer
マッチそのもののまわりにあるすべて:アカウント・フレンド・チャット・セーブ・ランキング
ゲームサーバーでのメタ層とは、実際のプレイの外にある機能のことです。アカウントとログイン、フレンド、ギルド、チャット、進み具合の保存、リーダーボード、ショップです。作るのが退屈で、気づかないうちに間違えやすいので、何か月もかけて自分で書くかわりに、それがもう入っているゲームサーバーを選ぶチームがたくさんあります。
もっと学ぶ
モジュール
原文の表記 · Module
プログラムに読みこむ、別のファイルやコードのまとまり
モジュールとは、ほかのコードが読みこんで使い回せるように、自分のファイルやパッケージに分けておいたコードです。Python では `import json` で json モジュールを読みこみます。Nakama や SpacetimeDB のようなゲームサーバーでは、自分のモジュールをアップロードしてゲームのルールを足します。出来の悪いモジュールは、それが動いているプログラムごと落としてしまうこともあります。
もっと学ぶ
ネイティブ
原文の表記 · Native
その機械自身の機械語として直接動くこと
ネイティブのコードは、動かすプロセッサーの機械語にコンパイルされていて、あいだにインタープリターや余分な層がないので、全速力で動きます。ネイティブアプリは iPhone など一つのプラットフォーム向けに作られます。ゲームサーバーでは、自分のロジックを同じプロセスの中でネイティブに動かすと速いですが、そこで落ちるとサーバー全体が止まります。
もっと学ぶ
NPC
プレイヤーではなく、コンピューターが動かすゲームのキャラクター
NPC(ノンプレイヤーキャラクター)は、ゲーム自身が動かすキャラクターです。店の人、クエストをくれる人、敵の見張りなどです。セリフは開発者が書き、ふるまいはコードのルール、多くは状態機械から生まれます。AI はたくさんの NPC のセリフをすばやく下書きできますが、それを読んで選ぶのはやはり人の仕事です。
もっと学ぶ
物理演算
原文の表記 · Physics
重力・衝突・動きを計算する、ゲームエンジンの部分
ゲームの物理とは、ものを現実の世界とだいたい同じように動かすコードです。重力でものが落ち、ぶつかると跳ねたり、すべったり、止まったりします。エンジンには物理の仕組みが入っているので、計算式を書くかわりに重さ・速さ・形を設定します。正確なシミュレーションではなく、気持ちよく感じるように調整した近似です。
もっと学ぶ
プレゼンス
原文の表記 · Presence
今だれがオンラインかという情報
プレゼンスは、それぞれのユーザーの今の状態です。オンライン、オフライン、マッチ中、離席中など。フレンド一覧やギルドの一覧は、これを使って名前の横に緑の点を出します。サーバーはすべての接続を見張り、変わったらほかの人に知らせなければなりません。ふつうは WebSocket を使います。人数が多くなると、見た目よりずっと難しくなります。
もっと学ぶ
QA
出す前に、製品に不具合がないか確かめること
QA(品質保証)は、プレイヤーより先に問題を見つける仕事です。ステージを通して遊び、変な入力を試し、いろいろな機械で試し、それぞれのバグを再現する方法を書き留めます。AI はテストのシナリオを書き出せます。たとえばセーブ機能を壊す 20 通りの方法です。でも、出してよいほどよいかどうかを決めるのは人の仕事です。
もっと学ぶ
レシート検証
原文の表記 · Receipt validation
アイテムを渡す前に、ストアでの購入が本物か確かめること
アプリ内課金のあと、ストアはゲームに、何を買ったかの証明であるレシートを渡します。ずるをする人は自分の機械でにせのレシートを作れるので、ゲームのサーバーはそれを Apple や Google のサーバーに送って、本物でまだ使われていないかを確かめ、そのあとで初めてアイテムを渡します。Nakama のようなゲームサーバーは、この確認を代わりにしてくれます。
もっと学ぶ
リデューサー
原文の表記 · Reducer
SpacetimeDB で、データベースの中で動いてテーブルを変える関数
SpacetimeDB では、データベースがそのままサーバーでもあります。モジュールをアップロードすると、その中のリデューサーと呼ばれる関数が、それぞれ一つのトランザクションとしてデータベースの中で動き、テーブルを変えます。クライアントは HTTP のエンドポイントの代わりにリデューサーを呼び、購読している人には変わった行がすぐに届きます。Redux のような Web のツールでは、この言葉は別の意味になります。
もっと学ぶ
ロールバック
原文の表記 · Rollback
出した版に問題があったとき、前の版に戻すこと
ロールバックは、前にうまく動いていた版に切りかえて、リリースを取り消すことです。プラットフォームは前のビルドを取っておくので、急いで直さなくても、壊れた更新を数秒で入れかえられます。戻るのはコードで、セーブデータのように悪い版がすでに変えてしまったデータは、別に直す必要があるかもしれません。
もっと学ぶ
決定論的ロールバック
原文の表記 · Deterministic rollback
遅れた入力が届いたら、ゲームを巻き戻して再生し直すこと
速いオンラインゲームで全員の入力を待っていたら、動きが重く感じられます。ロールバックでは、それぞれのゲームが手元にある入力で進み続け、遅れた入力が届いたら、そのフレームまで巻き戻して今まで一気に再生し直します。これができるのは、シミュレーションが決定論的なとき、つまり同じ入力ならどの機械でもいつもまったく同じ結果になるときだけです。
もっと学ぶ
RPC
別のコンピューターの関数を、手元の関数のように呼ぶこと
RPC(リモートプロシージャコール)を使うと、プログラムが別のコンピューターに、名前のついた関数をいくつかの引数で実行して結果を返すよう頼めます。Nakama のサーバーでは自分の RPC を登録し、ゲームはそれを名前で呼びます。MCP のメッセージは JSON-RPC 2.0 を使い、呼び出し一つひとつがメソッド名とパラメータの入った小さな JSON オブジェクトです。
もっと学ぶ
サーバーのティック
原文の表記 · Tick
ゲームサーバーが決まった間隔でマッチを更新する一歩
ゲームサーバーは世界をとぎれなく更新しているわけではなく、ティックごとに進みます。ティックのたびに、届いた入力を読み、ゲームのルールを当てはめ、新しい状態をプレイヤーに送ります。ティックレートが高いほど(たとえば 1 秒に 10 回ではなく 60 回)反応がよく感じられますが、処理とネットワークの通信量が増えます。
もっと学ぶ
ステートマシン
原文の表記 · State machine
一度に一つの状態にいて、ルールに従って次の状態に移る設計
ステートマシンは、あるものがとりうる状態と、そのあいだを移るルールを並べたものです。ゲームのキャラクターなら、待機・走る・ジャンプ・落下といった状態があり、「走っているときにジャンプが押された」らジャンプの状態に移ります。一度に有効な状態は一つだけなので、ジャンプとしゃがみが同時になるような、ありえない組み合わせを防げます。
もっと学ぶ
Steam
Valve が運営する PC ゲームのストア
Steam は、Valve が運営する PC ゲームのいちばん大きなストアです。開発者は毎年のアカウント料ではなくゲームごとに料金を払い、トレーラー・スクリーンショット・タグのついたストアページを作ります。発売前に集めたウィッシュリストがとても大事です。ゲームが出たときに、Steam がそのプレイヤーたちに知らせてくれるからです。
もっと学ぶ
購読
原文の表記 · Subscribe
あるデータが変わるたびに、自動で知らせてもらうよう頼むこと
購読とは、あるデータに関心があると登録しておき、何度も聞き直すかわりに、変わるたびにサーバーから送ってもらうことです。SpacetimeDB では、クライアントがクエリを購読すると、気にしている行が変わった瞬間に届きます。WebSocket のような、開いたままの接続が必要です。
もっと学ぶ
テストトラック
原文の表記 · Test track
まず選んだテスターだけにビルドを届ける配信の道
Google Play のリリースは、内部テスト、クローズドテスト、オープンテスト、製品版というトラックを通ります。テストトラックは、インストールできる本物のビルドを、リストに入れたテスターだけに届けるので、全員に届く前に問題を見つけられます。新しく作った個人の開発者アカウントは、製品版を申しこむ前に、12 人以上のテスターと 14 日間のクローズドテストをしなければなりません。Apple の TestFlight も同じような役目をします。
もっと学ぶ
UI
プログラムの、人が見てさわる部分
UI(ユーザーインターフェース)は、ユーザーが見て操作するすべてのものです。ボタン、メニュー、文字、アイコン、入力欄など。よい UI なら、次に何をすればよいかがすぐに分かります。UX(ユーザー体験)は、使ってみてどう感じるかという、もっと広い話です。ゲームでは、ゲームの世界の上に描かれるスコア・体力ゲージ・メニューが UI です。
もっと学ぶ
原文の表記 · Widget
画面を作る部品の一つ
ウィジェットは、ユーザーインターフェースの使い回せる部品の一つです。ボタン、文字のラベル、リスト、カード、ほかのウィジェットを入れる箱などです。画面は、ウィジェットの中にウィジェットを入れて組み立てます。Flutter では画面の上のすべてがウィジェットで、Flame ではゲームのキャンバスがふつうの Flutter のウィジェットにまじって置かれます。
もっと学ぶ
ウィッシュリスト
原文の表記 · Wishlist
発売前に、ほしいゲームをプレイヤーが保存しておく一覧
Steam では、プレイヤーがこれから出るゲームをウィッシュリストに入れられます。ゲームが発売されたりセールになったりすると Steam が知らせるので、ウィッシュリストは最初の週の売り上げにつながります。よいストアページとトレーラーで発売前にウィッシュリストを集めることは、初めての開発者の多くが思うよりずっと大事です。
もっと学ぶ
アプリ審査
原文の表記 · App review
公開する前にストアがアプリを確かめること
アプリやゲームがストアに並ぶ前に、ストアはビルドを審査します。落ちないか、プライバシー・支払い・内容のルールを守っているか、ストアの説明文はうそがないか。Apple の App Review は厳しいことで知られています。審査には数日かかることがあり、ビルドが却下されることもあるので、時間を見ておきましょう。更新のたびにもう一度審査を通ります。
もっと学ぶ
Play Console
Android アプリを公開して管理する Google のサイト
Google Play Console は、開発者が Google Play にアプリを公開する場所です。一度だけ登録料を払って本人確認をし、アプリを作り、アップロード鍵で署名したビルドをアップロードし、ストアの掲載情報とデータセーフティの用紙を書き、テストトラックと審査を通します。売り上げやクラッシュの報告もここで見られます。
もっと学ぶ
アプリストア
原文の表記 · App store
アプリやゲームを探してインストールするオンラインのお店
アプリストアは、アプリを探し、買い、インストールする公式の場所です。iPhone なら Apple の App Store、Android なら Google Play、PC ゲームなら Steam です。ストアが支払いと更新を受け持ち、公開する前にアプリを一つずつ審査します。そのかわり、開発者は登録料と売り上げの一部を払います。パッケージマネージャーは、コードのアプリストアと呼ばれることもあります。
もっと学ぶ
Google Play
Google の Android 用アプリストア
Google Play は Android のアプリとゲームの中心となるストアで、いちばん多くのスマホに届きます。開発者は一度だけ登録料を払って、Play Console から公開します。ビルドはテストトラックと審査を通ります。新しい個人のアカウントは、最初の製品版を出す前に、本物のテスターとのクローズドテストを終えなければなりません。
もっと学ぶ
プロトタイプ
原文の表記 · Prototype
アイデアを試すために手早く作った、おおまかな版
プロトタイプは、「このジャンプは楽しいか?」のような一つの問いに答えるために手早く作るもので、捨てる前提です。仮の絵や散らかったコードでもかまいません。MVP とは違います。最低限遊べるゲームは知らない人が手に取って楽しめるものですが、プロトタイプは何かを教えてくれさえすれば十分です。
もっと学ぶ
バイナリ
原文の表記 · Binary
機械が読むバイトのファイル。ふつうはすぐ動かせるプログラム
開発者のふだんの会話では、バイナリとはコンパイルされたプログラムのことです。人が読める文字ではなく、コンピューターが直接実行するバイトのファイルです。「バイナリ一つで配布」とは、サーバー全体が、コピーして動かすだけのファイル一つになっているという意味です。WebAssembly のようなバイナリの形式は、人ではなく機械のためのものです。テキストエディターでバイナリを開くと、意味のない文字が並びます。
もっと学ぶ
実行ファイル
原文の表記 · Executable
プログラムとして実行できるファイル
実行ファイルは、ダブルクリックしたり名前を打ったりすると、オペレーティングシステムがプログラムとして起動できるファイルです。Windows ではふつう .exe で終わります。Linux や macOS では、実行権限のあるファイルならスクリプトも含めて何でも実行できます。たとえば Caddy は実行ファイル一つです。実行ファイルには有害なコードが入っていることがあるので、アップロードを受け付けないサイトがよくあります。
もっと学ぶ
Conventional Commits
コミットメッセージの決まり:feat: や fix: のように変更の種類を先に書く
Conventional Commits は、広く使われているコミットメッセージの書き方の決まりです。メッセージはそれぞれ、新しい機能なら feat:、バグの修正なら fix:、文書なら docs: のように種類とコロンで始め、そのあとに短い説明を書きます。形が決まっているので、ツールが履歴を読んで変更履歴やバージョン番号を作れます。
もっと学ぶ
Updates were rejected
自分の手元にないコミットがリモートにあるときの Git のメッセージ
ほかの人が先に同じブランチに push していて、自分の手元にないコミットがリモートにあると、git push は「Updates were rejected」で止まります。push するとその人の作業を捨ててしまうので、Git が断るのです。--force に手を伸ばさないでください。git pull --rebase で相手のコミットの上に自分のコミットを乗せ、コンフリクトがあれば直してから、もう一度 push します。
もっと学ぶ
Git の履歴
原文の表記 · History
次々に積み重なったコミットの記録
Git の履歴とは、リポジトリで作られたすべてのコミットのつながりで、どのコミットも一つ前のコミットを指しています。git log で新しい順に見られます。コミットメッセージが分かりやすいと、何か月たっても履歴が読めます。ほかの人がすでに pull した履歴を書きかえる(rebase や force push)と、その人の手元が壊れるので、書きかえるのはまだ push していない自分のコミットだけにします。
もっと学ぶ
main
リポジトリの基本のブランチによくつける名前
main は、ほとんどのリポジトリが基本のブランチにつける名前で、完成した、みんなで共有する版が入っています。GitHub は新しいリポジトリでこれを main と名づけます。古いプロジェクトでは master と呼ぶこともあります。チームでは、だれも main に直接コミットしません。ブランチで作業し、レビューのあとでプルリクエストからマージします。
もっと学ぶ
追跡
原文の表記 · Tracking
リポジトリの一部なので、Git がファイルの変更を見張っていること
追跡されているファイルとは、add してコミットしたので Git がすでに知っているファイルで、Git はそのすべての変更を知らせます。新しいファイルは、git add するまで追跡されません。すでにコミットしたファイルを .gitignore に足しても、追跡は止まりません。まず git rm --cached で追跡から外します。
もっと学ぶ
追跡ブランチ
原文の表記 · Tracking branch
ローカルのブランチと組になっているリモートのブランチ
ローカルのブランチは、リモートのブランチと結びつけられます。これを追跡ブランチ(upstream)と呼びます。git push -u origin main で一度この結びつきを作れば、あとはただの git push や git pull でも行き先が分かり、git status は何コミット進んでいるか遅れているかを教えてくれます。結びつきがないと、Git はどのリモートのブランチのことかを聞いてきます。
もっと学ぶ
GitLab
GitHub に似た Git のホスティングサービス
GitLab は、GitHub のように Git のリポジトリを置いてチームで作業するためのサービスです。プルリクエストを「マージリクエスト」と呼び、自分の CI/CD パイプラインを持っています。gitlab.com のサイトのほかに、会社が自分のサーバーに GitLab を入れることもできます。ブランチ・push・レビュー・マージというふだんの流れは同じです。
もっと学ぶ
GitHub Actions
リポジトリで何かが起きたときに作業を実行する、GitHub に組みこまれた自動化
GitHub Actions は、push、新しいプルリクエスト、コメント、決まった時刻などのイベントが起きたときに、GitHub のサーバーでワークフローを実行します。ワークフローは .github/workflows/ にある YAML ファイルで、インストール・テスト・デプロイといった手順を並べます。Claude Code や Codex もこの中で動かせます。たとえば、だれかがプルリクエストに @claude と書くと答えます。
もっと学ぶ
コードレビュー
原文の表記 · Code review
マージする前に、チームの仲間が変更を読んでコメントすること
コードレビューでは、自分の変更がメインのブランチに入る前に、ほかの人がそれを読みます。ふつうはプルリクエストの形です。レビューする人はバグ、分かりにくいコード、足りないテストを探し、コメントを残し、最後に承認します。小さなプルリクエストはていねいに見てもらえますが、大きなものはざっと流されがちです。AI のレビューも役に立ちますが、決めるのはやはり人です。
もっと学ぶ
プロジェクトのルート
原文の表記 · Project root
プロジェクトのいちばん上のフォルダー
プロジェクトのルートとは、プロジェクト全体が入っているいちばん上のフォルダーです。git init を実行した場所で、.gitignore、package.json、README.md、CLAUDE.md のようなファイルがふつうここにあります。ツールはここで自分の設定を探し、多くのコマンドはここから実行されることを前提にしています。
もっと学ぶ
Markdown
# や - のような記号で見出し・リスト・コードを書く、プレーンテキストの書き方
Markdown は簡単な文章の形式です。# で始まる行は見出しに、- はリストの項目になり、アスタリスク二つではさんだ文字は太字になります。ファイルはプレーンテキストのまま読め、きれいに整えて表示することもできます。README.md、CLAUDE.md、AGENTS.md、SKILL.md はどれも Markdown のファイルで、AI のチャットの答えもたいていこれで書かれています。
もっと学ぶ
読み取り専用
原文の表記 · Read-only
読めるけれど、何も変えられないこと
読み取り専用とは、見ることはできても変えられないという意味です。読み取り専用のファイルは編集できず、読み取り専用のディスクには書きこめません。AI のコーディングツールではいちばん安全なモードで、Codex の読み取り専用のサンドボックスでは、エージェントはファイルを読んだり害のないコマンドを実行したりはできますが、ファイルを編集できません。まだよく知らないプロジェクトで始めるのにちょうどよいモードです。
もっと学ぶ
標準ライブラリ
原文の表記 · Standard library
Python についてくる、インストールしなくても使えるモジュール
Python の標準ライブラリは、Python 本体といっしょにインストールされるたくさんのモジュールです。JSON の json、Web のリクエストの urllib.request、小さな Web サーバーの http.server、math、random など、まだまだあります。pip で何もインストールしなくてよいので、標準ライブラリだけを使うプログラムは、Python が動くところならどこでも動きます。
もっと学ぶ
設定ファイル
原文の表記 · Config file
プログラムが起動するときに読む設定が入ったファイル
設定ファイルには、ポート、フォルダー、モデルの大きさ、権限など、プログラムのふるまいを変える選択が入っています。コードではなくこのファイルを編集して、ふるまいを変えます。よく使う形式は JSON、YAML、TOML、.env です。API キーのような秘密は、みんなで共有する設定ファイルではなく、Git に入れないファイルに置きます。
もっと学ぶ
バグ
原文の表記 · Bug
プログラムがおかしな動きをする原因になる間違い
バグはプログラムの欠陥です。落ちたり、間違った結果を出したり、だれも意図しなかったことをしたりします。バグは、コードの間違い、思ってもみなかった入力、変わった条件から生まれます。直すにはまず確実に再現し、次に原因を見つけ(デバッグ)、最後に同じバグが戻ってこないようにテストを足します。
もっと学ぶ
ソフトウェアのテスト
原文の表記 · Software test
コードが思ったとおりに動くかを確かめるコード
テストは、決まった入力で自分のコードを動かし、出力が思ったとおりかを確かめる小さなプログラムで、成功か失敗のどちらかになります。変更のたびにテストをまとめて実行するので、何かを直したせいで別のところが壊れても、すぐに分かります。AI のコーディングツールでは、テストが安全ネットです。テストを渡して、テストが通るまでコードを変えるようエージェントに頼みます。
もっと学ぶ
再現
原文の表記 · Reproduce
同じ結果や問題を、わざともう一度起こすこと
再現とは、同じ条件でもう一度起こすことです。手順どおりに再現できるバグは、直してテストできます。「ときどき起きる」バグは直すのが大変です。AI の実験での再現性とは、ほかの人が同じコード・データ・乱数シードで同じ結果を得られることです。
もっと学ぶ
改行
原文の表記 · Newline
行を終わらせる見えない文字。\n と書く
改行は、文字を次の行に送る文字です。目には見えませんが、ファイルの中にあります。コードでは \n と書きます。Linux と macOS は行を \n で終えますが、Windows は \r\n を使うので、ツールによっては混乱します。HTTP は、ヘッダーの各行の終わりに \r\n を置き、本文の前に空の行を一つ入れます。
もっと学ぶ
node_modules
プロジェクトがインストールしたパッケージを npm が入れるフォルダー
npm install を実行すると、npm は package.json に書かれたすべてのパッケージと、それらが必要とするパッケージを、プロジェクトの node_modules フォルダーにダウンロードします。数百メガバイトにもなることがあります。コミットしてはいけません。.gitignore に入れましょう。だれでも package.json とロックファイルから npm install で作り直せるからです。
もっと学ぶ
オーバーヘッド
原文の表記 · Overhead
本来の仕事のほかにかかる、余分なメモリや時間
オーバーヘッドとは、本当の仕事の上に乗ってくる費用です。AI のモデルを動かすとき、メモリには重みだけでなく、KV キャッシュ、計算バッファ、ランタイム自身のオーバーヘッドも入ります。そのため、重みのファイルが 4 GB のモデルでも 5〜8 GB 以上必要になることがあります。オーバーヘッドを見こんでおかないと、計算の上では「入る」モデルが実際には入りません。
もっと学ぶ
重みとパラメータについて詳しく見る
計算バッファ
原文の表記 · Compute buffer
計算しているあいだに使う一時的なメモリ
計算バッファは、計算のとちゅうの結果を置いておくために、プログラムが取っておく作業用の場所です。言語モデルが動くとき、それぞれの層は次の層が必要とする数を作り、それがこのバッファに置かれます。重みと KV キャッシュに加えて必要になるので、モデルにはファイルの大きさより多くのメモリがいる理由の一つになっています。
もっと学ぶ
重みとパラメータについて詳しく見る
パース(構文解析)
原文の表記 · Parsing
文字やコードを読んで、その組み立てを読み取ること
パースとは、文章を読んで、プログラムが使える組み立てに変えることです。ブラウザーはページを描く前に HTML をパースして要素の木にし、シェルはコマンドラインをパースしてコマンドとその引数に分け、json.loads は JSON の文字を Python の値にパースします。パースエラーは、その文字が決まった形を守っていないという意味です。
もっと学ぶ
ブレークポイント
原文の表記 · Breakpoint
プログラムをその行で一時停止させる印
ブレークポイントは、プログラムがある行に来たら止まるようデバッガーに伝える印です。止まっているあいだにすべての変数を読め、そこから 1 行ずつ進めて、どこでおかしくなるかを正確に見られます。ブラウザーでは、開発者ツール → Sources を開き、行番号をクリックして置きます。
もっと学ぶ
入力イベント
原文の表記 · Input event
キーを押した、クリックしたなど、起きたことをプログラムに知らせるもの
入力イベントは、何かが起きたことを知らせる小さなメッセージです。キーが押された、マウスが動いた、指が画面にふれた、などです。オペレーティングシステムは装置からの生の信号をイベントに変えて、いちばん前のウィンドウの待ち行列に入れ、プログラムはイベントに一つずつ反応します。Web ページでは onclick のようなリスナーでイベントを扱います。
もっと学ぶ
roundtrip
原文の表記 · Roundtrip
変換して元に戻し、何も失われていないかを確かめること
roundtrip のテストは、データを一方に変換してからまた元に戻し、結果が元と同じかを確かめます。XSLM 講座での roundtrip: OK は、学習用の文章全体をトークン番号に encode し、decode したら完全に同じ文章に戻った、つまりトークナイザーが何も失っていないという意味です。1 文字でも変わればテストは失敗します。
もっと学ぶ
オブジェクト
原文の表記 · Python object
プログラムの値と、それに属する関数をまとめたもの
Python では、数、文字、リスト、辞書など、すべての値がオブジェクトです。オブジェクトには型があり、メソッドと呼ばれる自分の関数を持っていて、fruits.append("pear") のように点をつけて使います。自分だけのオブジェクトの種類はクラスで設計します。オブジェクトをファイルに保存するには、まず文字や数に変換する必要があります。
もっと学ぶ
append
リストの最後に値を一つ足すメソッド
list.append(value) は、リストの最後に新しい値を一つ入れ、そのリスト自体を変えます。None を返すので、fruits.append("pear") とそれだけで 1 行に書きます。fruits = fruits.append("pear") と書くと、fruits が None になってしまいます。いくつかの値をまとめて足すときは extend を使います。
もっと学ぶ
Python のクラス
原文の表記 · Class
データと関数をまとめてオブジェクトを作る、ひな形
クラスは、オブジェクトの種類を表します。それぞれがどんなデータを持ち、何ができるかです。class で一度書けば、そこから必要なだけオブジェクト(インスタンス)を作れ、それぞれが自分の値を持ちます。クラスの中の関数はメソッドで、オブジェクト自身を self として受け取ります。クラスは設計図なので、オブジェクトを作るまでは何も起きません。
もっと学ぶ
def
新しい関数を作る Python のキーワード
def は関数の定義を始めます。関数の名前、かっこの中の引数、コロンと続き、その下に 4 つの空白で字下げした本体を書きます。関数を定義しても、それだけでは実行されません。かっこをつけて呼んだときにだけ実行されます。値を返すには、中で return を使います。
もっと学ぶ
辞書のキー
原文の表記 · Key
辞書の中で値を探すための名前
辞書はキーと値の組を保存し、キーは値を探すときのラベルです。scores["math"] では "math" がキーです。同じキーは一つしかありません。すでにあるキーに新しい値を入れると、古い値は置きかわります。ないキーを求めると KeyError になりますが、.get() なら代わりに None を返します。
もっと学ぶ
FileNotFoundError
開こうとしたファイルがないときの Python のエラー
FileNotFoundError は、プログラムが探している場所にないファイルやフォルダーを求めたときに出ます。たとえば、間違ったフォルダーから open("data/train.txt") を実行した場合です。パスはスクリプトの場所ではなく、今いるフォルダーからの相対パスです。pwd で今いる場所を確かめ、ls でファイルを並べ、つづりと大文字・小文字を確かめましょう。
もっと学ぶ
HTTPServer
Python についてくる簡単な Web サーバー
HTTPServer は、Python の標準ライブラリ(http.server モジュール)にある小さな Web サーバーです。GET や POST に何を答えるかを決めるハンドラーのクラスを渡すと、リクエストを一つずつ処理します。XSLM のランナーのように、学習や手元のツールには十分ですが、たくさんの人が訪れる公開サイト向けには作られていません。
もっと学ぶ
len
項目や文字がいくつあるかを数える関数
len(x) は x の長さを返します。リストなら項目の数、文字列なら文字の数、辞書ならキーの数です。x そのものは変えません。位置は 0 から始まるので、リストの最後の項目は len(x) ではなく len(x) - 1 の位置にあることを覚えておきましょう。
もっと学ぶ
None
「ここには何もない」という意味の Python の値
None は「値がない」という意味の特別な値です。return のない関数は None を返し、dict.get() はないキーに対して None を返します。数が出るはずのところに None と表示されたら、たいてい return を忘れています。「is None」で確かめます。0 や空の文字列とは違うものです。
もっと学ぶ
range
ループのために数の並びを作る関数
range(start, stop, step) は、start から stop の手前までの数を作ります。stop は入りません。range(1, 11) は 1 から 10、range(5) は 0 から 4 です。いちばんよく使うのは for ループです。終わりの数が入らないことを忘れるのが、いちばんよくある間違いです。
もっと学ぶ
urlopen
HTTP リクエストを送って答えを読む Python の関数
urllib.request.urlopen(url) は Web のアドレスを開いてリクエストを送り、レスポンスを返します。その .read() で本文をバイトとして受け取れます。POST で JSON を送るときは Request オブジェクトを渡します。サーバーにつながらなかったり、エラーコードが返ってきたりすると、にせの答えを返すのではなくエラーを出します。標準ライブラリの一部なので、何もインストールしなくて済みます。
もっと学ぶ
else
if の条件が偽のときに実行される分かれ道
else は if 文に二つ目の道を作ります。条件が真なら if のブロックが、そうでなければ else のブロックが実行されます。elif(else if)は、そのあいだで別の条件を確かめます。else は自分では条件をとらず、コロンで終わり、その下の行は if のブロックと同じように字下げします。
もっと学ぶ
IndentationError
行の字下げが正しくないときの Python のエラー
IndentationError は、行の始めの空白が Python の思っている形と合わないという意味です。コロン(if、for、def)のあとのブロックが字下げされていないか、同じブロックの行で空白の数が違っています。Python はかっこの代わりにインデントを使うので、これが大事なのです。1 段につき空白 4 つを使い、タブと空白をまぜないようにしましょう。
もっと学ぶ
print
値を画面に表示する Python の関数
print() は値を標準出力、ふつうは画面に書き、最後に改行します。プログラムが何をしているかを見るいちばん手軽な方法です。表示するだけなので、結果を表示しても return しない関数は None を返します。MCP サーバーのように標準出力でやり取りするプログラムでは、余計な print がメッセージを壊します。ログは stderr に書きましょう。
もっと学ぶ
return
関数が結果を返すときに使うキーワード
return は関数を終わらせ、呼び出したコードに値を渡します。そのため、結果をとっておいたり、さらに計算に使ったりできます。return のない関数は None を返します。return と print は違います。print は値を画面に見せるだけで、return は値を次に渡します。
もっと学ぶ
assert
条件が偽ならプログラムを止める、確認の 1 行
assert 条件 は、条件が真なら何もせず、偽なら AssertionError を出してその行でプログラムを止めます。「ここはこうでなければならない」とすばやく書いておく方法です。たとえば、トークナイザーが元の文章を返すことや、これから置きかえる文字が本当にあることを確かめます。-O をつけて実行すると Python は assert を飛ばすので、本番のプログラムが頼りにする確認には使わないでください。
もっと学ぶ
Android App Bundle
アプリを公開するために Google Play にアップロードする .aab ファイル
Android App Bundle(.aab)は、Google Play にアップロードするパッケージです。アプリのコードとリソースがすべて入っていて、Google Play はそこから、それぞれのスマホに合った小さなインストール用ファイルを作ります。Google Play の新しいアプリは、昔ながらの .apk ファイルではなく、バンドルでアップロードしなければなりません。
もっと学ぶ
アップロード鍵
原文の表記 · Upload key
Play にアップロードする前に、アプリに署名する秘密の鍵
Google Play は、新しい版がすべて同じ開発者から来たものかを確かめます。アプリのバンドルにアップロード鍵で署名すると、Google がその署名を確かめ、自分のアプリ署名鍵でもう一度署名します。鍵のファイルとパスワードはプロジェクトの外に置き、バックアップをとり、決してコミットしたり人に渡したりしないでください。なくしたら、Play Console で Google にリセットを頼まなければなりません。
もっと学ぶ
コード署名
原文の表記 · Code signing
アプリが本当にあなたから来たことを証明するデジタルの封印
アプリを公開する前に、秘密の鍵でアプリに署名します。署名があると、ストアとスマホは二つのことを確かめられます。だれがアプリを作ったか、そして署名したあとにだれもアプリを変えていないかです。Google Play はアップロード鍵を使い、Apple は署名用の証明書とプロファイルを使います。Xcode は自動署名でこれを代わりにやってくれます。署名に関するアップロードのエラーのほとんどは、違う鍵やチームを選んでいるという意味です。
もっと学ぶ
プロビジョニングプロファイル
原文の表記 · Provisioning profile
署名したアプリをインストールして動かすことを許す Apple のファイル
プロビジョニングプロファイルは、あなたのチーム、アプリのバンドル ID、署名用の証明書、そしてテストのときはアプリを動かしてよい機械を一つに結びつけます。iPhone は、プロファイルが合わないアプリを動かしません。自動署名をオンにしておけば、Xcode がプロファイルを作って更新してくれます。画面にはただ「プロファイル」と出ることがありますが、ユーザーのプロフィールとは関係ありません。
もっと学ぶ
バンドル ID
原文の表記 · Bundle ID
com.company.app のような、アプリにただ一つの名札
Apple のアプリにはどれも、com.example.notes のように Web のアドレスを逆にした形のバンドル ID があります。App Store で同じバンドル ID を持つアプリは二つとなく、これが Xcode のプロジェクト、署名のプロファイル、App Store Connect の記録を結びつけます。ビルドを一度アップロードしたら変えられないので、よく考えて選びましょう。Android では同じ考え方のものをアプリケーション ID と呼びます。
もっと学ぶ
App Store Connect
App Store のアプリを登録して管理する Apple のサイト
App Store Connect は、iPhone アプリが公開の前もあとも置かれている場所です。ここでバンドル ID・名前・スクリーンショットとともにアプリの記録を作り、プライバシーの詳細を書き、Xcode がアップロードしたビルドを見て、TestFlight のテスターを招待し、アプリを App Review に提出します。Google Play Console にあたる Apple のサイトです。
もっと学ぶ
Apple Developer Program
App Store で公開するために必要な Apple の有料会員
アプリを App Store に出したり、TestFlight でテスターに渡したりするには、自分の Apple アカウントで Apple Developer Program に参加します。会費は毎年かかり(多くの国で個人は 99 米ドル)、App Store Connect、署名用の証明書、ベータ版のツールが使えるようになります。参加しなくても Xcode で自分の iPhone にアプリを作って動かすことはできますが、公開はできません。
もっと学ぶ
TestFlight
公開の前にテスターへ iPhone アプリを渡す Apple のサービス
App Store Connect にアップロードしたビルドは、どれも TestFlight に送れます。テスターは無料の TestFlight アプリを入れ、招待を受けて、ふつうのユーザーより先にビルドを試します。外部のテスター向けのビルドは先に短い審査を受け、どのビルドも 90 日で期限が切れます。テスターの報告を直し、ビルド番号を上げて、もう一度アップロードします。
もっと学ぶ
Xcode
iPhone や Mac のアプリを作る Apple の無料アプリ
Xcode は、Apple の機械向けのアプリを作る公式のツールです。Mac でしか動かず、Mac App Store から無料で手に入ります。Flutter や React Native でアプリを書いても、最終的な iPhone のビルドは、Xcode かそのコマンドラインツールを通して署名・アーカイブ・アップロードされます。iPhone のシミュレーターも入っています。
もっと学ぶ
Xcode のアーカイブ
原文の表記 · Archive
アプリをアップロード用のリリースビルドにまとめる Xcode の段階
アーカイブとは、iPhone アプリのリリース版を、ビルドして署名し、一つのパッケージにまとめたものです。Xcode で Product → Archive を選び、続いて Distribute App で App Store Connect にアップロードします。アップロードのたびに、ビルド番号を前より大きくしなければなりません。この言葉は、古いファイルをしまっておくこととは関係ありません。
もっと学ぶ
リリースビルド
原文の表記 · Release build
ストアで公開するために作る、最適化した最終のビルド
開発しているあいだ、アプリはデバッグビルドとして動きます。遅く、大きく、確認用のツールがたくさん入っています。リリースビルドはそれらのツールを外し、コードを最適化し、自分の鍵で署名したもので、ユーザーがストアからインストールする版です。バグの中にはリリースビルドでしか出ないものもあるので、アップロードする前に必ずリリースビルドで試しましょう。
もっと学ぶ
ストアの掲載情報
原文の表記 · Store listing
ストアに表示される、アプリの名前・説明・スクリーンショット
ストアの掲載情報は、インストールする前に人が見るページです。アプリの名前、短い説明と詳しい説明、アイコン、スクリーンショット、カテゴリー、プライバシーポリシーへのリンクがあります。Play Console や App Store Connect で書きこみ、審査する人は、それがアプリの実際の動きと合っているかを確かめます。誤解をまねく掲載情報は、アプリが却下されるよくある理由の一つです。
もっと学ぶ
原文の表記 · Data safety form
アプリがどんなデータを集めるかを申告する Play Console の用紙
Google Play は、すべてのアプリにデータセーフティの用紙を書くよう求めます。どんな種類のユーザーデータを集めたり共有したりするか、何のためか、データを暗号化しているか、削除できるか、です。答えは、ストアのアプリのページでユーザーに表示されます。外部のライブラリが集めるものも含めて、アプリの実際の動きとプライバシーポリシーに合っていなければなりません。
もっと学ぶ
バージョンコード
原文の表記 · Version code
アプリをアップロードするたびに上げなければならない内部の番号
人に見せるバージョン名(1.2.0 など)のほかに、アプリのビルドには、ストアが使う整数がついています。Android ではバージョンコード、iPhone ではビルド番号です。アップロードのたびに前より大きな番号にしなければならず、そうでないとストアに断られます。Flutter では、pubspec.yaml の version の行の + のあとの数です。
もっと学ぶ
pubspec.yaml
Flutter アプリの設定ファイル:名前・バージョン・パッケージ
Flutter や Dart のプロジェクトにはどれも、ルートに pubspec.yaml ファイルがあります。アプリの名前、バージョン(バージョン名とビルド番号を + でつないだもの)、使っているパッケージ、画像やフォントなどのアセットが書かれています。パッケージの一覧を編集したら flutter pub get を実行します。YAML で書かれているので、インデントが大事です。
もっと学ぶ
React Native
React と JavaScript でスマホアプリを作るフレームワーク
Meta が作った React Native を使うと、React のコンポーネントの書き方で JavaScript(か TypeScript)を使ってスマホアプリを一度書き、Android と iPhone の両方で動かせます。Web ページを箱に入れただけのものとは違い、本物のネイティブのボタンやリストを描きます。Flutter と並ぶ、いちばん人気のある二つのクロスプラットフォームの選択肢の一つです。
もっと学ぶ
iOS
iPhone のオペレーティングシステム
iOS は、Apple が作った、すべての iPhone を動かしているソフトウェアです。ほかのスマホの多くを Android が動かしているのと同じです。アプリはシステムごとに別々にビルドするので、ストアは iOS 用のビルドと Android 用のビルドを求めます。iPhone アプリは Mac の Xcode でビルドし、App Store か TestFlight でインストールします。
もっと学ぶ
バインディング
原文の表記 · Binding
ある言語から別の言語のライブラリを呼べるようにするつなぎのコード
llama.cpp のように速いライブラリの多くは、C や C++ で書かれています。バインディングはそうしたライブラリを包んで、Python・Dart・JavaScript のような別の言語から、まるでその言語で書かれたように呼べるようにします。重い仕事は、元の速いコードがそのまま実行します。バインディングがライブラリより古いと、新しい機能が使えないことがあります。
もっと学ぶ
アプリに組み込む
原文の表記 · Embed
ファイルやモデルをアプリの中に入れて、いっしょに配ること
組み込むとは、何かをアプリの中に詰めて、サーバーから取ってこなくても使えるようにすることです。小さな言語モデルをランナーといっしょにスマホのアプリに組み込めば、オフラインでも動きます。単語や文を表す数の並びである「埋め込み(エンベディング)」とは別の言葉です。
もっと学ぶ
ミドルウェア
原文の表記 · Middleware
リクエストと本来の処理のあいだに入って、手順を一つ足すコード
ミドルウェアは、本来のコードが動く前(または後)に、すべてのリクエストや手順が通る層です。本来のコードが知らないうちに、ログインを確かめたり、ログを書いたり、長いコンテキストを短くしたり、危ないことを止めたりできます。Laravel のような Web フレームワークはログインにミドルウェアを使い、エージェントのハーネスはモデルを呼ぶたびにそのまわりで使います。
境界値
原文の表記 · Boundary value
合格点ちょうどのような、限界ぴったりのテストの値
バグはルールの端にいちばん隠れています。60 点以上で合格にするプログラムなら、30 と 90 だけでなく、59、60、61 を試します。> のつもりで >= と書いた間違いは、ちょうど 60 のときにしか表れません。空の入力、0、許される最大の数も境界値です。
flush
ためておいた出力を、待たずにすぐ送り出すこと
手間を省くため、プログラムは表示するものをバッファにためて、まとめて送り出します。MCP のクライアントのように別のプログラムが 1 行ずつ待っていると、その遅れが固まったように見えます。Python では print(..., flush=True) でその行をすぐ送り出せます。これがないと、バッファがいっぱいになるかプログラムが終わるまで出力が出てこないことがあります。
もっと学ぶ
vendor フォルダー
原文の表記 · vendor folder
ツールがプロジェクトのためにダウンロードした外部のコードを置くフォルダー
パッケージのツールは、ほかの人が書いたコードを専用のフォルダーに置きます。PHP の Composer は vendor/、npm は node_modules/ を使います。次のインストールで上書きされるので、そこにあるファイルは決して編集しません。代わりに、パッケージの一覧でバージョンを変えます。だから AI エージェントへのルールには「vendor/ にはさわらない」とよく書かれています。
elif
Python の「else if」:最初の条件が外れたら別の条件を確かめる
Python では、if が条件を確かめ、elif(else if の略)は前の条件がすべて偽だったときだけ次の条件を確かめ、else が残りすべてを受け止めます。Python は上から下へ進み、最初に真になった分かれ道だけを実行するので、いちばん細かい条件を先に置きます。どの行もコロンで終わり、その下のコードは字下げします。
もっと学ぶ
KeyError
辞書にないキーを探したときの Python のエラー
辞書はキーで値を探します。scores["music"] のように、ないキーを求めると、プログラムは KeyError とそのキーを出して止まります。まずつづりと大文字・小文字を確かめましょう。キーがないのがふつうのことなら、scores.get("music", 0) を使います。失敗するかわりに、決めておいた値を返します。
もっと学ぶ
ValueError
型は合っているけれど、中身が使えない値のときの Python のエラー
ValueError は、関数が正しい種類の値を受け取ったけれど、それが使えない値だったという意味です。int("abc") は文字を受け取りますが、数を表す文字ではありません。NumPy では、配列の形が合わないときにも出ます。たとえば a @ b に、内側の大きさが違う行列を渡したときです。メッセージの最後の行を読み、値やその .shape を表示してみましょう。
もっと学ぶ
ModuleNotFoundError
Python のエラー「No module named …」:パッケージがインストールされていない
Python がパッケージを見つけられないと、import numpy は No module named 'numpy' で失敗します。たいていはインストールされていないか、別の Python や別の仮想環境にインストールされています。プロジェクトの venv をオンにし、python3 -m pip install numpy でインストールし、同じ python3 でプログラムを実行しましょう。
もっと学ぶ
NameError
定義していない名前を使ったときの Python のエラー
NameError: name 'x' is not defined は、Python が知らない変数や関数の名前に出会ったという意味です。よくある原因は、打ち間違い、大文字・小文字の違い、変数を決める行より前でその変数を使ったこと、import の忘れです。Python は名前を正確に読むので、Score と score は別のものです。
もっと学ぶ
pytest
Python のテストを見つけて実行するツール
pytest はプロジェクトのすべてのテストを実行し、どれが通ってどれが失敗したかを報告します。test_*.py という名前のファイルと、名前が test_ で始まる関数を探し、それぞれのテストはふつうの assert で結果を確かめます。AI エージェントに「変更のたびに python -m pytest を実行する」というルールを渡すと、エージェントが自分の仕事を確かめられます。
もっと学ぶ
import
モジュールを読みこんで使えるようにする Python の文
Python は、最初はわずかな組み込み関数しか持っていません。ほかのものはすべてモジュールの中にあります。import re で正規表現のモジュールを読みこみ、そのあとで re.search(...) のようにその関数を呼びます。from math import sqrt なら、名前を一つだけ直接取りこみます。Python についてくるモジュールはいつでも動きますが、それ以外はまず pip でインストールしなければなりません。
もっと学ぶ
raw 文字列
原文の表記 · Raw string
r"…" と書く、バックスラッシュをそのまま残す Python の文字列
ふつうの Python の文字列では、バックスラッシュは特別な文字の始まりです。"\n" は改行、"\b" はバックスペースです。r"\b\d+" のように前に r をつけると、すべてのバックスラッシュが打ったとおりに残ります。正規表現はバックスラッシュだらけなので、パターンはいつも raw 文字列で書くくせをつけましょう。
もっと学ぶ
PyPI
Python Package Index、Python のパッケージの公開ストア
PyPI(pypi.org)は、pip がパッケージをダウンロードしてくる場所です。だれでも公開できるので、1 文字だけ違うパッケージの名前がわなのこともあります。新しいものをインストールする前に、正確な名前、作者、ダウンロード数を確かめましょう。Node.js にとっての npm レジストリと同じ役目を、Python で果たしています。
もっと学ぶ
requirements.txt
プロジェクトに必要な Python のパッケージとバージョンを並べたファイル
requirements.txt には、Python のプロジェクトが使うすべてのライブラリが、ふつうは numpy==2.1.3 のように固定したバージョンつきで書かれています。これがあれば、だれでもコマンド一つで同じ環境を作り直せます。新しいバージョンでふるまいが変わり、昨日まで動いていたコードが壊れることがあるので、バージョンの固定が大事です。
もっと学ぶ
データ型
原文の表記 · Data type
整数・小数・文字のような、値の種類
すべての値にはデータ型があり、型によってその値で何ができるかが決まります。Python では、3 は int、3.0 は float、"3" は str、True は bool です。文字と数は足せないので "3" + 4 は失敗します。まず int("3") で変換します。お金や浮動小数点のように、正確さのためにも正しい型を選ぶことが大事です。
もっと学ぶ
console.log
値を表示する JavaScript の関数
console.log は、渡したものを何でも表示します。ブラウザーでは開発者ツールの Console に文字が出て、Node.js ではターミナルの標準出力に出るので、ほかのプログラムの出力と同じようにパイプでほかのコマンドに渡せます。デバッグ中に変数に何が入っているかを見る、いちばん手軽な方法です。
もっと学ぶ
JavaScript エンジン
原文の表記 · JavaScript engine
ブラウザーや Node.js の中で JavaScript を実行するプログラム
JavaScript エンジンは JavaScript のコードを読み、コンピューターが実行できる命令にすばやく変えます。Chrome と Node.js は Google の V8 エンジンを共有していて、Firefox は SpiderMonkey、Safari は JavaScriptCore を使います。Node.js は、V8 をブラウザーから取り出して、ページを描くかわりにファイルを読んだりネットワークを使ったりする道具を足したものです。
もっと学ぶ
process.argv
Node.js のスクリプトを起動したときの言葉の一覧
process.argv は、Node.js のスクリプトを起動したコマンドラインの配列です。0 番目は node のパス、1 番目はスクリプトのパスで、2 番目からが打ちこんだ引数です。つまり node greet.js Mina なら、process.argv[2] に "Mina" が入ります。どの項目も文字なので、数は Number() で変換します。
もっと学ぶ
npm audit
インストールしたパッケージに既知のセキュリティの問題がないかを調べる npm の検査
npm install のあと、npm は短いセキュリティ検査(audit)を行い、インストールしたパッケージのうち既知の脆弱性を持つものがいくつあるか、どれくらい深刻かを報告します。npm audit で詳しく見られ、npm audit fix はバージョンの決まりを壊さない範囲でアップグレードします。すべての警告が自分のプロジェクトに関係するわけではありませんが、high と critical のものは読みましょう。
もっと学ぶ
@latest
「いちばん新しく公開された版」を意味する npm のタグ
パッケージ名のあとに @latest をつけると、今 latest の印がついている版を npm に求めます。npm install -g firebase-tools@latest はグローバルのツールを更新し、npx create-vite@latest は、キャッシュに残った古いものではなく、いちばん新しいスターターのツールを使うようにします。prettier@3 のように、決まったバージョンを書くこともできます。
もっと学ぶ
npm prefix
グローバルのパッケージをどこにインストールするかを決める npm の設定
npm の prefix は、グローバルにインストールしたパッケージとそのコマンドを置くフォルダーです。/usr/local のようなシステムのフォルダーを指していると、権限がないので npm install -g は EACCES で失敗します。sudo を使うかわりに、nvm を使うか、prefix を自分のホームフォルダーの中に移し、その bin フォルダーを PATH に足しましょう。
もっと学ぶ
npm レジストリ
原文の表記 · npm registry
npm がダウンロードしてくる JavaScript のパッケージのオンラインストア
npm レジストリ(registry.npmjs.org)には、公開された何百万もの JavaScript のパッケージがあります。npm install や npx はそこからパッケージを取ってきて、キャッシュにコピーを残します。だれでも公開できるので、実行する前にパッケージの名前、作者、ダウンロード数を確かめましょう。パッケージのストアであって、Git のリポジトリではありません。
もっと学ぶ
.nvmrc
プロジェクトが使う Node.js のバージョンを書いたファイル
.nvmrc ファイルはプロジェクトのフォルダーにあり、22 のような Node.js のバージョンが 1 行だけ書いてあります。プロジェクトを開いた人はだれでも nvm use を実行すれば同じバージョンになるので、「自分のコンピューターでは動くのに」という問題が減ります。数を書かずに nvm install を実行すると、ファイルに書かれたバージョンをインストールします。
もっと学ぶ
パッケージマネージャー
原文の表記 · Package manager
ソフトウェアを探し、インストールし、更新し、削除するツール
パッケージマネージャーは、コマンドを打って使うアプリストアです。プログラムを、それが必要とするものといっしょにダウンロードし、バージョンを管理し、きれいに削除します。オペレーティングシステムには専用のもの(Alpine の apk、Ubuntu の apt、macOS の Homebrew、Windows の winget)があり、言語にもそれぞれのもの(JavaScript の npm、Python の pip)があります。
もっと学ぶ
スキャフォールディング
原文の表記 · Scaffolding
新しいプロジェクトの最初の骨組みを自動で作ること
スキャフォールディングのツールは、いくつか質問をしてから、新しいプロジェクトに必要なフォルダー、設定ファイル、サンプルのコードを作ります。そのため、最初から動くものを土台に始められます。npx create-vite@latest や flutter create がよくある例です。作られたファイルは出発点にすぎないので、自由に変えたり消したりします。
もっと学ぶ
キャレット(^)のバージョン範囲
原文の表記 · Caret (^) version range
^4.17.21 は「この版か、互換性のあるもっと新しい版」という意味
npm のバージョンは major.minor.patch の三つの部分からできています。package.json の ^4.17.21 のようなキャレットは、4.17.21 から 5.0.0 の手前までのどの版でも認めます。新しいメジャー番号では何かが壊れるかもしれないからです。実際にインストールされた正確な版は package-lock.json に書かれ、npm ci はまさにその版をインストールします。
もっと学ぶ
--depth 1
履歴ではなく、いちばん新しい版だけをダウンロードする git clone
ふつうの git clone は、プロジェクトのこれまでのすべてのコミットをコピーします。git clone --depth 1 は最後の一つだけを取ってくるので、ずっと速く小さくすみ、コードを読んだり動かしたりしたいだけのときにぴったりです。そのかわり、git fetch --unshallow で残りを取ってくるまで、古いコミットを見たり戻ったりはできません。
もっと学ぶ
ハッシュ
原文の表記 · Hash
中身から計算した短い指紋。中身が変われば値も変わる
ハッシュ関数は、どんな量のデータでも、決まった長さの短い文字列に変えます。同じ入力からはいつも同じハッシュが出て、1 文字でも変えるとまったく違うハッシュになります。そのため、ファイルが変わったかどうかがすぐに分かります。Git はすべてのコミットをハッシュで名づけるので、コミットハッシュ一つがコードのただ一つの版を指します。
プレーンテキスト
原文の表記 · Plain text
文字だけの文章 — フォントも色も隠れた書式もない
プレーンテキストのファイルには文字しか入っていません。だから、コード・HTML・設定ファイルはプレーンテキストで保存しなければなりません。ワープロは隠れた書式を足してコードを壊すので、テキストエディットでは先に フォーマット → 標準テキストにする を選びます。セキュリティの話では、HTTPS ではなく HTTP のときのように、暗号化されていないデータのことも平文(plaintext)と呼びます。
ロジック
原文の表記 · Logic
プログラムが判断して動くときに従うルールと手順
プログラムのロジックとは、その判断の仕組みです。どんな順で物事が起き、どの条件を確かめ、それぞれの場合に何が起きるか。「ゲームロジック」は、だれが点を取ったか、いつラウンドが終わるかを決めます。「ツールのロジック」は、ツールが入力をどう扱うかを決めます。人工知能をロジックの機械と呼ぶのは、気持ちや意図なしに、計算された手順に従うという意味です。
権限
原文の表記 · Permission
人やプログラムが読む・変える・実行することを許されている範囲
権限とは、何かをする権利です。ファイルを読む、変える、コマンドを実行する、カメラを使う、だれかの代わりに投稿する、などです。ファイルには権限があり、スマホのアプリは権限を求め、AI エージェントはあなたから権限を受け取ります。どのフォルダーを編集してよいか、どのコマンドを聞かずに実行してよいか、です。仕事に必要なぶんだけを渡しましょう。あとから権限を足すほうが、起きた被害を元に戻すより簡単です。
リンター
原文の表記 · Linter
コードの間違いやルール違反を自動で見つけるツール
リンターはコードを実行せずに読み、バグになりそうなところや書き方の問題を指摘します。一度も使われない変数、閉じていない引用符、危ない書き方などです。これを実行することをリント(lint)と言い、npm run lint のように使います。機械が合格か不合格かをはっきり出すので、テストとリントは、AI エージェントが一人で作業するときのよいゴールになります。リンターは問題を見つけ、フォーマッターは見た目の並びを整えるだけです。
もっと学ぶ
原文の表記 · Formatter
コードの見た目を一つの決まったスタイルに書き直すツール
フォーマッターは、空白、改行、引用符、インデントを書き直して、だれが(あるいは何が)書いたかにかかわらず、プロジェクトのすべてのコードを同じ見た目にします。コードがすることは変えません。Claude Code のフックなどで編集のたびに自動で実行すると、AI が書いたコードもきれいに保たれ、diff のレビューも楽になります。
もっと学ぶ
Prettier
JavaScript・CSS・HTML・Markdown のための人気のフォーマッター
Prettier は、言い争うような設定がほとんどないまま、コードを一つのそろったスタイルに整える npm のパッケージです。ふつうはプロジェクトごとに開発用の依存パッケージとしてインストールし、npx で実行します。--write はファイルを書きかえ、--check は整っていないファイルを報告するだけなので、自動の確認に向いています。
もっと学ぶ
長期サポート版
原文の表記 · LTS
LTS:何年も修正が届く版
LTS(長期サポート)のリリースは、作った人たちが、特にセキュリティについて長いあいだ修正を続けると約束した版です。Node.js では偶数の版(22、24 …)が LTS になり、およそ 30 か月サポートされますが、奇数の版は短命です。学ぶときやサーバーを動かすときは LTS の版を選びましょう。
もっと学ぶ
README
プロジェクトの最初の文書:何なのか、どう使うのか
README.md はプロジェクトのいちばん上のフォルダーにあり、プロジェクトが何をするのか、どうインストールして動かすのか、次にどこを見ればよいのかを説明します。GitHub はリポジトリの表紙にこれを表示するので、訪れた人が最初に読むものです。「README にアプリの動かし方が書いてある」のような目標は、AI エージェントにとっても分かりやすいゴールになります。
イシュー
原文の表記 · GitHub issue
一つの作業・バグ・アイデアについての GitHub のメモ
イシューは、GitHub のリポジトリにある番号つきのページで、一つの仕事を説明します。バグ、機能、質問などです。みんながコメントし、担当を決め、ラベルをつけ、終わったら閉じます。プルリクエストに「Fixes #12」と書けば、イシューを自動で閉じられます。GitHub Projects や Jira のようなボードは、イシューをカードとして並べます。
もっと学ぶ
拡張機能
原文の表記 · Extension
Chrome や VS Code に新しい機能を足すための追加のプログラム
拡張機能は、別のアプリの中に入れて機能を足す小さなプログラムです。Claude in Chrome のようなブラウザーの拡張機能は Chrome ウェブストアから、Claude Code や Codex の拡張機能のようなエディターの拡張機能は VS Code Marketplace から入れます。拡張機能はそのアプリで見ているものを読めるので、信頼できる発行元のものだけを入れましょう。
もっと学ぶ
エラーログ
原文の表記 · Error log
プログラムが動きながら書くエラーの記録
プログラムは、何がうまくいかなかったかを、時刻や詳しい情報といっしょにエラーログに書きます。ファイル、ターミナル、サービスなどです。ログには、画面の短いメッセージより多くのこと、たとえば行番号や呼び出しのつながりが入っています。AI に助けを求めるときは、何千行も貼りつけるのではなく、ログの関係する行を、問題の再現方法と期待していた結果といっしょに渡しましょう。
原文の表記 · Platform
ブラウザー・スマホ・サービスのような、プログラムが動く土台
プラットフォームとは、プログラムがその上で動くように作られている土台のことです。オペレーティングシステム(Android、iOS、Windows)、ブラウザー、家庭用ゲーム機、ゲームプラットフォームの SDK のように自分のツールを持つオンラインサービスなどです。プラットフォームごとにルールや制限が違うので、ストアはプラットフォームごとに別のビルドを求めます。「クロスプラットフォーム」とは、一つのコードがいくつものプラットフォームで動くという意味です。
ソフトウェア
原文の表記 · Software
機械そのものではなく、コンピューターで動くプログラム全部
ソフトウェアは、プログラムとそれが必要とするデータをまとめて呼ぶ言葉です。アプリ、ゲーム、Web サイト、オペレーティングシステム、AI のモデルもそうです。ハードウェアはさわれる部分で、ソフトウェアはそれが従う命令です。ソフトウェアを変えるのはハードウェアを変えるより安くて速いので、新しい機能のほとんどは更新として届きます。
自動化
原文の表記 · Automation
決まった仕事を、人の代わりにコンピューターに自分でやらせること
自動化は、手でくり返している仕事をコンピューターが自分でやることに変えます。500 個のファイルの名前を変えるシェルスクリプト、毎週月曜に動く予定の作業、push のたびに動くテスト、毎週の報告書を集める AI エージェントなどです。最初の 1 回は手間がかかりますが、そのあとは何度でもただで動きます。自分が分かっている手順だけを自動化し、結果を確かめましょう。
プログラミング言語
原文の表記 · Programming language
コンピューターが実行できる命令を書くための、決まった言語
プログラミング言語には、コンピューターに何をさせるかを伝える正確な言葉と文法があります。Python、JavaScript、Bash、C、Rust などがあり、ちょっとしたスクリプトから速いエンジンまで、得意な仕事がそれぞれ違います。人の言葉とは違い、推測の余地はありません。かっこが一つ足りないだけでプログラムは止まります。AI もこうした言語でコードを書くので、読めることはやはり大事な力です。
バージョン
原文の表記 · Version
プログラム・モデル・ファイルの番号つきの版
プログラム、パッケージ、モデルは時間とともに変わり、公開されたそれぞれの状態にバージョンがつきます。3.12.4 のように major.minor.patch の形で書くことがよくあります。最初の数が大きくなるのは、ふつう古いコードを壊しうる変更があるときです。「自分では動くのにあなたのところでは動かない」という問題の多くはバージョンの違いから来るので、まず確かめ、requirements.txt や .nvmrc のようなファイルで固定しましょう。
定数
原文の表記 · Constant
一度決めたら変えられない、名前のついた値
定数は、最初の値を入れたあとに鍵をかけた変数のようなものです。Bash では readonly PI=3.14 とすると、あとで変えようとするとエラーになります。JavaScript では const と書きます。Python には本当の定数がないので、MAX_SIZE = 100 のように名前を大文字で書いて「変えないで」と伝えます。どこでも同じでなければならない値には定数を使いましょう。
もっと学ぶ
宣言
原文の表記 · Declaration
変数(とその種類)を使う前に知らせておくこと
宣言は、ある名前があることを、ときにはその種類といっしょに言語に伝えます。Bash ではふつう宣言はいりません。name=Mina と書けば、その場で変数ができます。ただし、declare -A の連想配列のように、先に宣言しなければならない種類もあります。Java や C のような言語では、すべての変数を使う前に型といっしょに宣言します。
もっと学ぶ
関数の定義
原文の表記 · Definition
あとで使えるように関数や変数を作ること
定義とは、名前に中身を与えるところです。関数を作る行や、変数に初めて値を入れるところです。コードは定義されたあとでしか名前を使えないので、スクリプトでは関数の定義をそれを呼ぶ行より前に置きます。set -u をつけると、一度も定義されていない変数を使ったときに Bash が止まるので、打ち間違いを見つけられます。
もっと学ぶ
.NET
プログラムを作って動かすための Microsoft の無料のプラットフォーム
.NET は、C#・F# などの言語で書いたプログラムを Windows・macOS・Linux で動かすための、Microsoft のオープンソースのプラットフォームです。PowerShell は .NET の上に作られているので、その正規表現は .NET のルールに従い、\d、\w、\s や名前つきグループが使えます。PowerShell を使うのに .NET を知っている必要はありません。
もっと学ぶ
呼び出し
原文の表記 · Function call
名前を使って関数やコマンドを実行すること
関数を定義しても、仕事の中身を書いただけです。呼び出すと実行されます。Python の print("hi") や Bash の greet Mina のように、名前と引数を書いて関数を呼び出すと、結果を返してくることもあります。プログラムのほとんどは、自分やほかの人が書いた関数の呼び出しです。AI のモデルがプログラムにツールの実行を頼むことは、ツール呼び出しと呼ばれます。
入れ子
原文の表記 · Nesting
同じ種類のものの中に、もう一つを入れること
入れ子とは、ある仕組みの中に同じような仕組みを置くことです。ループの中のループ、if の中の if、リストの中のリスト、$(dirname $(pwd)) のようにコマンド置換の中のコマンド置換などです。$( ) はきれいに入れ子にできるので、バッククォートより好まれる理由の一つになっています。深い入れ子は読みにくいので、3 段より深くなったらコードを分けるサインです。
もっと学ぶ
switch 文
原文の表記 · switch statement
Bash の case のような、ほかの言語のいくつにも分かれる分岐
JavaScript・C・Java では、switch が一つの値を case の一覧と比べ、合ったブロックを実行します。長い if/else if のつながりよりすっきりします。Bash は case … esac で同じ仕事をし、*.txt のようなパターンも case に書けます。JavaScript では break を忘れると、次の case まで実行されてしまいます。
もっと学ぶ
コードのブロック
原文の表記 · Block
一つのまとまりとしていっしょに実行される行のかたまり
ブロックは、ひとまとまりになるコードのかたまりです。if の then と fi のあいだ、ループの do と done のあいだ、関数の { } の中の行です。awk には、最初の行の前と最後の行のあとに動く特別な BEGIN と END のブロックもあります。どこで終わるかが見えるように、ブロックの中の行は字下げしましょう。開いたブロックは必ず閉じなければなりません。
もっと学ぶ
camelCase
単語をつなげ、2 語目からの頭を大文字にする名前のつけ方
camelCase は、いくつかの単語からなる名前を空白なしで書き、2 語目からは単語の頭を大文字にします。userName、totalPrice のようにです。JavaScript は変数や関数にこれを使い、Python は snake_case(user_name)を好み、ファイル名や URL ではよく kebab-case(user-name)を使います。名前は完全に一致しなければならないので、プロジェクトですでに使っている書き方に合わせましょう。
CHANGELOG
それぞれの版で何が変わったかを記録するファイル
CHANGELOG(ふつうは CHANGELOG.md)には、プロジェクトのすべての版が、日付と、追加・変更・修正といっしょに新しい順に並んでいます。Claude Code のように変化の速いツールは、ユーザーが新しい機能に追いつけるようにこれを公開しています。小さな一歩まですべて記録するコミットの履歴とは違い、人が読むために書かれています。
もっと学ぶ
リリースノート
原文の表記 · Release notes
その版で何が新しくなったかをユーザーに伝える短いお知らせ
リリースノートは、新しい版をユーザーに知らせます。新しい機能、大事な修正、設定を変えるなどユーザーがしなければならないことです。CHANGELOG より短く親しみやすく、前のリリースからのコミットをもとに下書きすることがよくあります。くり返し書くものなので、AI エージェントのスキルにするのにちょうどよい作業です。
コマンドインジェクション
原文の表記 · Command injection
入力にコマンドをしのびこませて実行させる攻撃
コマンドインジェクションは、プログラムが自分で管理していない文字からシェルのコマンドを組み立て、その文字に余分なコマンドが入っていると起きます。a.txt; rm -rf ~ のようなファイル名が、害のないコマンドを破壊的なものに変えてしまうことがあります。変数は引用符で囲み、信頼できない文字をシェルに渡さないようにしましょう。AI エージェントでは、あなたではなく Web ページやファイルから来たコマンドに気をつけます。
フィードバックループ
原文の表記 · Feedback loop
試して、結果を確かめて、直すことをくり返すサイクル
フィードバックループは、作業している人に、今の変更が正しかったかをすばやく知らせ、もう一度試させます。AI エージェントにとっては、テスト、リンター、型チェック、スクリーンショットが合図になるので、一歩ごとに人がいなくてもエージェントは自分で直せます。合図が速くはっきりしているほど、仕事はよくなります。
ワークツリー
原文の表記 · Worktree
同じリポジトリの、別のブランチ用のもう一つの作業フォルダー
git worktree は、同じリポジトリの別のブランチを、一つの履歴を共有したまま別のフォルダーに取り出します。フォルダーごとに自分のファイルがあるので、Claude Code や Codex の二つのセッションが、おたがいを上書きせずに並行して作業できます。作業をマージしたら、ワークツリーを消します。ワークツリーごとに、依存パッケージを別にインストールする必要があります。
もっと学ぶ
並行作業
原文の表記 · Parallel
いくつかの作業を同時に、並べて進めること
並行作業とは、いくつかの仕事を一つずつ順番にではなく、同時に進めることです。AI エージェントなら、いくつものセッションやサブエージェントを並行して動かし、それぞれに自分の作業をさせられます。危ないのは二人が同じファイルを編集することなので、それぞれに自分のワークツリーか自分のファイルを渡し、最後に結果をマージします。
もっと学ぶ
GitHub Project
イシューをカード・表・タイムラインで管理する GitHub のボード
GitHub Project は、一つかいくつかのリポジトリのイシューとプルリクエストを一つのボードに集めます。列のあるカンバンボード、表、ロードマップとして見られ、優先度のような自分のフィールドを足せます。gh のコマンドラインツールで項目を作ったり動かしたりできるので、AI エージェントが代わりにボードを管理できます。
もっと学ぶ
カンバン
原文の表記 · Kanban
作業のカードが「やること → 完了」のように列を進んでいくボード
カンバンボードは、仕事を列に並んだカードで表します。ふつうは「やること」「進行中」「完了」の列です。カードを次の列に動かすと進み具合がひと目で分かり、「進行中」に置くカードの数を制限すると、チームが一度に手を広げすぎるのを防げます。この方法はトヨタの工場から生まれました。GitHub Projects、Trello、Jira にはどれもカンバンの表示があります。
もっと学ぶ
Jira
会社でよく使われる、Atlassian のイシュー・プロジェクト管理ツール
Jira は Atlassian の有料の Web サービスで、ボード、スプリント、レポートを使って、イシュー・バグ・タスクを管理します。GitHub のイシューの代わりにこれを使う会社がたくさんあります。MCP サーバーを通せば、Claude Code のような AI エージェントが仕事の一部として Jira のチケットを読んだり更新したりできます。
JetBrains
IntelliJ IDEA、PyCharm、WebStorm などの IDE を作っている会社
JetBrains は、プロの開発者に広く使われている IDE を作っているソフトウェア会社です。Java と Kotlin の IntelliJ IDEA、Python の PyCharm、JavaScript の WebStorm、PHP の PhpStorm などがあります。ページに「VS Code か JetBrains」と書いてあれば、これらのエディターのことです。Claude Code にはこれら用のプラグインがあり、Android Studio は IntelliJ をもとに作られています。
もっと学ぶ
IDE
統合開発環境:編集・実行・デバッグを一つのアプリで
IDE(統合開発環境)は、コードエディター、プログラムを動かす仕組み、デバッガー、検索、Git、たいていはターミナルまで、一つのウィンドウにまとめたものです。VS Code は拡張機能を入れると IDE になり、JetBrains の製品や Xcode は最初から完全な IDE です。AI のコーディングツールは、拡張機能やプラグインとして IDE の中で、またはそのとなりのターミナルで動きます。
ハンドラー
原文の表記 · Handler
ある出来事が起きたときに実行されるよう用意されたコード
ハンドラーは、一つの種類の出来事を待ち、それが起きると実行されます。ボタンのクリック、あるアドレスへのリクエスト、ファイルの保存などです。Claude Code では、フックのハンドラーにシェルのコマンド、HTTP のアドレス、MCP のツール、LLM のプロンプト、サブエージェントが使え、その時が来るたびに実行されます。実行するかどうかをモデルが選ぶことはありません。
グローバルな設定
原文の表記 · Global
一つのプロジェクトだけでなく、このコンピューターのすべてのプロジェクトに当てはまること
グローバルな設定やインストールはコンピューターのどこでも働き、ローカル(プロジェクト)のものは一つのプロジェクトのフォルダーの中だけで働きます。npx skills add … -g はスキルをグローバルにインストールし、~/.claude/CLAUDE.md には、どのプロジェクトでも読まれるグローバルな指示が入っています。同じものが両方にあるときは、どちらが勝つかを確かめましょう。スキルの場合、Claude Code はグローバル(個人)のものを使います。
もっと学ぶ
MIT ライセンス
原文の表記 · MIT License
短いオープンソースのライセンス:自由に使える。表示だけは残す
MIT ライセンスは、著作権の表示とライセンスの文がいっしょについている限り、だれでもソフトウェアを使い、コピーし、変え、売り、共有できるようにします。また、ソフトウェアには何の保証もないとも書いてあります。短くて求めることがとても少ないので、GitHub でいちばんよく使われるライセンスの一つです。ライセンスの文は、ふつう LICENSE という名前のファイルに入っています。
もっと学ぶ
pdfplumber
PDF から文字や表を取り出す Python のライブラリ
pdfplumber は PDF を開き、ページごとに、その文字、位置つきの単語、表を取り出してくれます。本物の文字が入った PDF で動きます。スキャンした PDF はただの画像なので、代わりに OCR が必要です。エージェントに「pdfplumber を使う。OCR はスキャンした PDF のときだけ」と伝えるスキルは、選択肢を並べるかわりに、はっきりした一つの基本を決めてくれます。
もっと学ぶ
P0 · P1
優先度のラベル:P0 がいちばん急ぎで、次が P1、P2 …
チームは問題を優先度で分け、短いラベルをつけます。P0 は「今すぐ直す」という意味で、サービスが止まっている、データが失われている、セキュリティの穴がある、などです。P1 は深刻で、すぐに直すべきものです。P2 以下は待てます。Codex の PR レビューは、はじめから P0 と P1 の指摘だけを報告するので、雑音なしに大事なことだけが見られます。
もっと学ぶ
テンプレート
原文の表記 · Template
空いたところを埋めるだけでよい、できあいの枠
テンプレートは、空欄のある、前もって用意した形です。報告書の骨組み、スターターのプロジェクト、{name} を埋めるメールなどです。スキルはよく assets/ フォルダーにテンプレートを入れておき、エージェントが毎回同じ組み立てで作るようにします。チャットテンプレートは特別な例で、モデルが学習したときの役割とメッセージのぴったりの並べ方です。モデルによく答えさせるには、ランナーがこれを使わなければなりません。
TODO
やることのメモ。コードでは、残っている仕事の印
TODO は「まだやること」という意味です。開発者はコードに # TODO: handle empty input のようなコメントを残し、あとで grep で探します。イシューやボードでは、TODO のチェックリストが一つの仕事を小さな手順に分け、一つずつチェックしていくので、進み具合も分かります。古い TODO はすぐにたまるので、大事なものはイシューにしましょう。
リポジトリのルート
原文の表記 · Repository root
Git のリポジトリのいちばん上のフォルダー
リポジトリのルートは、Git で管理しているプロジェクトのいちばん上のフォルダーで、隠しフォルダーの .git があるところです。Claude Code は、起動したフォルダーからこのルートまでの間で CLAUDE.md ファイルと .claude/skills を探し、それより上は見ません。git rev-parse --show-toplevel がそのパスを表示します。
git config
Git がすべてのコミットに書く名前とメールアドレスを設定すること
どのコミットにも誰が作ったかが記録されるので、Git をインストールしたらすぐに、git config で自分の名前とメールアドレスを一度だけ伝えます。--global を付けると、このコンピューターのすべてのリポジトリに効きます。付けないと、今いるリポジトリだけです。git config --list で今の設定を見られます。
もっと学ぶ
強制プッシュ(force push)
原文の表記 · Force push
リモートの履歴を自分のもので上書きする push
リモートに自分の持っていないコミットがあると、ふつうの push は断られます。git push --force はそれでも push して、リモートのブランチを自分の版に取り替えるので、ほかの人が push したコミットが消え、チームの仲間の手元とずれてしまいます。誰も pull していない自分だけのブランチでだけ使いましょう。--force-with-lease のほうが安全です。最後に fetch してからリモートが変わっていたら止まるからです。
もっと学ぶ
reflog
HEAD がいた場所すべての Git の記録 — なくしたコミットが見つかる場所
git reflog は、リポジトリで HEAD が指したすべてのコミットを新しい順に並べます。reset や rebase のあと、どのブランチにも見えなくなったコミットも入っています。git reset --hard で作業をなくしたら、ここでそのコミットを見つけて戻りましょう。自分のコンピューターにだけ残り、古い記録はしばらくすると消えます(標準では 90 日)。
もっと学ぶ
reset
今のブランチを前のコミットまで戻すこと
git reset はブランチを後ろに戻すので、それより後のコミットはブランチに含まれなくなります。--soft はその変更をステージしたまま残し、標準の --mixed はステージしていない変更として残し、--hard はコミットしていない作業ごと捨てます。push していないコミットにだけ使い、共有したコミットには git revert を使いましょう。
もっと学ぶ
git add
変えたファイルを、次のコミットのためにステージングエリアに入れること
git add は、変更をステージングエリアにコピーして、次のコミットに入れるものを選びます。コミットされるのは add したものだけなので、たくさんのファイルを編集しても、一つのコミットに一つのまとまった変更を入れられます。git add -p はファイルの一部を選べ、git add . は今のフォルダーのすべてを追加します。
もっと学ぶ
revert
古いコミットを、それを打ち消す新しいコミットを足して取り消すこと
git revert は、前のコミットと反対のことをする新しいコミットを作るので、変更はなくなりますが、履歴には両方のコミットが残ります。何も書き換えないので、すでに push してほかの人が pull したコミットを取り消す安全な方法です。あとのコミットが同じ行を変えていると、コンフリクトになることがあります。
もっと学ぶ
git status
何が変わったか、それぞれのファイルが三つの場所のどこにあるかを表示すること
git status は、今どのブランチにいるか、どのファイルが変わったがステージされていないか、どれが次のコミットのためにステージされているか、どれが新しくてまだ追跡されていないかを教えてくれます。何も変えないので、迷ったら、add の前、commit の前、危ないコマンドの前に実行しましょう。出力には次の一歩のコマンドも書かれています。
もっと学ぶ
git log
履歴のコミットを新しい順に一覧にすること
git log は、今のブランチのコミットを新しいものから古いものへ、それぞれの ID・作った人・日付・メッセージといっしょに表示します。オプションで読みやすくなります。--oneline はコミットごとに一行、--graph はブランチがどう分かれて合流したかを描きます。一覧が一画面より長いときは、q を押して抜けます。
もっと学ぶ
restore
まだコミットしていない変更を捨てること
git restore は、ファイルを最後のコミットのときの状態に戻し、コミットしていない編集を消します。--staged を付けると、ファイルをステージングエリアから出すだけで、編集は残します。捨てた編集は一度も Git に保存されていないので、取り戻せません。先に git status か git diff で確かめましょう。
もっと学ぶ
cherry-pick
別のブランチのコミットを一つだけ、このブランチにコピーすること
git cherry-pick は、どこにあるコミットでもその変更を取ってきて、今のブランチに新しいコミットとして当てます。たとえばリリース用のブランチのように、機能ブランチの修正を一つだけ今すぐ使いたいときに便利です。コピーには新しい ID が付くので、この方法でたくさんのコミットを選ぶと、マージより履歴が追いにくくなります。
もっと学ぶ
stash
途中の作業をしばらく脇に置き、あとで戻すこと
git stash は、コミットしていない変更を取って別の山に保存し、作業フォルダーをきれいにします。そのため、急ぎの修正のためにブランチを切り替えられます。git stash pop は変更を戻して、山から取り除きます。Git がまだ追跡していない新しいファイルは、-u を付けない限り残ったままです。
もっと学ぶ
git tag
v1.0.0 のように、一つのコミットに付ける動かない名札
git tag は、コミットに名前(ふつうはバージョン番号)を留めるので、リリースしたとおりのコードをいつでも見つけられます。ブランチと違って、新しいコミットを作ってもタグは動きません。注釈付きタグ(-a)は、誰が、いつ、どんなメッセージで作ったかも保存します。タグは自分で push しない限り送られません。
もっと学ぶ
git init
今のフォルダーを新しい Git のリポジトリにすること
git init は、今のフォルダーの中に隠しフォルダー .git を作り、それからは Git がそのフォルダーの履歴を記録できるようになります。add して commit するまでは何も保存されません。プロジェクトのフォルダーそのものの中で実行しましょう。ホームフォルダーで実行すると、自分のすべてのファイルを追跡してしまいます。
もっと学ぶ
git apply
diff(パッチ)ファイルの変更を自分のファイルに当てること
git apply は diff(消す行と足す行)を読み、コミットせずに作業フォルダーのファイルにその編集をします。クラウドの Codex のように、ほかの場所で作られた変更を自分の手元に持ってくる方法です。git apply --check で、先にパッチが合うかどうかがわかります。
もっと学ぶ
Git LFS
大きなファイルをリポジトリの外に置く Git の拡張機能
Git LFS(Large File Storage)は、モデルの重みのような大きなファイルを通常の Git の履歴に入れずに管理します。リポジトリには小さなポインターファイルだけが残り、実際のファイルは別のストレージに置かれます。最初に一度 git lfs install を実行すれば、あとはいつもどおり git add・commit・push を使えます。
もっと学ぶ
重みとパラメータについて詳しく見る
Traceback
エラーが起きた場所を示す Python のエラー報告
Python のプログラムが失敗すると traceback が表示されます。エラーに至るまでの関数呼び出しの流れを、いちばん外側の呼び出しから失敗した行まで順に示したものです。下から読みましょう。最後の行にエラーの種類とメッセージがあり、そのすぐ上の行にファイル名と行番号があります。
もっと学ぶ
uv
Python のプロジェクトとパッケージを管理する高速なツール
uv は Python のプロジェクトを作り、仮想環境を用意し、パッケージをインストールするツールです。pip と venv の仕事をまとめてこなし、しかもずっと高速です。たとえば uv add torch でプロジェクトに PyTorch がインストールされます。
もっと学ぶ
非同期(async)
原文の表記 · async (asynchronous)
時間のかかる処理を待つ間にほかの作業を進める方式
非同期のコードは、ネットワークの応答待ちのような時間のかかる処理を始めておき、じっと止まらずに、その処理が終わるまでほかの作業をこなします。Python では async と await で書きます。この書き方で作った Web サーバーは、たくさんの接続を同時に開いておけます。
もっと学ぶ
.claude/agents/
Claude Code のサブエージェントを置くフォルダー
サブエージェント一つは、名前・説明・使えるツール・指示を書いた Markdown ファイル一つです。プロジェクトの中の .claude/agents/ に置いたファイルはそのプロジェクトのもので、チームといっしょにコミットできます。~/.claude/agents/ に置いたファイルは、すべてのプロジェクトで自分だけが使います。Claude Code は説明を読んで、いつそのサブエージェントに仕事を任せるかを決めます。
もっと学ぶ
~/.claude.json
ホームフォルダーにある Claude Code の個人設定ファイル
~/.claude.json には、自分のユーザーアカウントでの Claude Code の状態が入っています。環境設定、ログイン情報、プロジェクトごとのデータ、local・user スコープで追加した MCP サーバーです。.claude フォルダーや settings.json とは別のファイルです。手で直すときは気をつけ、できれば claude mcp add のようなコマンドに直させます。
もっと学ぶ
mcpServers
MCP サーバーの一覧と起動のしかたを入れる設定キー
mcpServers は、~/.claude.json やプロジェクトの .mcp.json、ほかのアプリの似た設定ファイルで、MCP サーバーの一覧を入れるキーです。項目ごとに名前があり、サーバーを起動するコマンドと引数、または接続先の URL を書きます。この項目がどこにあるかで、そのサーバーを使える範囲が決まります。
もっと学ぶ
.claude/skills/
Claude Code がスキルを探すフォルダー
スキル一つは SKILL.md ファイルが入ったフォルダー一つで、Claude Code はそのフォルダーをここで探します。プロジェクトの中の .claude/skills/ は Git でチームと共有し、~/.claude/skills/ にはすべてのプロジェクトで使う自分のスキルを置きます。Claude はスキルごとに名前と説明だけを読んでおき、作業に必要になったときに指示の全文を読み込みます。
もっと学ぶ
.mcp.json
チーム全員で共有する MCP サーバーを並べたプロジェクトのファイル
.mcp.json はリポジトリのいちばん上に置き、そのプロジェクトの MCP サーバーを並べます。Git にコミットするので、プロジェクトをクローンした人はみな同じサーバーを使えます。Claude Code は、初めて使う前に承認を求めます。claude mcp add に --scope project をつけて実行すると、このファイルに書き込まれます。秘密の値はファイルではなく環境変数に入れます。
もっと学ぶ
.claude/settings.json
Claude Code のプロジェクト設定ファイル — 権限ルール、フックなど
.claude/settings.json には、一つのプロジェクトで共有する設定を書きます。権限ルール(allow・ask・deny)、フック、環境変数などです。コミットしておくので、チーム全員が同じルールで作業できます。自分だけの変更はコミットしない .claude/settings.local.json に、すべてのプロジェクトに効かせたい設定は ~/.claude/settings.json に書きます。
もっと学ぶ
@path
原文の表記 · @path import
CLAUDE.md に @path と書いて、別のファイルの内容を読み込む書き方
CLAUDE.md に @docs/architecture.md のような行を書くと、そのファイルを読み込みます。内容がその場所に書かれているかのように読まれます。よく使うのは @AGENTS.md で、ほかのエージェントが読む共通の指示に Claude Code も従うようにします。読み込んだファイルはセッションごとに最初からコンテキストに入るので、短くしておきます。
もっと学ぶ
CLAUDE.local.md
コミットしない、自分専用の Claude Code のプロジェクト指示
CLAUDE.local.md は、プロジェクトの CLAUDE.md の隣に置くファイルで、自分だけが使う指示(ローカルの URL、自分のテストデータなど)を書き、.gitignore に入れてコミットしないようにします。作業フォルダーやその上のフォルダーに CLAUDE.md・.claude/CLAUDE.md・CLAUDE.local.md が一つでもあると、Claude Code は既定で AGENTS.md を読みません(~/.claude/CLAUDE.md は数えません)。AGENTS.md に頼っているなら、個人のメモは ~/.claude/CLAUDE.md に置くか、/config の Project instructions を claude-md-and-agents-md にして両方を読ませます。
もっと学ぶ
クリップボード
原文の表記 · Clipboard
最後にコピーしたものをコンピューターがしまっておく場所
文字や画像をコピーすると、コンピューターはほかのものをコピーするまでそれをクリップボードに入れておき、貼り付けるとカーソルの位置に出てきます。ウェブページがクリップボードを読めるのはあなたが許可したときだけなので、ブラウザーが貼り付けボタンを止めることがあります。そのときは枠をクリックして Ctrl+V(Mac では ⌘V)を押してください。
Ctrl+V(⌘V)
原文の表記 · Ctrl+V (⌘V)
コピーしたものを貼り付けるキーボードショートカット
Ctrl+V はクリップボードの中身をカーソルの位置に貼り付けます。Mac では同じショートカットが ⌘V(Command+V)です。コピーする Ctrl+C と対になっています。ただしターミナルでは Ctrl+C は実行中のコマンドを止める意味になるので、多くのターミナルでは Ctrl+Shift+V で貼り付けます。
スクリーンショット
原文の表記 · Screenshot
画面に映っているものをそのまま写した画像
スクリーンショットは、画面に映っているものを画像として保存します。Windows では Win+Shift+S で範囲を選んでクリップボードに写し、Mac では Cmd+Shift+4 で範囲をファイルに保存し、Ctrl も一緒に押すとコピーになります。
Ctrl キー
原文の表記 · Ctrl key
ほかのキーと一緒に押してショートカットにするコントロールキー
Ctrl(コントロール)はキーボード左下のキーです。ほかのキーと一緒に押すとショートカットになり、ターミナルでは Ctrl+C でコマンドを止めます。Mac のアプリでは Cmd を使うことが多いですが、ターミナルのショートカットは Mac でも Ctrl です。
FizzBuzz
数を数えながら Fizz・Buzz・FizzBuzz と出力する有名な練習問題
FizzBuzz は、1から順に数を出力し、3の倍数では Fizz、5の倍数では Buzz、両方の倍数では FizzBuzz を代わりに出力する有名な練習問題です。ループ、if による条件分岐、余りを求める演算子 `%` を一緒に練習できます。3の倍数を先に調べると15で Fizz だけが出る間違いがよくあるので、「両方」の場合を先に調べます。
もっと学ぶ
TextEdit
macOS に付いてくるテキストエディター
TextEdit(テキストエディット)は、どの Mac にも入っているシンプルな文書エディターです。標準ではリッチテキスト(RTF)で保存するため、見えない書式が加わります。HTML やコードを書くときは、先に「フォーマット → 標準テキストにする」を選び、入力した文字だけがファイルに入るようにします。
もっと学ぶ
メモ帳
原文の表記 · Notepad
Windows に付いてくるプレーンテキストエディター
メモ帳(Notepad)は Windows に入っているシンプルなエディターです。書式のない文字だけを保存するので、HTML やコードのファイルに向いています。ウェブページを保存するときは、ファイルの種類を「すべてのファイル」にして、名前の最後に .txt が付かないようにします。
もっと学ぶ
os.replace
書き終えたファイルを一度に差し替える Python の方法
os.replace(src, dst) はファイル src の名前を dst に変え、dst がすでにあればそれと置き換えます。同じドライブの中では、この差し替えはアトミック(一瞬で丸ごと)に行われます。ほかのプログラムには古いファイルか新しいファイルのどちらかだけが見え、書きかけのファイルは見えません。そのため、まず一時ファイルに書き、それから os.replace を呼びます。
もっと学ぶ