10章コードの増大

プロフェッショナルなソフトウェア開発では、ほとんどの場合既存のコードを扱います。これまでの章では、新しいコードベースを扱ってきました。ゼロから動くシステムを効率的に作り上げる方法を見てきました。ゼロからの開発には特有の問題がありますが、既存のコードベースの変更に関わる問題とは違います。

ほとんどの場合、本番で動いているコードを修正します。テスト駆動開発をしていても、主に新しいテストを追加することになり、既存のプロダクションコードの修正が必要になることも多々あります。

コードのふるまいを変えずに構造を変えるプロセスをリファクタリングと呼びます。リファクタリングについては、他のリソース[34][53][27]が詳しく扱っているので、ここでは繰り返しません。代わりに、本章ではコードに新しいふるまいを追加する方法にフォーカスします。

ふるまいの追加は、大まかに以下の3種類に分けられます。

  • まったく新しい機能の追加
  • 既存のふるまいの拡張
  • バグフィックス

バグフィックスについては12章で扱うので、本章ではそれ以外の2つを扱います。まったく新しいふるまいを追加するのはいろいろな面でいちばん簡単なので、まずはここから始めましょう。

10.1 フィーチャーフラグ

まったく新しい機能を追加する場合、ほとんどのコードは新しいコードになるでしょう。新しいコードベースに追加する代わりに、既存のコードベースに追加するだけです。

既存のコードインフラを利用できる場合もあるでしょうし、新機能の追加の前に修正が必要な場合もありますが、ほとんどの場合で新機能の追加はスムーズに行えます。いちばんの課題は、継続的インテグレーションのプラクティスを維持することです†1

[†1] もちろん、機能そのものの実装が難しい場合もあります。 ...

Get 脳に収まるコードの書き方 ―複雑さを避け持続可能にするための経験則とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.