チーム開発 実践入門 読メモ

1.概要

2.ケーススタディ

3.バージョン管理システム

ブランチ管理と

70年以前バージョン管理はなし→80年代RCS→90年代CSV,VSS,Perforce,00年代Subversion, 05年以降中央集権的システムから分散型Gitへ

2015年頃はスタートアップか、先進的な企業しかGithubを取り入れていなかった。開発者にとってGithubの利用状況を就職の基準にすることもあった。(驚き)

■メリット

リポジトリの完全コピーをローカルに持つため・・・動作が早い(通信が少ない)、tmp作業が容易、ブランチ・マージが容易、場所を選ばない(通信が不要)

■デメリット

最新バージョンがわからない(誰かのローカルマシンにあるかもしれない)、ワークフローが柔軟なため複雑な管理が可能(そうした場合理解が困難になる)、学習コスト

何を管理するか:可能なものすべて。CI/CDに必要だから(ソースコード、ドキュメント、DBスキーマ、データ、ミドルウェアのバージョン等設定ファイル、libraryの依存関係

ドキュメント系の管理においてはワード・エクセルよりはMarkdown,Textile,reStructuredTextなどテキスト系が扱いやすい

タグ機能はリリース管理に使える ReleaseタブとTagの紐付け

Gitワークフロー2種 中央集権的(SVN進化)、Github-flow

DBスキーマ管理 DBマイグレと呼ぶ DBのCI

4.チケット管理

チケット駆動開発:チケットとコミットを一体化

バージョン管理システムとの連携でトレーサビリティ向上 Githubで完結させるとなおのこと。

5.CI

テストコードの諸々 UIなしにテストできる設計開発

Jenkins(できること多い)、TravisCI(Gitとの連携強い)

6.CD

Jenkins等でもサポート?流し読み

7.リグレッションテスト

4象限によるテストの分類

自動テスト:デグレードを防ぐ

Selenium 画面の差分など定量的に違いを取れる

SeleniumはJenkinsと連携できる。時間が課題。並列実行などで高速化が肝。

タイトルとURLをコピーしました