最近、彼はお気に入りのトピックであるSCMの本を読み、レビューし始めました。SCMには、主にバージョン管理、変更追跡、チューニング、リリースリリース、およびその他のいくつかの同様に重要なトピックが含まれます。 今回、詳細なレビューのために自分のために選んだもののリストから別の本が配布されました。 呼ばれるソフトウェア構成管理パターン :効果的なチームワーク、実用的な統合、著者-Stephen P. BerczukとBrad Appleton。 「ソフトウェア構成管理テンプレート:効果的なチームワーク、実用的な統合」としてロシア語に翻訳できます。
他の知識分野と同様に、SCMには、確立された独自のプラクティス、テクニック、および作業を効果的にするための単純な成功方法があります。 したがって、誰かがすでにこのすべてを1つのソースに配置しているはずです。 しかし、作者はソフトウェア開発だけでなく、構成管理でも豊富な経験を持っているため、タスクを引き受けたのは彼らでした。
ソフトウェア開発におけるパターンのテーマは、かなり長い間解決されてきました。 さらに、結局のところ、彼女は建築から始まりました。 セルゲイ・テプリャコフは、RSDN Magazineのページでこの傾向の起源について語っていますが 、読んでください(もちろん、このメモの後)。
本全体は、導入部、2つの主要なセクション、およびいくつかのアプリケーションに分かれています。
導入部と第1章全体では、ソフトウェア構成管理とは何か、テンプレートとは何かを読者に簡単に思い出させます。 注目に値するもの-これは一人称のナレーションではなく、他の多くの作品からの引用です。 著者はしばしば雑誌に掲載し、会議に参加します。 したがって、自分自身や他の業界当局への言及が不足することはありません。 一般に、通常の科学的アプローチでは、頭から取られただけでなく、少なくとも他の人が考え直したことはすぐに明らかになります。
この本の基礎は、もちろん、テンプレート自体の説明です。 各テンプレートは同じ形式で提供されます。問題の状況が説明され、さらなるアクションについて質問された後、詳細な回答が提供されます。 その後、説明されているテンプレートに関連付けられているが、まだ解決されていないタスク(未解決の問題)、および説明されている手法についてより詳細に読むことができる文献へのリンクが記載されています(さらに読む)。 一般的に、適切なエンジニアリングアプローチ。
合計16のパターンが記述されており、著者は条件付きで2つのセットに分けています。
まず、 コードライン関連のパターン 、つまり コードの操作方法を示すテンプレート。 これらには以下が含まれます。
- メインライン-安定したリリースを発行し、安定したコードのみを保存するためのメインブランチの使用。
- アクティブな開発ライン-最小限の分岐とアクティブな作業による「トランクでの」開発。
- プライベートバージョン-開発者のニーズに応じて分岐します。分岐はデバッグおよび中間結果に使用されます。
- リリースライン-新しいリリースを形成することを目的としたブランチ(1つの新しいリリース= 1つのブランチ)。
- リリース準備コード行-リリース行と同じ。リリースの直前に分岐のみが行われ、作業が安定します。
- タスクブランチ-タスク上のブランチ。
- コードラインポリシー-コードコミットとその(自動)検証に密接に関連するポリシーの実装と保守。
2番目のセットは、 ワークスペース関連のパターンです。
- プライベートワークスペース-作業に必要なコードと環境設定のバージョンを含むワークスペースを開発者に割り当てる必要性について。
- リポジトリ-コードのバージョンだけでなく、リリースの作業と作成に必要なツールも格納するリポジトリ。
- プライベートシステムビルド-開発者が他のプロジェクト参加者と交差することなくシステムを再構築できるようにする必要性について。
- 統合ビルド-参加者の作業を結合する統合ビルド。
- サードパーティのコードライン-サードパーティの依存関係のバージョン管理を整理する方法。
- タスクレベルのコミット-タスクブランチのテーマのバリエーション。
- 煙テスト-メインブランチまたはアクティブブランチへのコミットごとの自動テストについて。
- 単体テスト-同じ手法。
- 回帰テスト-統合のためにデルタを配信する前に回帰テストを実施する必要性について
一般的に、多くの人がすでに聞いたり試したりした基本的な慣行。
残りのアプリケーションは、SCMの問題と基本的なツールに関する有用なリソースの簡単な説明を提供します(ただし、ここでの情報はやや時代遅れです)。
全体的な結果-より多くのテンプレートが必要ですが、既にこの形式であるため、適切な手法の参考になります。