コードリーディングするときにScrapboxを使うと捗る

コードリーディングするときにScrapboxを使うと捗る

Notaインターン期間中に気づいたことの一つ

読んでいる最中に脳で覚えておくことが減ってラクになる
自分がコードを追加するときに既存の関連部分のコードを探しやすくなる
コードを読む作業がより楽しくなる

はじめて見るコードの全貌把握は難しい
ソースコードはネットワーク構造
コード内部では多くの参照関係がある
宣言された関数は必ずどこからかは呼ばれているはず
初見なので分からない
全体が分からないので、適当な分類はできない
最初から「ページにGyazo画像が表示されるまで」というタイトルでまとめメモが書けるなら、既にだいたいコードは理解できているということ

機能追加したいのでコードを読み始める
まわりのコードはまだよくわかっていない
自分が興味ある箇所を起点にコードを読んでいく
一気にやらない
自分が知りたいことをまとめるだけに留める
気付いたときには過去の資産が全部つながっているというのが良い

そこで、Scrapboxを使う
コードリーディング用のProjectを用意する

そのとき思いついたタイトルでページを作る
全体が把握できていないので、完璧なタイトルを付けることはできないので諦める
「ScrapboxParserを読んでみる」「関連ページを更新したい」「記法を追加する」など思いつきで書く
タイトルを頼りに情報整理をしない
ページ内に含まれるリンクの繋がりを見て、Scrapboxが自動で整理してくれる
間違いに気づいたら都度直していけばいい
ページタイトルを後から変更しても、Scrapboxが参照を自動置換してくれるので大丈夫

コードを読みながらメモを書く
コードを書き写すのではない
読みながら、自分の言葉でメモする
何をしているのか
呼び出す前にチェックしていること
なんでこのような実装になっているのか
ファイル名やメソッド名、クラス名をリンク記法で書く
同じメソッドに言及しているメモが繋がる
「カーソルの位置を取得したい」というページの関連ページにメソッド名が並ぶ
後からコードを読み返しやすい
他の人に聞かれたときに読むと良い部分を教えられる

適当に作ったページが勝手に繋がる
共通して呼ばれているメソッドに気付く
これから追加したい機能と似たことをしている部分が見えてくる

改めてまとめページを作ってもいいかも
リンクをまとめたページを作ると、次回作業を再開しやすい
未解決事項やアイデアも書いておくと後の役に立つ

Scrapboxでは、分類ラベルを付けづらい情報の自動整理ができる
自分が気づかないネットワーク構造の可視化
どこから手を付けたらよいのかわからない情報の整理のとっかかり


Powered by Helpfeel