Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
55
Help us understand the problem. What is going on with this article?
@inajob

コードリーディングの履歴を残しながら調査したい

これはなに?

コードリーディングを行う時、GitHubやVSCodeの定義ジャンプの機能を使って動作を追いかけることをすると思いますが、実際に追いかけている時は、わかった気になっていても、後からその記録を辿り直すことは難しいです。

よくやるやり方

ということで、メモを残しながらコードリーディングするのですが、このメモが見づらい。

https://github.com/spiffe/spire/blob/88debf14a4e5f262bcb7aa0ef9b29dfb5531863d/pkg/agent/client/client.go#L314

GetAuthorizedEntries
でtrust bundle とそのAgentが担当するRegistrationEntriesを取得しているようだ。
期限の更新はどこで行われるのだろうか?

agentが署名しているのかな。そんな気がするな

https://github.com/spiffe/spire/blob/88debf14a4e5f262bcb7aa0ef9b29dfb5531863d/pkg/agent/manager/sync.go#L143

ここだ
CSRを作って再度要求を出している。

まぁこんな風になる。

リンクをクリックすればコードを見ることができるが、多くのコード片のタブがブラウザやエディタに散らばってしまい、ごちゃごちゃしてしまう。

今回考えた方法

Markdown風に上記のメモを書くことで、プレビューとして該当するコードを文書内に埋め込むようにする。

時間もないので、ローカルのHTMLファイルの、特定のdiv要素の中に、メモを書くことで、ブラウザ上でプレビューが表示できるような仕組みで作ってみることにした。

良さそうなら既存のマークダウンエディタに組み込むなどを考えても良いかもしれない。

こんな風にメモを書くと

:code https://github.com/spiffe/spire/blob/88debf14a4e5f262bcb7aa0ef9b29dfb5531863d/pkg/agent/client/client.go#L314

GetAuthorizedEntries
でtrust bundle とそのAgentが担当するRegistrationEntriesを取得しているようだ。
期限の更新はどこで行われるのだろうか?

agentが署名しているのかな。そんな気がするな

:code https://github.com/spiffe/spire/blob/88debf14a4e5f262bcb7aa0ef9b29dfb5531863d/pkg/agent/manager/sync.go#L143

ここだ
CSRを作って再度要求を出している。
image.png

こんな風にプレビューされる。
ファイル名をクリックするとGitHubに飛ぶ。

パースしやすいように今回は :code <GitHubのURL>という記法にしている。

例2

周辺コードも見たいことがあるので、対応してみる。

雑に :code <GitHubのURL> <ハイライトしたい行> という記法にした。

# spire-agentの起動の流れ

## cliのRun

:code https://github.com/spiffe/spire/blob/aba18a09e7591207699d5bda01b4b95b8c12e5eb/cmd/spire-agent/cli/run/run.go#L151-L197 189


## agent の Run

89行目でattestを呼んでいる。ここにはcatも引数についている。

:code https://github.com/spiffe/spire/blob/aba18a09e7591207699d5bda01b4b95b8c12e5eb/pkg/agent/agent.go#L39-L122 89

## agentのattest

:code https://github.com/spiffe/spire/blob/aba18a09e7591207699d5bda01b4b95b8c12e5eb/pkg/agent/agent.go#L180-L194 193

## pluginの場合はここ

:code https://github.com/spiffe/spire/blob/aba18a09e7591207699d5bda01b4b95b8c12e5eb/pkg/agent/plugin/nodeattestor/v0.go#L18-L82
image.png

こんな風に範囲+行ハイライトの形でプレビューが残せる。

実際に試してみたい!

こちらからどうぞ

感想

意外と良さそうに思う。

皆さんはコードリーディングの時はどうやってメモを残していますか?

参考

55
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
inajob
電子工作、JavaScript、Kubernetes 興味があることは何でも! https://twitter.com/ina_ani
zlab
技術で新しい世界へシフトする。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
55
Help us understand the problem. What is going on with this article?