PHP Perl Ruby Chef Puppet Agile
今mixi
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) 新品価格 |
今日のメッセージ
- Githubを利用した開発の世界を知る
- Githubを(活用)する違いを知る
- Github実践入門はガイドブック
使っているだけのか、十分に使いきっているのかの違いを考える
Githubを利用した開発の世界を知る
世界(所謂ワールドの話はせず、業務、仕事でGithubがある状態とない状態)
Githubについて
pull request ぷるり ぷるりく全部一緒
Pull Requestを利用した開発
- 対話
- フィードバック
- コードレビュー
- テスト(必要性に迫られる)
- マージ(mergeできるようにするためにはどうするか)
よくある世界
- なんとなく変数名をつける(いまいちしっくり来ないけどとりあえず名前をつける)
- この変数名適切じゃない気がする
- いくつか候補を出す
- 機能を完成させるため、そのままにする
あとで適切な名前を思いついたら変更する
「あとで」変数名を変える→一生こない
- 他の人の眼にも触れずに本番環境で稼働する
Githubのある世界
- なんとなく変数名をつける
- この変数名適切じゃない気がする
- いくつか候補を出す
- 機能を完成させる
このことをGithubに書く
他の開発者がレビュー
- 良い変数名 + アルファをフィードバック
- コードに反映
6-7が下手をすると数分でかえってくる
2つの世界の差
Githubの開発でやっていると、すごく重要。
- 習慣(PRを出すとぷるりを見ざるを得ない、読まざるを得ない)
- 機会(修正 拡張 学習)
- 品質(2eyes < over 4 eyes)
- 心理(不安、安心、自身)
鉞を飛ばされる不安を払拭するために、よりよいコードを書く
変な上司に「頑張ってるなあ」って言われるよりも鉞を飛ばす人に「良いコード書いてるね」って言われる方が嬉しい
機会はすごく重要。機会があるから学習したり改善したり出来る。 GitHubを活用すればそういう機会が増えていく。
人の目が増えれば品質が上がるかどうかは分からんが。
世界の中にも差
使っているだけの人と、十分に活用している人 コードを管理 vs コードの価値を高める 差分を入れてもらう vs 対話 設計 改善
(mergeお願いします) (言われたら直すかな) vs (こういうふうに設計したいんだけどどう思う?) (これしっくり来ないんだけどどう思う?) (PRをレビューしてくれ)
↑のほうはコードレビューの習慣が生まれない ↓のほうはコードレビューをする してもらう
活用している人になる
使っているだけのPR
- 「このメソッド名は抽象的すぎませんか?」
- このようなコメントだけ
- 他の開発者がコードを見てるだけ、だけど何もしてない世界よりは良い世界
活用しているPR
- このメソッド名は抽象的すぎじゃない?「xxxyyyyzzz」のおうが具体的でよいと思いませんか?
- そうですね、ですがxxxはクラス名に含まれていますし、yyyzzzのほうが意味も簡素でよいと思う
そうねえ
LGFM
- conversationを活用して!!!
指摘=簡単、提案=難しい
- 「なんだよこのコード」というのはコードを理解していなくてもかけなくてもいえる
- コードをよりよくするために行動
GitHubを導入すると
- コードをレビューすると、
- 行動を起こすきっかけ
- 良い所悪いところが見える→現実
- 悪いところを回避、解決するノウハウも
GitHub実践入門
- PRのサイズを小さくする
- 試せる環境
- PRへのフィードバックを多くしすぎない(多いってことは、それ以前の話)
PRを溜めないようにする
なぜそうするのか、なぜそうなるのか
GitHub実践入門はガイドブック
red pill or blue pill?
真実を見なければいけない。この本をきっかけに真実を見なければならない
- 粗悪なコード
- 会社や組織の大成、ワークフロー
- コストのお話(お金、人)
GitHubを使うために学ぶこと
- そもそもGit
- コミットメッセージ
- ワークフロー
- GitHub
- CIセットアップ
学ぶべき情報があちこちに
YAPC::ASIA Tokyo 2013
- 導入期
- 成長期
- 成熟期
いろいろなことをしないとGitHubがエンジニアの職場になじまない
周りの人への啓蒙
- WIPで出せ
- マージ前にコードレビュー
- masterはいつでもデプロイ可能に
マナーを読む
GitHub実践入門活用
- コレ読んでメソッド
- 新人教育メソッド
- それGitHub実践入門に書いて…(ry
「コレ読め」で良い
Github != 目的
- GitHubの先にあるものを獲得しなければならない
- 開発効率?品質?
- ビジネスの成功?価値の向上?
「現場で使えるようなガイド」
明日から活用できる。