20120125 チーム開発

Preview:

Citation preview

始めようチーム開発〜バージョン管理編〜

お前、誰よ

● しんどう or しんどー (not 神童)

● 広島出身

広島弁とかよく分かりません

● 仕事、なんかシステム作ってます

Webアプリケーションが多いです

● お酒とプログラミングが好き

今日やること

● やろうよ、チーム開発

● バージョン管理システムってなに?

● Gitおすすめだよ

やろうよ、チーム開発

の前に

チーム開発したことある人!

個人開発とチーム開発の違い

個人開発とチーム開発の違い

開発規模

個人開発とチーム開発の違い

人員・コスト

開発規模

個人開発とチーム開発の違い

人員・コスト

開発期間

開発規模

個人開発とチーム開発の違い

人員・コスト

開発期間

開発規模

個人開発

個人開発とチーム開発の違い

人員・コスト

開発期間

開発規模

個人開発

全て俺!

個人開発とチーム開発の違い

人員・コスト

開発期間

開発規模

個人開発 チーム開発

全て俺!

個人開発とチーム開発の違い

人員・コスト

開発期間

開発規模

個人開発 チーム開発

全て俺!

チームで

決める

全て俺!ってカッコイイやん

カッコイイ

でも

個人で作るのは限界あるよね

個人開発で不利な点

個人開発で不利な点

● スピード感

個人開発で不利な点

● スピード感

● アイデア→開発→広告→メンテナンス

個人でさばくのはとても大変

個人開発で不利な点

● スピード感

● アイデア→開発→広告→メンテナンス

個人でさばくのはとても大変

● 物量勝負

個人開発で不利な点

● スピード感

● アイデア→開発→広告→メンテナンス

個人でさばくのはとても大変

● 物量勝負

● 孤独

個人開発で不利な点

● スピード感

● アイデア→開発→広告→メンテナンス

個人でさばくのはとても大変

● 物量勝負

● 孤独

チーム開発で解決!!

チーム開発の

不利な点は?

チーム開発の不利な点

チーム開発の不利な点

● 意思疎通

チーム開発の不利な点

● 意思疎通

● 人員のコストがかかる

チーム開発の不利な点

● 意思疎通

● 人員のコストがかかる

● ソースコードやドキュメントの管理

(コードの変更の意図や履歴、ある状態の保存)

チーム開発の不利な点

● 意思疎通

● 人員のコストがかかる

● ソースコードやドキュメントの管理

(コードの変更の意図や履歴、ある状態の保存)

● 毎週金曜日の飲み会

個人開発に比べると

解決できそうな問題だね

(ニコリ)

やろう、チーム開発

チーム開発の不利な点

● 意思疎通

● 人員のコストがかかる

● ソースコードやドキュメントの管理

(コードの変更の意図や履歴、ある状態の保存)

● 毎週金曜日の飲み会

チーム開発の不利な点

● 意思疎通

● 人員のコストがかかる

ソースコードやドキュメントの管理

(コードの変更の意図や履歴、ある状態の保存)

● 毎週金曜日の飲み会

本日のメイン

ファイル管理の煩わしさ

ファイル管理の煩わしさ

● いつ、だれが、どこを修正したの?

ファイル管理の煩わしさ

● いつ、だれが、どこを修正したの?

● 修正の意図は?

(3ヶ月前の自分は他人です)

ファイル管理の煩わしさ

● いつ、だれが、どこを修正したの?

● 修正の意図は?

(3ヶ月前の自分は他人です)

● フォルダごと全て消しちゃった...

(失恋したら、勢いで消すよね、普通)

丸尾くん、

どうすれば良いですか?

ズバリ、

バージョン管理システム

でしょう!!

ありがとうございます

バージョン管理システムとは

バージョン管理システムとは

ファイルの履歴を管理します

バージョン管理システム導入の

メリット

● 誰が、いつ、どのコードを変更したのかが分かる

● バックアップがわりになる

● 以前のバージョンに巻き戻せる

● どのコードがバグになっているのか分かる

バージョン管理システム

紹介するぜ!

(メジャーなツール)

1世代前の覇者

1世代前の覇者

『Subversion』

1世代前の覇者

『Subversion』

モテモテ現代っ子

1世代前の覇者

『Subversion』

モテモテ現代っ子

『Git』

使ったことある人!!

Subversion集中型バージョン管理システム

Subversion集中型バージョン管理システム

マスタリポジトリ

作業コピー作業コピー

Subversion集中型バージョン管理システム

マスタリポジトリ

CheckoutUpdate

作業コピー作業コピー

Subversion集中型バージョン管理システム

マスタリポジトリ

CheckoutUpdate

commitcommit

作業コピー作業コピー

Git分散型バージョン管理システム

Git分散型バージョン管理システム

マスタリポジトリ

リポジトリリポジトリ

Git分散型バージョン管理システム

マスタリポジトリ

ClonePull

リポジトリリポジトリ

Git分散型バージョン管理システム

マスタリポジトリ

ClonePull

リポジトリリポジトリ

Git分散型バージョン管理システム

マスタリポジトリ

ClonePull

PushPush

リポジトリリポジトリ

Git分散型バージョン管理システム

マスタリポジトリ

ClonePull

PushPush

リポジトリリポジトリ

モテモテ現代っ子

『Git』

に注目してみる

Gitの開発者

『リーナス・トーバルズ』

え、もしかして...

あの...

『創聖のアクエリオン』リーナちゃん??

違います

Linuxの開発者

『リーナス・トーバルズ』

大先生です!!

集中型から分散型へ

● オフライン開発に強い

マスタリポジトリ

ClonePull

PushPush

リポジトリリポジトリ

● オフライン開発に強い

● 障害に強い

マスタリポジトリ

ClonePull

PushPush

リポジトリリポジトリ

アルゴリズムの強化

ファイルの共同作業で頻繁におきる

Conflictを激減(Subversionでは頻繁に起きるアレ)

ファイルA ファイルA

同一ファイルの修正で、マージに失敗

現代っ子らしく

ソーシャル機能が充実

(github)

Githubをどんどん使おう

Githubをどんどん使おう

● アカウント持ってる?

Githubをどんどん使おう

● アカウント持ってる? → 今すぐ登録!!

Githubをどんどん使おう

● アカウント持ってる? → 今すぐ登録!!

● プログラマSNS

Githubをどんどん使おう

● アカウント持ってる? → 今すぐ登録!!

● プログラマSNS

● 気に入った人はフォローできる

Githubをどんどん使おう

● アカウント持ってる? → 今すぐ登録!!

● プログラマSNS

● 気に入った人はフォローできる

● 自分のコードを晒せる

Githubをどんどん使おう

● アカウント持ってる? → 今すぐ登録!!

● プログラマSNS

● 気に入った人はフォローできる

● 自分のコードを晒せる

● forkして、pull request!!

Githubをどんどん使おう

● アカウント持ってる? → 今すぐ登録!!

● プログラマSNS

● 気に入った人はフォローできる

● 自分のコードを晒せる

● forkして、pull request!!

→ オープンソースに貢献

まとめ

● チーム開発いいよ

● Gitがおすすめ

● Githubを活用しよう

おしまい〜 〜

Recommended