Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
とある案件のTFS導入事例
Search
Hidetake Iwata
February 20, 2012
Technology
0
580
とある案件のTFS導入事例
第4回 TFSUG
http://kokucheese.com/event/index/26350/
Hidetake Iwata
February 20, 2012
Tweet
Share
More Decks by Hidetake Iwata
See All by Hidetake Iwata
Rewrite Go error handling using AST transformation
int128
1
1.2k
Cluster AutoscalerをTerraformとHelmfileでデプロイしてPrometheusでモニタリングする / Deploy the Cluster Autoscaler with Terraform and Helmfile, Monitor with Prometheus
int128
3
1.6k
認証の仕組みとclient-go credential plugin / authentication and client-go credential plugin
int128
7
7.2k
CLIでOAuth/OIDCを快適に利用する
int128
0
720
AppEngine × Spring Boot × Kotlin
int128
0
83
いつものJIRA設定
int128
1
160
Swaggerのテンプレートを魔改造した話 / Customize Swagger Templates
int128
1
4.6k
本番環境のリリースを自動化した話
int128
0
680
Swagger × Spring Cloud
int128
0
82
Other Decks in Technology
See All in Technology
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
100
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
880
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
420
いざ、BSC討伐の旅
nikinusu
2
780
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
Can We Measure Developer Productivity?
ewolff
1
150
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
190
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
760
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
690
Lexical Analysis
shigashiyama
1
150
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Docker and Python
trallard
40
3.1k
Faster Mobile Websites
deanohume
305
30k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Building an army of robots
kneath
302
43k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Transcript
2012.2.20 第4回TFSUG #tfsug @int128
自己紹介 INTRODUCTION
いわてぃ @int128 http://d.hatena.ne.jp/int128/ SIerに勤務するエンジニア。 WordやPowerPointより、 コードを書いているほうが好きです。 2007 2012 2008 2009
2010 2011 インフラエンジニア プログラマ スーツ的な仕事?
私事ですが…
2012年3月、 結婚式を挙げます ※写真はイメージです
アジャイルな結婚式準備
本題
はじめに ※本発表の内容は、私の所属する会社や組織の方針を反映するものではありません。 とある開発プロジェクトでTFSを運用した事例を紹介します。 http://d.hatena.ne.jp/int128/20111221/1324487491
プロジェクト概要 2010年10月〜2011年3月末 • あ 2011年4月〜2012年3月末
チームマネジメント 開発フェーズ • 朝会 • スタンドアップミーティング 要件定義フェーズ • 朝会 •
プロジェクタでTFSのタスクリストを表示しながら ※私はマネージャでもリーダでもないです
ポータルサイト ポータルサイトを上手く運用するとチームの情報共有が進む。 メールではなくRSS購読、情報の受身ではなく発信者へ。 お知らせ Tips (参考情報) リンク
開発環境 • 当初は VS2008+Subversion(AnkhSVN)を利用 • 他案件ですでに導入済み • Expression Blend 3
• 後に VS2010+TFS に変更 • Visual Studio 2010 • SQL Server 2008 R2 Express • Expression Blend 4 • .NET Framework 3.5(制約)
開発サーバ • その辺に転がっているデスクトップPC • Windows Server 2008 R2 • Team
Foundation Server 2010(後にSP1) • SQL Server 2008 R2 Enteprise • Office SharePoint Server 2007 • システム構成 • シングルサーバ • ドメイン参加 • 日次バックアップ
リポジトリやビルドサーバは拠り所。 シングルポイントになってはいけない。 • 速いマシン • 信頼できる構成 • 運用しやすい仕組み
TFS2010のセットアップはとても簡単 短時間でCI環境を構築できる。 Windows Serverが使える人ならTFSを運用できる。 「ビルド管理者」の一極集中を軽減できる。
ソースコード管理 VS2010+TFS2010を全面的に採用した。 • チェックイン、チェックアウトの操作に慣れればSVNとあまり違わな いと思う。 • 分岐とマージについては説明資料を作った。 • 将来のバージョンで、Git+SVNのように分散バージョン管理 の美味しいところを取り入れてくれたら嬉しい。
お約束 • バグやタスクの関連付け • TFS+VSではチェックイン時にバグやタスクを画面で選択して 関連付けられる。バグIDを手入力する必要はない。 • チェックインの必須項目にはしなかった。 • 最低でも1日1回のチェックイン
• トラディショナルな開発スタイルに慣れた人は、最初から完成 品を目指してしまう。 • チェックインは怖くない! • コードの共同所有文化 • リファクタリング
シェルブを使う 作業中のソースコードをサーバに一時的に保管しておける。 • git stash • 作業履歴 • ちょっと大きな変更を加えるときに成果物を保管する。 •
コードレビュー的なもの • 他人がシェルブしたコードも見られる。 • シェルブに入れたコードを相談や議論のネタにする。 「動かないんですけど…」 「俺のコードを見てくれ、どう思う?」
チェックインポリシー チェックイン時に制約を設けることが可能 • ビルドの通らないコードはチェックインできない。 • ユニットテストの通らないコードもチェックインできない? • ユニットテスト?美味しいの? • 開発に習熟したチームでないと難しいと思う。
• 品質ゲート
コード分析
ユニットテスト VS2010 Unit Testを採用した。 • テストケースの自動生成 • カバレッジ
ブランチラインの運用
データベースの管理 スキーマとデータをリポジトリで管理する。 • データファイル(MDF)をチェックイン • アプリとデータベースの食い違いがなくなる。 ファイルアタッチ機能を利用 • 開発環境でアプリを実行するとき、データファイルをローカルの SQL
Serverに自動的にアタッチしてくれる • 開発環境のデータベースを同一に揃えられるため、環境に起因す るトラブルがなくなる
落とし穴 大きなデータファイルはディスクと時間を食いつぶす • TFSのビルドではいくつもの作業コピーを作られるため、MDFがコ ピーされないように設定する SQL Server Standard以上ではファイルアタッチドDBを利用できな い •
ビルドサーバにアタッチ済みのデータベースを用意し、テストの setUpで接続文字列を書き換える
ビルド 標準的なビルドなら、TFSの設定画面から数ステップで設定できる • 設定しやすいことは非常に重要 • 「ビルド担当者」のシングルポイントを取り除く VSとTFSのビルド設定がシームレス
通知
デプロイメント CD-Rリリース • お客様拠点にCD-Rを持ち込み、手動でインストール • 顧客端末へのリリースは人力でやるしかなくて、煩雑な手順が問 題になった。 • サーバどこに置いてるの? •
管理者アカウント? 限られた状況で • CD-Rを焼くまでは誰でもワンクリック • 成果物をビルドサーバの共有フォルダに出力
まとめ 短時間でCI環境を構築できるメリットは大きい。TFSのインストールや 管理は簡単。 ビルドエラーや警告から目を背けて、赤い日々や黄色い日々を過ごし てはいけない。