設計の引き出しは経験だけでは増えない

2 分で読めます
設計選書ガイド技術書

この記事は約 5 分で読めます。

経験 10 年でも、設計の選択肢が 3 つしかないことがある

経験年数が長いエンジニアが、必ずしも設計がうまいわけではありません。10 年間同じプロジェクトで同じアーキテクチャのコードを書き続けた人は、そのアーキテクチャには詳しくなりますが、他の選択肢を知りません。

設計の引き出しは、知っている選択肢の数と、それぞれをどこで使い分けるかの判断で決まります。このうち数の方が、実務経験だけでは伸びにくいものです。1 つのプロジェクトで採用される設計は、そのプロジェクトが必要とした範囲に限られます。職場を変えても、増えるのはそこで採用されている設計の分だけで、増え方は経験した職場の数に比例する程度にとどまります。

一方、設計パターンのカタログ本は、著者が集めた選択肢を 1 冊に並べています。実務では 1 つずつしか出会えないものを、自分の職場が採用しなかった案まで含めて一度に見渡せます。他社の事例発表を聞く、他人のコードを読むといった道もありますが、体系立てて並んだ状態で、目の前の案件の都合と切り離して選択肢を眺められる媒体は、書籍がいちばん手に入れやすい形をしています。

経験だけでは不十分な 3 つの理由

1. 経験は偏る

実務で経験する設計は、所属する会社やプロジェクトの文化に強く影響されます。マイクロサービスの会社にいればマイクロサービスの設計ばかり経験し、モノリスの会社にいればモノリスの設計ばかり経験します。

この偏りは、設計判断の際に「自分が知っている方法」に引きずられる原因になります。本当はマイクロサービスが適切な場面でモノリスを選んでしまう、あるいはその逆。選択肢を知らなければ、最適な判断はできません。

2. 失敗から学ぶには時間がかかりすぎる

設計の失敗は、数ヶ月から数年後に顕在化します。「この設計は変更に弱い」と気づくのは、実際に変更が必要になったときです。1 つの設計の失敗が結果として見えるまでに 1〜2 年かかるとすると、失敗の型を 10 通り自分で踏むには、その繰り返しに何年もかけることになります。複数の失敗は並行して進むので単純な足し算にはなりませんが、それでも 1 人の在職年数で網羅できる量ではありません。

本は、著者が現場で踏んだ失敗と、その原因の見立てをまとめて渡してくれます。自分で踏む前に「この設計は何年後にどこが苦しくなるのか」を知れることが、経験では代えにくい部分です。

3. 名前を知らないパターンは議論できない

設計パターンに名前がついていることの最大の価値は、チームで議論できることです。「ここは Strategy パターンで実装しましょう」と言えれば、チーム全員が同じ設計を想像できます。

名前を知らなくても同じ設計はできますが、それをチームに伝える手間がまったく違います。「条件によって処理を切り替えるんですけど、if 文じゃなくて、えーと、クラスを分けて...」と身振りで説明するはめになる場面が、パターン名ひとつで済みます。名前がついていれば、後からコードを読む人も意図を辿れます。

設計の引き出しを増やす読書戦略

まずパターンカタログを 1 冊読む

デザインパターン、リファクタリングパターン、アーキテクチャパターン。これらのカタログ本を 1 冊読むだけで、引き出しの数が一気に増えます。全パターンを暗記する必要はありません。「こういうパターンが存在する」と知っているだけで、設計判断の選択肢が広がります。

次に設計原則の本を読む

パターンの「What (何をするか)」を知った後、原則の「Why (なぜそうするか)」を学びます。デザインパターンの本でパターンを知り、設計原則の本で「なぜこのパターンが有効なのか」を理解する。この 2 段階で、引き出しの数と深さの両方が揃います。

実務で 1 つずつ試す

本で学んだパターンを、次のプルリクエストで 1 つだけ試します。全部を一度に適用しようとすると、どのパターンが効果的だったのか判断できません。1 つずつ試して、効果を実感してから次のパターンに進みます。

関連記事

まとめ

設計の引き出しは、経験だけでは効率よく増えません。経験は偏り、失敗からの学びには時間がかかり、名前を知らないパターンは議論できない。本は、このうち経験の偏りと時間の壁を最も安く埋められる手段です。パターンカタログを 1 冊読めば、次の設計判断のときに比較できる案が増えます。

共有:Xはてブ

この記事は役に立ちましたか?

関連用語

関連記事

あの有名 OSS のコードは、この本の影響を受けている

広く使われているオープンソースソフトウェアの設計には、技術書と共通の語彙や原則が残っています。OSS のコードから辿れる影響と、似ているだけの例の見分け方を整理しました。

設計 / アーキテクチャ本ガイド - 設計力を上げる技術書の選び方

ソフトウェア設計を学べる技術書をコード / モジュール / システムの 3 レイヤーに分類し、レベルに応じた読む順番の指針を紹介します。

30 代エンジニアが読書で取り戻す「設計の言語化力」

経験年数は十分なのに設計意図を言葉にできない。30 代エンジニアが直面する「暗黙知の壁」を、技術書の読書で突破する方法を解説します。

1 万行のコードより 1 冊の設計書が勝つ場面

大量のコードを書く力と、適切な設計を選ぶ力は別物です。コード量では解決できない問題に直面したとき、設計の知識がどう効くのかを具体例で解説します。

リーダブルコードの次に読む本 - ステップアップの読書ルート

リーダブルコードを読み終えた後、設計力を段階的に高めるための読書ルートと、各レベルで学ぶべきテーマを紹介します。

技術書の帯コピーの世界 - 煽り文句に隠されたマーケティング

「10 万部突破」「現場で使える」「これ 1 冊で完璧」。技術書の帯に書かれた煽り文句の法則と、帯が売上に与える影響を解説します。