🔍

ラーメンのオブザーバビリティで考えるいいコード

2023/02/06に公開

定義: 高い粒度で様々な項目を組み合わせることで、未知の障害を発見する検索システムのようなものを担保するコード - オブザーバビリティ・エンジニアリングの要約

この定義が、いいコードになっていることを確認しておきます

いいコードの定義としてよく用いられるのがリーダブルコードに書かれてあるいいコードの定義です

リーダブルコードでは、いいコードとは理解が容易なコードのことだと書かれています

コードを書いてそれっきりなシステムではそのコードを理解する必要がないはずなので、それをより一般化すると修正が容易なコードがいいコードという原則が成り立つはずで、私は修正が容易なコードがいいコードというのを原則と信じています

この原則に従えば、未知すらも取り込んでしまうコードは、修正が容易などころかコードの修正が必要ないので、究極にいいコードといえるでしょう

例: ラーメン - こちらの記事を参考にさせていただきました

従来のモニタリングの手法では、麺はふつう、かための2種類しかない時、新たにバリカタという実装をしなければならない場合、コードを新たに書かいてバリカタの実装をしなければいけなかった

オブザーバビリティの考え方では、麺の太さ、茹で時間という項目を追加しておけば、新たにコードを書かなくとも様々な硬さの麺が実装できる

さらに項目を増やしていくと、麺の加水率も加えることができて、未知の問題(この場合はユーザーの麺の硬さの好みと一致しない)に新たな実装を加えずとも対処することができるようになる

今後はこのようなコードを書いていきたいです

Discussion