サイトリライアビリティワークブック ―SREの実践方法
by Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, 玉川 竜司
7章単純さ
執筆:John Lunney、Robert van Gent、Scott Ritchie
協力:Diane Bates、Niall Richard Murphy
うまく動作する複雑なシステムはいずれも、うまく動作するシンプルなシステムから進化したものなのである。
――Gallの法則(http://bit.ly/2syRTi5)
単純さはSREの重要な目標であり、またそれは信頼性と強い相関があります。単純なソフトウェアは壊れにくく、壊れたとしても容易に素早く修復できます。単純なシステムは理解しやすく、メンテナンスしやすく、テストしやすいものです。
SREにとって、単純さはあらゆる場面で目指すべき目標です。それはコードそのものからシステムのアーキテクチャ、そしてソフトウェアのライフサイクルを管理するために使われるツールやプロセスにまで及びます。本章ではいくつかの例を取りあげ、単純さをSREがどのように計測し、考え、推奨するかを示します。
7.1 複雑さの計測
ソフトウェアシステムの複雑さの計測は、純粋な科学ではありません。ソフトウェアのコードの複雑さを計測する方法は数多く存在し、その多くはきわめて客観的なものです†1。おそらく最もよく知られており最も広く利用可能な標準は循環的複雑度(cyclomatic complexity number = CCN、https://bit.ly/2To607j)であり、これは特定のステートメント群の中の異なるコードパスの数を計測するものです。たとえばあるコードブロックがループや条件分岐を持たないのであれば、その循環的複雑度は1です。実際のところ、ソフトウェアのコミュニティはコードの複雑さの計測をとてもうまくこなしており、多くの統合開発環境(Visual ...
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