Read Code Every Day
https://gyazo.com/8e40b8f3d37035d4711022ebf6e3a798
codeをWriteするより、Readするのが忘れがちで、時間を費やすべき作業だったりする
手順
1.GitHubでリポジトリ選択
普段から収集しておくの大事
Starしてるのから取るのが良い
自分が読める言語出ないと読みきれない
徐々に読める言語増やす必要あり
2.環境を用意
3.読む
ディレクトリ構造の把握
名前空間の扱いの把握
抽象度の高い部分と低い部分の分類
オブジェクトのライフサイクルを把握
1通り見たら動かしながら読む
3.5
読みながらScrapboxに記述
Title
該当リポジトリ名
該当GitHubリポジトリ
続きを別の日に行えるようにしとく
ForkしたGitHub
Privateがいいと思う
bareモードでクローンする
code:bare-clone.sh
# 該当のレポジトリをclone
git clone --bare https://github.com/hoge/hoge
cd hoge.git
#ここでgithub上のprivateリポジトリを作成しておく
# 作成したリポジトリにmirrorでpushする
git push --mirror git@github.com:yourname/yourrepo
# bareモードでクローンした不要な階層を削除しておく
cd ../
rm -rf hoge.git
#上げたcodeをcloneして作業
リポジトリを複製する - GitHub Docs
読み方
リポジトリ Repository
読む目的?
codeを読むのは手段
どんなタイプのレポジトリ?
設計意図
構成
各ディレクトリ、ファイルの役割
アルゴリズム Algorithmsとデータ構造 Data Structureの範囲
テンプレによる理解
使用しているフレームワーク、Architecture アーキテクチャ
読む範囲の絞り込み
ファイル File
codeの種類は?
Glue のり Midlleware
Interface-defining インターフェース定義
Implementation 実装
アルゴリズム Algorithms
Config
Tasking 繰り返し作業
Test テスト Testing
意図を知りたい時
codeのdiff
プルリク
動かしてみる
変更したりする
図を描くのもあり
設計時ぐらいしか書かないので、機会増やすのよい
ツールないの?
Codecrumbs
surya
方法
落下傘方式
具体的な気になる場所が決まってる時
深さ優先探索方式
一連の流れを知りたい時
例:token の発行の部分
デバッガ方式
実際に動作させて、反応を見る
hr.icon
参考
how-to-read-code/how-to-read-code.md at master · aredridel/how-to-read-code
大規模ソースコードの読み方
第6章 ほかの人のコードを読もう―無理なく始められるコードリーディングのコツ:1年目から身につけたい! チーム開発 6つの心得|gihyo.jp … 技術評論社
定期的にcommit 差分を見る話
バージョンアップとかでざっと見るのもいいかも...
I am Jonas: How to read a code
ちょっと丁寧なので、いい所もらう
https://www.youtube.com/watch?v=35bfAn4JtSo
hr.icon
TODO
テンプレートの用意
毎日というがどのように実行していくか
記録
Sprintノートに曜日枠を用意するのがいい
例
月 [Vuetify]
火 [axios]
みたいな
目的意識
そのリポジトリから何を得たいのか
効率性
書ける時間
大きい1つのリポジトリを1日で見ることは難しい
codeは更新されるので、全部見るのは非効率
レベル感でいうと大事な20%を読めれば良い