🔍
ラーメンのオブザーバビリティで考えるいいコード
定義: 高い粒度で様々な項目を組み合わせることで、未知の障害を発見する検索システムのようなものを担保するコード - オブザーバビリティ・エンジニアリングの要約
この定義が、いいコードになっていることを確認しておきます
いいコードの定義としてよく用いられるのがリーダブルコードに書かれてあるいいコードの定義です
リーダブルコードでは、いいコードとは理解が容易なコードのことだと書かれています
コードを書いてそれっきりなシステムではそのコードを理解する必要がないはずなので、それをより一般化すると修正が容易なコードがいいコードという原則が成り立つはずで、私は修正が容易なコードがいいコードというのを原則と信じています
この原則に従えば、未知すらも取り込んでしまうコードは、修正が容易などころかコードの修正が必要ないので、究極にいいコードといえるでしょう
例: ラーメン - こちらの記事を参考にさせていただきました
従来のモニタリングの手法では、麺はふつう、かための2種類しかない時、新たにバリカタという実装をしなければならない場合、コードを新たに書かいてバリカタの実装をしなければいけなかった
オブザーバビリティの考え方では、麺の太さ、茹で時間という項目を追加しておけば、新たにコードを書かなくとも様々な硬さの麺が実装できる
さらに項目を増やしていくと、麺の加水率も加えることができて、未知の問題(この場合はユーザーの麺の硬さの好みと一致しない)に新たな実装を加えずとも対処することができるようになる
今後はこのようなコードを書いていきたいです
Discussion