第17章 設計技術の理解の深め方:もう一歩先へ進むために
ソフトウェア設計において、基礎を学び実務で経験を積んだその先には、「さらに深く理解し、使いこなす」段階が待っています。第17章は、そんな次のステップへと歩を進めたい開発者に向けた、設計の探求ガイドのような内容です。
設計技術書の宝の山を掘り起こす
この章の冒頭では、数多くの設計技術書が紹介されます。どれも設計力を高めるための強力な武器となる本ばかりで、読みながら「これ全部読む時間…どうやって確保しよう」とワクワク半分焦り半分の感覚でした。
特に「リーダブルコード」や「現場で役立つシステム設計の原則」は、自分の設計がチームや未来の自分にとって優しいかどうかを考えるきっかけになります。また、「Clean Architecture」や「エリック・エヴァンスのドメイン駆動設計」のような書籍は、設計の思想そのものに触れられるため、コードを書くだけでは得られない視座を養えます。
中でも「レガシーコード改善ガイド」はまさに今の自分に刺さる内容。メンテの多い現場にいる身としては、とても気になる一冊です。
コラム:「バグ退治RPG」もある!?
そして極めつけは、 『バグハンター 2 REBOOT』 というRPGゲーム形式の設計教材。まさかのゲーミフィケーション!遊びながら設計用語に触れるという発想は、新人育成にも良さそうで、実務に取り入れたくなりました。
アウトプットの大切さ:読んだら手を動かす
本を読んだだけでは設計力は身につきません。設計は読むよりも「書いて試す」ことが大切。この章では、インプット:アウトプットを2:8と表現しており、学んだことをすぐ実践する姿勢が推奨されています。
中でも印象的だったのは、 「まずは雑に動かす → あるべき設計にしてコミット」 という開発フロー。最初から完璧を目指さず、まず動かしてから設計し直す。そのプロセスの中で「本当に必要な構造」が見えてくるという考え方は、自分の普段の手順にも取り入れたいと思わせられました。
実際、「最初の雑なコードの代わりに新しい設計を落とし込む」というサイクルは、思考とコードの両方をブラッシュアップできる良い訓練になります。個人的には、PR作成前にSquash前提でコミットしていくスタイルが合っていると感じました。
設計はリファクタリングで磨かれる
やはり設計スキルの実戦練習として最強なのはリファクタリング。プロダクションコードの私的な練習ブランチを切って、実際に手を動かすことで「設計感覚」が鍛えられていきます。
ただ、実務でリファクタリングの時間を取るのはなかなか難しい。特にリプレイスの方が早く済むように感じてしまうプロジェクトに関わっていると、「本当に直すべきなのか?」と悩むことも増えがちです。それでも、やっぱり割れた窓は放置せずに修理したい。
リファクタリングよりもスピードを優先しなければならない状況もありますが、それを積み重ねていくとチーム全体が苦しくなることも経験から実感しています。
変化に向き合い続ける
章の終盤では、設計力をどう高めるかのロードマップが示されます。具体的には以下のような流れです。
- 気になる設計書籍をピックアップして手を動かす
- リファクタリングの練習ブランチを切る
- PR前に設計し直してからまとめる
- 実際に使ってみた手法や効果を確認して次に活かす
このサイクルを通じて、設計スキルは自然と身についていく。まさに、設計の筋トレです。
そして、最後に立ち返るのはやはり「モチベーション」。設計書籍を読んでも試せない時、改善したいのに時間が取れない時…そんなジレンマに陥ることは誰しもあります。
それでも、「今のプロダクトをより良くしたい」という想いを忘れずにいれば、少しずつでも前に進めるのではと、この章を通じて思わされました。
まとめ:設計を知ることで、世界が変わる
振り返ると、設計にまつわる知識やノウハウを学んでから、コードを見る目が明らかに変わりました。
- 「何が問題なのか?」 が言語化できるようになった
- 「どうすれば良くなるか?」 のアイデアが浮かぶようになった
- そして何より、「良いコードを書くのって楽しい」 と思えるようになった
今後もこの設計の旅路を続けていきたいし、時に心が折れそうなレガシーにも立ち向かっていきたい。そんなふうに思わせてくれる章でした。
📚 あなたはどの本から読み始めますか?
設計力を上げる旅、今日からまた一歩ずつ。