みゆっき☆think#10 チーム開発〜脱ぼっちマインド〜
TRANSCRIPT
チーム開発
~脱ぼっちマインド~2011-12-02 第10回 みゆっき☆Think
チーム開発
~脱ぼっちマインド~~脱ぼっちマインド~
こんばんは
塚つかだあきひろ
・ニコニコ生放送・PHP/Ruby・TDD/アジャイル・レガシーコード改善委員会
@akitsukada
今日やること
今日やることプログラマ視点から
脱ぼっちマインド
プログラマ視点から
脱ぼっちマインド を身につける
今日やらないこと
チームマネジメントアジャイル手法
チームマネジメントやアジャイル手法 的なこと
【脱ぼっちマインド】 (だつ-) [名詞]
日々の開発において常に他人(チームメンバー)を意識すること。また その精神。
【脱ぼっちマインド】 (だつ-) [名詞]
ぼっち
ぼっち※イメージです
ぼっち
ぼっち
脱脱脱
※イメージです
脱 ぼ っ ち脱 ぼ っ ち
( ゚∀゚)o彡゚脱ぼっち!脱ぼっち!
( ゚∀゚)o彡゚脱ぼっち!脱ぼっち!
な3つのポイント
via @kwappa
via @kwappa
脱ぼっちバージョン管理
via @kwappa
脱ぼっちコーディング
脱ぼっちバージョン管理
via @kwappa
脱ぼっちコーディング
脱ぼっちバージョン管理
脱ぼっち テスト
【共通ポイント】
自分の意図が常に他人にも分かるようにしておくこと
【共通ポイント】
自分の意図が常に他人にも分かるようにしておくこと*3ヶ月後の自分は他人
脱ぼっちバージョン管理
Git等VCSをチームで使う
(・3・)
...thinking...
!(゚∀゚)
!(゚∀゚)
・コミットログの内容・適切なコミット粒度・ヒストリーの整理 ...etc
コミットログの内容
コミットログの内容
コミットログの内容
コミットログの内容
見ればわかる(^^;
コミットログの内容
コードの変更理由を他人が読んで分かるように。
コミットログの内容
コードの変更理由を他人が読んで分かるように。
脱ぼっちコーディング
分かりやすいことwhat,how,why
what
名前重要
stackを実装してみる#tddbc@dwango
名前重要
how
シンプルに
・(←よりもっと)
深いネスト・長すぎる節・何もしない 例外処理・複雑な 分岐条件・意味不明な マジックナンバー
これで意味が
分かる方が変
アウアウ!! (^ω^;)⊃ ⊂ミ⊃ ) / ヽ
翻訳コメント
翻訳コメントも
( ^ω^)翻訳コメントで処理の説明するよりコメントが要らないようにコードを書くお
( ^ω^)翻訳コメントで処理の説明するよりコメントが要らないようにコードを書くお
シンプルに
why
意図を書く
howwhatは
見れば分かる
が
なぜそう書いたか
はわからない
要件?制約?スキル?好み?
whyこそコメントに書こう!
「ここなんで こうなってるの?」「◯◯さんしか わかりませんよ」
「ここなんで こうなってるの?」「◯◯さんしか わかりませんよ」⇨トラックナンバー ==1状態\(^o^)/
意図を書く
脱ぼっちコーディング力
Upするには
オススメ1物理的に脱ぼっちする=ペアプロ
オススメ2読む
「リファクタリング」「ビューティフルコード」
とか好きなOSS
オススメ3書く
ブログに書く、GitHubに上げる、
OSSに参加する
分かりやすいことwhat,how,why
脱ぼっち テスト
テスト書いてますか
今日から書こう
テストの脱ぼっち効果
テストの効果その1
大規模なWebサービスのコア部分に機能を追加する。自分が作った箇所ではないので不安。しくったら数百万人のユーザに影響がある。金銭的損害も多大。
::テストがないと…
::テストがないと…自分が行った変更で既存の機能が壊れていないか心配で仕方ない。リリース日には祈るしかない。壊れてたら笑うしかない。いやたぶん笑えない。
Edit & Pray ::テストがないと…自分が行った変更で既存の機能が壊れていないか心配で仕方ない。リリース日には祈るしかない。壊れてたら笑うしかない。いやたぶん笑えない。Edit & Pray
Edit & Pray ::テストがないと…自分が行った変更で既存の機能が壊れていないか心配で仕方ない。リリース日には祈るしかない。壊れてたら笑うしかない。いやたぶん笑えない。Edit & Pray
::テストがあれば::テストがあれば
::テストがあれば常に関連するテストを実行し、機能が壊れていないことを確認しながら安心して作業ができる( ^ω^)
::テストがあれば常に関連するテストを実行し、機能が壊れていないことを確認しながら安心して作業ができる( ^ω^)
Cover & Modify
::テストがあれば常に関連するテストを実行し、機能が壊れていないことを確認しながら安心して作業ができる( ^ω^)
::テストがあれば常に関連するテストを実行し、機能が壊れていないことを確認しながら安心して作業ができる( ^ω^)
Cover & Modify
Cover & Modify
::テストがあれば常に関連するテストを実行し、機能が壊れていないことを確認しながら安心して作業ができる( ^ω^)
::テストがあれば常に関連するテストを実行し、機能が壊れていないことを確認しながら安心して作業ができる( ^ω^)
Cover & Modify
GREENRED
テストの効果その他
・テストコードは信頼できる仕様書になる(=そのコードでやりたいことを表現できる)・チームの誰が書いてもVCSで共有して各自で実行できる・テストしやすいコード ≒良いコード
まとめ(^o^)
【共通ポイント】
自分の意図が常に他人にも分かるようにしておくこと*3ヶ月後の自分は他人
via @kwappa
コーディングwhat,how,
why
バージョン管理コミットログ
テストCover
&Modify
宿題
好きな言語でユニットテストを書いてみる。
https://github.com/kwappa/tddbc/tree/master/dwtddbc01
テストの書き方参考
via @kwappa
脱ぼっちコーディング
脱ぼっちバージョン管理
脱ぼっち テスト
via @kwappa
脱ぼっちコーディング
脱ぼっちバージョン管理
脱ぼっち テスト