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 ...
Get サイトリライアビリティワークブック ―SREの実践方法 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.