開発現場で頻繁に出てくる言葉ですが、いざ説明しろと言われると意外とできないものが多いです。そんなモノ達を調べて言語化してみると、結構知識のドットが繋がったりします。
ラップする
ソフトウェア開発における ラップ(wrap) という言葉は、ある機能や処理を別の関数・クラス・モジュールなどで包み込むこと。
これは、元の機能をそのまま使いつつ、追加の処理や制御を加えたり、使いやすくしたり、抽象化したりするためのテクニック。
例:関数をラップする
function fetchData(url) {
return fetch(url);
}
// ラップしてログを追加
function fetchDataWithLogging(url) {
console.log("Fetching:", url);
return fetchData(url);
}
ハンドラー (handler)
何かのイベントや特定の処理が発生したときに呼び出される関数やメソッドのこと
-
イベントハンドラー
ボタンがクリックされたときに呼び出される関数(例:onClickHandler) -
例外ハンドラー
エラーや例外が発生したときに呼び出される処理(例:catch (error) { ... } の中の処理)
モジュール
機能やロジックのまとまり。
フロントエンドだとコンポーネントと混合しがちですが、コンポーネントはUI部品。
モジュールは、UIに直接関係しない部分もある。
ユースケース
ユーザーがアプリをどのように使うかを具体的に示したシナリオや利用例
例:商品を検索 → カートに追加 → 支払い情報を入力 → 注文確定
ロードマップ
機能追加やリリースのスケジュールや道筋を時系列で示したもの
ネイティブ
「ネイティブ(native)」は、その環境やプラットフォームに最適化されていて、直接動作するように作られているもの。
その場に自然に属しているというニュアンス。
例:
- ネイティブアプリ(Native App)
- 特定のOS(iOS、Android、Windows、macOSなど)向けに開発されたアプリ
- 言語の標準機能、組み込み機能をネイティブ機能と呼ぶ
XXXをパラメーターにとるインターフェース
API、関数、メソッドがXXXを引数として受け取るということ
Userオブジェクトをパラメーターに取るAPI
プラグイン
ソフトウェアに機能を追加するための拡張モジュールのこと
元のアプリケーションに必要なものだけ組み込むことで、新しい機能やカスタマイズを可能にする。
例:VS CodeやChromeに追加する機能
抽象化
複雑な情報や仕組みの中から本質的な部分だけを取り出し、簡潔に表現すること
抽象化=一般化
例:具体的な「データベースへの保存処理」を「データ保存」という一般的な操作に抽象化する
マスターデータ
業務やシステム全体で共通して使われる基本的なデータのこと
これは、他のデータや処理の基盤となる「基礎情報」であり、頻繁には変わらない安定したデータ
仕様
システムや製品がどのように動作すべきかを定義したルールや条件のこと
ソフトウェア開発では、開発者・設計者・関係者が共通理解を持つための「設計図」のような役割を果たします。
仕様書と設計書の違い
仕様書:何を作るかを定義する文書
設計書:(仕様書を元に)どうやって作るかを定義する文書
仕様書と設計書が一体化していることもある。
プロパティ
オブジェクト指向言語では、プロパティは、キーと値のペアを指す。
設定ファイルなどのKEY=VALUEの形式も、プロパティ(キーと値のペア) として扱われる。
コレクション
データの集まりという意味合いで使われる。
マウント
「接続して使えるようにする」という意味で使われる。
-
ストレージ(ディスクやUSBなど)をOSに接続して使えるようにすること
例:Google Driveは通常、クラウド上(リモート)にあるストレージですが、Macにマウントすることで、ローカルのフォルダのように扱えるようになる。 -
フロントエンド(React, Vue)では、コンポーネントを画面に表示することをマウントと呼ぶ
メタデータ
データそのものではなく、そのデータを説明・補足するための情報、データの説明書のようなもの。
例:JPEGデータ
-
写真そのもの(データ):画像のピクセル情報
-
メタデータ:
- 撮影日時:2025年7月12日 10:30
- 撮影場所:千葉県松戸市
- カメラの種類:iPhone 14
- 解像度:4032×3024
このように、メタデータは「この写真はいつ、どこで、何で撮ったか?」などの背景情報や属性を教えてくれます。
-
データを理解・管理しやすくするための情報
-
検索や分類、フィルタリングに役立つ
-
データの文脈や意味を補足する
-
データの外側にあるが、密接に関連している
例:JSONデータ
{
"data": { "id": 1, "name": "商品A" },
"metadata": { "created_at": "2025-07-12", "author": "admin" }
}
アーキテクチャ
ソフトウェアの構造や設計方針
バッチ処理
一定のタイミングでまとめて処理する方式のこと。
リアルタイムではなく、決まった時間や一定に間隔でまとめて一括処理する。
例:定期的にDBからユーザーの獲得ポイントを集計して、ランキングデータを更新
ワーカー
バックグラウンドで処理を担当するプログラムやプロセス。
APIのように外部からのリクエストを受けて動くのではなく、決まったタイミングや条件で自動的に動くことが多い。
バッチ処理を実行する役割を担うことが多い。
ソフトウェアの世界の「環境」
ソフトウェアが実際に動作する場所や条件
-
開発環境(Development Environment)
開発者がコードを書く・テストするための環境 -
本番環境
実際にユーザーが使う環境(最も安定性が求められる)
環境変数
アプリケーションやシステムが動作する際に参照する外部設定値を定義すること
.envファイルなどに定義することで、コードに直接書かず、環境ごとに異なる設定(例:APIキー、DB接続情報など)を柔軟に管理できる。
CLI
コマンドライン上で操作するためのインターフェースのこと
「XXX CLI」は、特定のサービスやツールを コマンドで操作できるソフトウェア
例:
AWS CLI:コマンドでAWSのEC2の起動、S3の操作、IAM管理などができる
Git CLI:コミット、プッシュ、ブランチ操作など(Macには最初から入ってる)
npm CLI:パッケージのインストール、スクリプト実行など(Node.jsとセット)
エラーとバグの違い
日常的には同じ意味で混同されることも多いが、違うもの。
エラー:プログラムの動作が正常でない「現象」や「通知」
バグ:プログラムの中に潜んでいる「問題」や「原因」
ユーザー視点だと、エラーは目に見え、バグは裏に隠れている
インフラ
システムやサービスが安定して動作するための基盤のこと
アプリを動かすサーバー、データを保存するストレージは、インフラを構成する要素の一部。
レポジトリ
ソースコードの中でrepository という名前のディレクトリがよく使われるが、フロントエンドの場合 APIとやり取りし、データの取得・保存するクラスや関数 をまとめる場所
ビジネスロジック
アプリケーションやシステムの中で「業務のルールや処理の流れ」を実現する部分のこと
振る舞い
プログラミングにおける「振る舞い(ふるまい)」は、オブジェクトや関数、システムがどのように動作するか、どんな処理を行うかという意味で使われる。英語では「behavior」と表現される所から来てる。
ビルド
「開発用の素材(ソースコード)を、実際に動作・配布できる形にまとめ上げる工程や作業」のこと
Webフロントエンドの場合
TypeScriptやSCSSなどの「人が書きやすい」ファイルを、ブラウザで動くJavaScriptやCSSに変換する作業
スマホアプリの場合
ソースコードから、iOS用やAndroid用のアプリファイル(.apk, .ipa)を作る工程
サーバーサイドの場合
ソースコードから、サーバーで動く実行ファイルやライブラリを作る工程
デプロイ
開発したアプリケーションやシステムを、実際に使える環境に公開・配置すること
仮想環境
実際の物理環境とは別に、ソフトウェア的に作られた仮の環境のこと
ロジック、ロジカルシンキング(論理、論理的思考)
論理:
物事の筋道やつながりを明確にし、正しく考えるためのルールや仕組みのこと
「なぜそうなるのか?」を常に考え、「前提 → 推論 → 結論」の流れを意識する
- 話がちゃんとつながっているか?
- 理由と結果が合っているか?
を判断するための考え方
論理の基本フロー
- 前提(根拠)
何をもとに考えているか。 - 推論(筋道)
前提から結論を導く過程。「だからこうなる」という流れ。 - 結論
前提と推論をもとに導かれる答え。
前提:雨の日は傘が必要。今日は雨が降っている。
推論:雨の日には傘が必要だから、今日は傘が必要。
結論:今日は傘を持っていくべきだ。
論理的思考: 筋道を立てて物事を考える力
運用
開発したシステムやサービスを安定して継続的に動かし続けるための管理・保守活動
UXライティング
ユーザー体験(UX)を向上させるための言葉の設計。
ユーザーが迷わず、ストレスなく操作できるように、ボタン、エラーメッセージ、説明文などの マイクロコピー(小さな文言) を工夫する
ダウンロードとインストール
ダウンロード:
インターネット上のデータやファイルを、自分の端末(PCやスマホなど)にコピーすること
インストール:
ダウンロードしたソフトウェアやアプリを、端末で使えるように設定・配置すること
ハックする
ポジティブな意味
既存の仕組みやプログラムをより便利にしたり、効率よく動かすために改造・工夫すること。
「ライフハック」「仕事術ハック」など、生活や仕事をより良くするための工夫も含みます。
ネガティブな意味
コンピューターやネットワークに不正侵入したり、セキュリティの穴を突いてシステムを操作すること。いわゆる「ハッキング」。
汎用性
幅広い用途や状況に対応できるという意味
汎用性が高い=拡張性、柔軟性、再利用性が高い
補完
不足している部分を補うこと
運用
プロダクトをうまく使いこなし、活用すること