設計の引き出しは本でしか増えない
この記事は約 5 分で読めます。
経験 10 年でも設計パターンを 3 つしか知らない人がいる
経験年数が長いエンジニアが、必ずしも設計がうまいわけではありません。10 年間同じプロジェクトで同じアーキテクチャのコードを書き続けた人は、そのアーキテクチャには詳しくなりますが、他の選択肢を知りません。
設計の引き出しは、経験した設計パターンの数で決まります。しかし、1 人のエンジニアが実務で経験できる設計パターンの数には限りがあります。1 つのプロジェクトで採用される設計パターンはせいぜい数種類。転職を 3 回しても、経験できるパターンは 10〜15 種類程度です。
一方、設計の本を 1 冊読めば、20〜30 のパターンに触れられます。本は、実務では出会えない設計パターンを疑似体験させてくれる唯一の手段です。
経験だけでは不十分な 3 つの理由
1. 経験は偏る
実務で経験する設計は、所属する会社やプロジェクトの文化に強く影響されます。マイクロサービスの会社にいればマイクロサービスの設計ばかり経験し、モノリスの会社にいればモノリスの設計ばかり経験します。
この偏りは、設計判断の際に「自分が知っている方法」に引きずられる原因になります。本当はマイクロサービスが適切な場面でモノリスを選んでしまう、あるいはその逆。選択肢を知らなければ、最適な判断はできません。
2. 失敗から学ぶには時間がかかりすぎる
設計の失敗は、数ヶ月から数年後に顕在化します。「この設計は変更に弱い」と気づくのは、実際に変更が必要になったときです。1 つの設計の失敗から学ぶのに 1〜2 年かかるとすると、10 の失敗パターンを学ぶのに 10〜20 年かかります。
本は、著者が数十年かけて蓄積した失敗パターンを数日で伝えてくれます。他人の失敗から学ぶことで、自分が同じ失敗をする時間を節約できます。
3. 名前を知らないパターンは議論できない
設計パターンに名前がついていることの最大の価値は、チームで議論できることです。「ここは Strategy パターンで実装しましょう」と言えれば、チーム全員が同じ設計を想像できます。
名前を知らなくても同じ設計はできますが、議論の効率が桁違いに落ちます。「条件によって処理を切り替えるんですけど、if 文じゃなくて、えーと、クラスを分けて...」と説明するのに 5 分かかることが、パターン名を知っていれば 5 秒で伝わります。
設計の引き出しを増やす読書戦略
まずパターンカタログを 1 冊読む
デザインパターン、リファクタリングパターン、アーキテクチャパターン。これらのカタログ本を 1 冊読むだけで、引き出しの数が一気に増えます。全パターンを暗記する必要はありません。「こういうパターンが存在する」と知っているだけで、設計判断の選択肢が広がります。
次に設計原則の本を読む
パターンの「What (何をするか)」を知った後、原則の「Why (なぜそうするか)」を学びます。デザインパターンの本でパターンを知り、設計原則の本で「なぜこのパターンが有効なのか」を理解する。この 2 段階で、引き出しの数と深さの両方が揃います。
実務で 1 つずつ試す
本で学んだパターンを、次のプルリクエストで 1 つだけ試します。全部を一度に適用しようとすると、どのパターンが効果的だったのか判断できません。1 つずつ試して、効果を実感してから次のパターンに進みます。
関連記事
まとめ
設計の引き出しは、経験だけでは効率よく増えません。経験は偏り、失敗からの学びには時間がかかり、名前を知らないパターンは議論できない。本は、これらの限界を一気に突破する手段です。パターンカタログを 1 冊読むだけで、設計の選択肢が倍増します。
この記事は役に立ちましたか?
関連用語
関連記事
あの有名 OSS のコードは、この本の影響を受けている
広く使われているオープンソースソフトウェアの設計には、特定の技術書の影響が色濃く反映されています。OSS のコードと技術書の関係を知ると、両方の理解が深まります。
200 冊読んだエンジニアと 20 冊読んだエンジニアの本当の差
読書量の差はどこに現れるのか。200 冊と 20 冊の差は知識量ではなく「判断の速さ」と「引き出しの多さ」に現れます。量が質に転化するメカニズムを解説します。
設計・アーキテクチャ本ガイド - 設計力を上げる技術書の選び方
ソフトウェア設計を学べる技術書をコード・モジュール・システムの 3 レイヤーに分類し、レベルに応じた読む順番の指針を紹介します。
30 代エンジニアが読書で取り戻す「設計の言語化力」
経験年数は十分なのに設計意図を言葉にできない。30 代エンジニアが直面する「暗黙知の壁」を、技術書の読書で突破する方法を解説します。
1 万行のコードより 1 冊の設計書が勝つ場面
大量のコードを書く力と、適切な設計を選ぶ力は別物です。コード量では解決できない問題に直面したとき、設計の知識がどう効くのかを具体例で解説します。
技術書の帯コピーの世界 - 煽り文句に隠されたマーケティング
「10 万部突破」「現場で使える」「これ 1 冊で完璧」。技術書の帯に書かれた煽り文句の法則と、帯が売上に与える影響を解説します。