「この問題、もっと抽象化(ちゅうしょうか)して考えたほうがいいよ」
先輩から言われた、この煙に巻かれたようなアドバイス。私は「ちゅう……しょう……? 抽象画のこと? なんだか、ピカソみたいな絵を描けばいいのかな?」と、キャンバスを用意しようとしていました。
とりあえず 「独創的に頑張ります!」 と笑顔で答えましたが、後で「枝葉を切り捨てて、本質だけを抜き出すことだよ」と教えられ、またしても「芸術脳」な勘違いに赤面する羽目に……(笑)。
実は「抽象化」は、複雑な世界をシンプルに捉え、効率よくプログラムを作るための「最も強力な思考ツール」です。今回は、動物図鑑の 「まとめ方」 に例えて、その正体をやさしく解説します!
抽象化とは? 一言でいうと「細かい違いを無視して『共通点だけ』を抜き出すこと」
結論から言うと、抽象化とは、「物事の細かい具体的な部分を削ぎ落とし、重要な共通の性質や特徴だけに注目して整理すること」 です。
近所の 「犬たち」 に例えてみましょう。
- 具体的なもの:隣の家の「ポチ(柴犬)」、駅前の「ベル(プードル)」、公園の「チョコ(レトリバー)」。
- 抽象化:「みんな違っているけれど、とりあえず全部まとめて『イヌ』と呼ぶことにしよう!」。
「ポチは耳が立っている」「ベルは毛がモコモコ」といった細かい違い(枝葉)をあえて無視して、「ワンと鳴く」「4本足で歩く」という共通のルール(本質)だけを抜き出す。これが抽象化です。
プログラミングで「車」という部品を作るとき、一台一台の「傷の場所」や「ハンドルの色」を全部書いていたらキリがありません。だからこそ、「走る、曲がる、止まる」という 『車なら当たり前の特徴』 だけを抜き出して定義(抽象化)することで、どんな車にも対応できる便利な設計図ができるのです。
ビジネスの現場で抽象化という言葉が出る場面
システムの設計や、問題解決の議論、コミュニケーションのシーンで頻繁に登場します。
1. 「抽象化レイヤーを挟むことで、中身の入れ替えを容易にしよう」
意味:
「直接具体的な機械(サーバーなど)を操作するんじゃなくて、間に『操作用のリモコン(抽象化)』を置くことで、中身の機械が最新版に変わっても、リモコンのボタンはそのまま使えるようにしよう」ということです。
2. 「彼の説明は具体的すぎて全体像が見えない。もっと抽象化して話してほしいな」
意味:
「一つひとつの細かい作業報告じゃなくて、『結局、今は順調なの? ピンチなの?』という、一番大事な『一言のまとめ(本質)』を教えてほしい」ということです。
3. 「抽象クラスを使って、サブクラスの共通ルールを決めよう」
意味:
「それ自体で実物は作らないけど、『生き物なら必ず「食べる」という動作を持ってね!』という、みんなが守るべき『最低限の共通ルール』だけを書いたお手本(抽象化)を作っておこう」ということです。
具体化と抽象化の違い
思考の「ズームイン」と「ズームアウト」の関係です。
| 比較ポイント | 具体的(ズームイン) | 抽象的(ズームアウト) |
|---|---|---|
| 視点 | 目の前の一つのこと | 全体に共通すること |
| わかりやすさ | 想像しやすい(生データ) | 本質がわかる(答え) |
| たとえ話 | 「佐藤さんのリンゴ」 | 「果物」 |
| プログラミング | 個別のデータ入力 | クラスやインターフェースの設計 |
「一を聞いて十を知る」ことができるのは、人間の脳が「一」を抽象化して、「これは十の場合にも使える法則だ!」と気づけるからなんです。
まとめ
この記事のポイントは次のとおりです。
- 抽象化は、バラバラなものから「共通点」を見つける技術
- 細かい違い(ノイズ)を捨てることで、本質が見えやすくなる
- プログラムを再利用しやすく、スッキリ保つために不可欠な考え方
今すぐできる確認方法
あなたの思考を「抽象化」のトレーニングにかけてみましょう。
- 共通点探し: 机の上にある「ペン」「消しゴム」「定規」。これらを一言でまとめると? そう、 「文房具」 です。これが抽象化の第一歩です。
- 仕事の要約: 1時間の会議の内容を、3行だけで説明してみる。「結局、何が決まったのか?」という本質を抜き出す作業は、最高の抽象化の練習になります。
- アイコンの観察: トイレのマークや非常口のマーク。人間という複雑な存在を、究極までシンプルにした「抽象化のデザイン」の傑作ですよ!
「抽象化」という言葉を知るだけで、ITの世界が「ややこしい情報の山」から、シンプルな「ルールの組み合わせ」へと、見え方が変わっていきませんか?