Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス
by Titus Winters, Tom Manshreck, Hyrum Wright, 竹辺 靖昭, 久富木 隆一
15章廃止
Hyrum Wright 著
Tom Manshreck 編
私は締め切りを愛している。飛ぶように過ぎていくときの、ヒューッて音が好きなんだ。
Douglas Adams†1
†1 訳注:イギリスの作家(1952-2001)。『銀河ヒッチハイク・ガイド』(ダグラス・アダムス 著、安原 和見 訳/河出書房新社/2005年)の作者。
全てのシステムは古くなっていく。ソフトウェアはデジタル資産であり、ハードウェア内のビット自体は劣化しないにせよ、新しい技術、ライブラリー、テクニック、言語、その他の環境的な変化により、時間の経過とともに既存システムは旧式になってしまう。古いシステムには継続的な保守や秘儀めいた専門知識が必要で、また周りのエコシステムから外れていくにつれて一般的には必要な作業が増える。旧式のシステムは、それを置き換えるシステムと並列させた状態で無期限にぎこちない稼働を続けさせておくよりは、停止に向けて労力を費やす方がましなことが多い。しかし相変わらず稼働中である旧式システムの数が、実際問題としてそれらのシステムの停止が一筋縄では行かないことを示唆している。旧システムから脱する系統的な移行と、旧システムの最終的な撤去からなるプロセスは、廃止(deprecation)と呼ばれる。
廃止は、システムの長期的管理方法についての考慮を要するため、これもまた正確にはプログラミングというよりソフトウェアエンジニアリングの専門分野に属するトピックの一例だ。長期間稼働するソフトウェアエコシステムにとっては、廃止を正しく計画実行すれば、リソースのコストが減少し、また時間の経過とともにシステム内に蓄積されてきた冗長性と複雑性が除去され、速度が改善される。他方で、下手なやり方で廃止されたシステムは、放置した場合よりコストが多くかかるかもしれない。システムの廃止には労力を追加で要するとはいえ、最終的なシステムの停止と撤去が容易になるように、システムの設計中から廃止に向けて計画しておくことができる。個別の関数呼び出しからソフトウェアスタック全体に至るまで、廃止はシステムに影響を及ぼしうる。具体的には、以下で述べることの大半は、コードのレベルでの廃止に主眼を置く。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access