<commit_before>## Whoami

<img class="avatar" data-src="https://avatars3.githubusercontent.com/u/6156742?v=3&s=460">

<NAME>

@ktrysmt

<https://twitter.com/ktrysmt>  
<https://github.com/ktrysmt>

経歴
* 学生時代 PerlMonger
* 受託開発会社 5年くらい
* リクルート住まいカンパニー 2年目 ← ｲﾏｺｺ

---

みなさん

---

コードレビューしてますか。

---

ある日のプルリクレビュー。

---

プルリクの本数
* だいたい6~8本

技術スタック
* JS
* PHP
* nodejs
* docker
* インフラ系いろいろ

アサインされてないやつも時々巡回してたり

---

問題点
1. 技術スタックが多岐にわたる
2. そもそも数が多い

---

対策しましょう。

---

1. 豊富な技術スタック
2. 数が多い

---

### 1. 豊富な技術スタック

---

技術スタックが多岐にわたるのは  
どうすればいいか。

---

エコシステムが巨大で対応技術の多い，  
安定した開発環境が必要。

---

→ Vimでしょ。

---

（すみませんただの好みです）

一応弁明すると，

Vimもプラグインが豊富にあり，CLIベースなのでIntegrationも柔軟。

大抵の言語は標準でサポート，それ以外もエコシステムがだいたい吸収してくれる。

---

Vimについては語りだすとキリがないので…

コードレビューに役立ちそうなTips，  
プラグインを一部紹介。

---

* vim-fugitive
* ale
* vim-easymotion
* tagbar & filer
* auto-ctags
* 高速vimgrep（※後述）

---

**vim-fugitive**


Vim上でGit操作いろいろできるやつ。

`:Gdiff` で表示して

`[c`,`]c` でhunk単位で移動

---

**ale**

最近の言語とそのエコシステムに一通り対応してる lint & static check の基盤。
主要言語の静的解析にだいたい対応してる。

非同期対応なので作業の邪魔をせず，快適。

特別な設定なしにプラグインを入れるだけでいいのがGood。

---

**vim-easymotion**

コード上を縦横無尽に動き回れるようになる


<img class="capture" src="./code-review-technology-03.png">

---

**tagbar & filer**

移動や探査がラクになる。

<img style="width:80%" class="capture" src="./code-review-technology-01.png">

---

**auto-ctags**

ctagsのタグファイル自動生成。

* `:Ctags` でOK
* `let g:auto_ctags = 1` で保存時自動生成

---

ctagsとは  

> 変数・関数・DOCコメント等の定義リスト（タグファイル）をソースコードから生成するツールで，IDEでよくある宣言ジャンプや呼び出し元への復帰を助ける仕組み。

auto-ctagsはこのタグファイル生成をVimから操作しやすくしてくれます。

---

**ctagsについて**

---

ctagsはメンテされていないらしいので...

---

universal-ctags を使いましょう

---

**universal-ctags**

* ビルドインストールを推奨
* ちゃんとメンテされてる（モダン言語にも対応してる）

前述のauto-ctagsで，Vimが更に便利に。

---

**豊富な技術スタック対策のまとめ**

* 巨大なエコシステムに乗っかりましょう
  * Vim以外にも色々 IntelliJ,Emacs,Atom,VSCode...
* 最近だとVSCODEもいいですね
  * 開発が活発
  * IDEらしさもちゃんとあり
  * プラグインが豊富
  * 意外と軽い
  * 無料

サーバーサイドやインフラを生業とする人は，VimやEmacs使いが多いですね。

---

次。
<commit_msg>fix typo<commit_after>## Whoami

<img class="avatar" data-src="https://avatars3.githubusercontent.com/u/6156742?v=3&s=460">

<NAME>

@ktrysmt

<https://twitter.com/ktrysmt>  
<https://github.com/ktrysmt>

経歴
* 学生時代 PerlMonger
* 受託開発会社 5年くらい
* リクルート住まいカンパニー 2年目 ← ｲﾏｺｺ

---

みなさん

---

コードレビューしてますか。

---

ある日のプルリクレビュー。

---

プルリクの本数
* だいたい6~8本

技術スタック
* JS
* PHP
* nodejs
* docker
* インフラ系いろいろ

アサインされてないやつも時々巡回してたり

---

問題点
1. 技術スタックが多岐にわたる
2. そもそも数が多い

---

対策しましょう。

---

1. 豊富な技術スタック
2. 数が多い

---

### 1. 豊富な技術スタック

---

技術スタックが多岐にわたるのは  
どうすればいいか。

---

エコシステムが巨大で対応技術の多い，  
安定した開発環境が必要。

---

→ Vimでしょ。

---

（すみませんただの好みです）

一応弁明すると，

Vimもプラグインが豊富にあり，CLIベースなのでIntegrationも柔軟。

大抵の言語は標準でサポート，それ以外もエコシステムがだいたい吸収してくれる。

---

Vimについては語りだすとキリがないので…

コードレビューに役立ちそうなTips，  
プラグインを一部紹介。

---

* vim-fugitive
* ale
* vim-easymotion
* tagbar & filer
* auto-ctags
* 高速vimgrep（※後述）

---

**vim-fugitive**


Vim上でGit操作いろいろできるやつ。

`:Gdiff` で表示して

`[c`,`]c` でhunk単位で移動

---

**ale**

最近の言語とそのエコシステムに一通り対応してる lint & static check の基盤。
主要言語の静的解析にだいたい対応してる。

非同期対応なので作業の邪魔をせず，快適。

特別な設定なしにプラグインを入れるだけでいいのがGood。

---

**vim-easymotion**

コード上を縦横無尽に動き回れるようになる


<img class="capture" src="./code-review-technology-03.png">

---

**tagbar & filer**

移動や探査がラクになる。

<img style="width:80%" class="capture" src="./code-review-technology-01.png">

---

**auto-ctags**

ctagsのタグファイル自動生成。

* `:Ctags` でOK
* `let g:auto_ctags = 1` で保存時自動生成

---

ctagsとは  

> 変数・関数・DOCコメント等の定義リスト（タグファイル）をソースコードから生成するツールで，IDEでよくある宣言ジャンプや呼び出し元への復帰を助ける仕組み。

auto-ctagsはこのタグファイル生成をVimから操作しやすくしてくれます。

---

**ctagsについて**

---

ctagsはメンテされていないらしいので...

---

universal-ctags を使いましょう

---

**universal-ctags**

* ビルドインストールを推奨
* ちゃんとメンテされてる（モダン言語にも対応してる）

前述のauto-ctagsで，Vimが更に便利に。

---

**豊富な技術スタック対策のまとめ**

* 巨大なエコシステムに乗っかりましょう
  * Vim以外にも色々 IntelliJ,Emacs,Atom,VSCode...
* 最近だとVSCODEもいいですね
  * 開発が活発
  * IDEらしさもちゃんとあり
  * プラグインが豊富
  * 意外と軽い
  * 無料

サーバーサイドやインフラを生業とする人は，VimやEmacs使いが多そう。

---

次。

{'fraction_non_alphanumeric': 0.15620998719590268, 'fraction_numerical': 0.014340588988476313, 'mean_word_length': 3.7518248175182483, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 17, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5312114', 'n_tokens_mistral': 3045, 'n_tokens_neox': 2932, 'n_words': 241}