本文へスキップ
開発者向け

コードの理由を、コードの隣に置く

どのコードベースにも、人の頭の中にしかないもう半分があります。なぜこのリトライ回数なのか、なぜこのフォールバックなのか、なぜ当たり前の方法を採らなかったのか。その人が去れば、いっしょに出ていきます。

20の言語を、コードとして索引付け

シンボルと、その間の呼び出しが、ノートと同じグラフに入ります。別に用意された検索窓ではありません。決定のノートと、そこから生まれた関数が隣り合わせになります。実際に隣り合うものだからです。

git の履歴が、ノートの隣に索引付けされる

何が、いつ変わり、そのとき何が書かれていたか。ひとつの問いで辿り着けます。コミットは何が起きたかを、ノートはなぜかを語ります。片方だけでは、たいして役に立ちません。

手を触れる前に、影響範囲を

あるシンボルに何が依存しているかを尋ねると、答えはグラフから返ります。名前の出てくるコメントまで拾うテキスト検索からではありません。コードに不慣れなときほど効きます。そして必要になるのは、まさにそのときです。

実際の場面

引き継いだサービスで、マジックナンバーに出くわす

リトライ7回。コメントなし。git blame が指すのは「fix flakiness」とだけ書かれたコミットです。

なぜリトライが7回なのかを尋ねます。答えは18か月前の決定のノートを引きます。ストア側のタイムアウトが負荷時に6秒と計測されたこと、7回なら観測された最悪のケースを余裕をもって覆えたこと、3回に下げると同じ障害が再発したこと。その隣には、それを実装している関数と、それを固定しているテストが並びます。

これで、変えていいかどうかがわかります。そうでなければ、変えて、出して、それから思い知ることになっていました。

本当に大事なものを預ける前に

自分のデータで使えますか?

検索はローカル。生成は、あなたが向けた先へ。

必要な箇所を見つける処理は、常にあなたのマシンで行われます。その次に何が起きるかは、あなたの選択です。クラウドのモデルをつなげば、取り出された箇所はそのプロバイダへ渡ります。自分で貼り付けた場合とまったく同じように。ローカルで動くモデルに向ければ、マシンからは何も出ません。この2つ目の選択肢は今日すでに使えます。「データはどこで処理されるのか」という問いを「あなたの端末で」という答えに変えるのは、これです。