ベンチャー企業のコード管理と運営とメンテナンスの規範化
1746 ワード
前言
完全に正しいルールはありませんが、みんなが統一的に認めたルールがなければ、それぞれが戦って、事はめちゃくちゃになります.
コードウェアハウスとブランチ管理
SVNブランチ管理
多くの創業会社のコード倉庫はSVNを使っていて、集中式のコード倉庫で、私たちが最初に使ったのも、古いツールで、私は知っています.SVNを使用すると、2つの開発モデルがあり、主幹はすべての研究開発を開発して新しい分岐を引っ張らないで、現地で一部を開発した後にcommitはmasterに着いて、衝突があって直ちに解決します.コンセプトは、大きな衝突を解決するのが苦痛なので、常に小さな衝突を解決し、masterコードが公開可能な状態であることを永遠に保証し、小さなステップを反復し、迅速に納品することです.実際、この理念はかなり理想的で、ほとんど実現できません.これは、各研究開発において構築されたコードの品質が高く、0 bug commitがmasterに到達することを保証するために自覚的かつ完全にテストすることができ、または全面的な回帰テストがあってこそ、masterコードが永遠にリリース可能な状態であることを保証することができる.ベンチャー企業では、SVNを使うなら、決してこの死をしないでください.このように使うと、masterコードは半製品かバグに満ちていることがよくわかります.このとき、優れた需要やhotfixがあれば、svn logを様々にひっくり返して、ブランチ開発に戻るしかありません. ブランチ開発ブランチ開発は、新しい反復が開始されるたびに、または新しい機能開発が開始されるたびに、masterから開発ブランチを引き出し、コードを新しいブランチに全量コピーすることに相当します.新しいブランチで開発を行い、開発が完了したら、このブランチを直接生産環境にパブリッシュしたり、コードをMasterにマージしたりして、masterを生産環境にパブリッシュしたりすることができます.もちろん、ブランチコードをmasterにマージしてからmasterコードをパブリッシュし、プロセスを通じてmasterコードを強制的に最新に制約することを強くお勧めします.複数のブランチが並列に開発されている場合は、コードをマージするときに苦痛になる可能性があります.衝突を解決します.基本的にそうすれば、大きな問題もありません.分岐時以外は全量コピーで卵が痛いです.
Gitブランチ管理
Gitは、大神linusがlinuxコアに続くもう一つの神級の製品です.理念的にsvnの時代をリードしている.詳しくはsvn,gitの対比をネットで見ることができます.私にとってgitとsvnの違いは、主に svnは集中的で、中心が1つしかありません.gitは分布式で、誰もが全量のコードを持つことができます.命令から現れる、 svn新しいブランチを作成するには、masterからフルファイルを新しいbranchにコピーし、gitはインクリメンタルです.したがって、同時に10個のブランチを開くと、svnのソースファイルは10部になり、gitはできません.
実際の使用ではgit-flow方式を採用し,各種branchを細分化して使用することができる.主にいくつかの分岐点に分かれています master release dev-branch hotfix
詳細はチェン一峰-Gitワークフローを参考にして、展開しません.
本番環境のバージョン管理
工事の運行とメンテナンスの規範化
ディレクトリ構造の統合
統合起動と停止の制御スクリプト
統合maven倉庫
マルチ環境での複数のプロファイル
統合コンパイルスクリプト
完全に正しいルールはありませんが、みんなが統一的に認めたルールがなければ、それぞれが戦って、事はめちゃくちゃになります.
コードウェアハウスとブランチ管理
SVNブランチ管理
多くの創業会社のコード倉庫はSVNを使っていて、集中式のコード倉庫で、私たちが最初に使ったのも、古いツールで、私は知っています.SVNを使用すると、2つの開発モデルがあり、
Gitブランチ管理
Gitは、大神linusがlinuxコアに続くもう一つの神級の製品です.理念的にsvnの時代をリードしている.詳しくはsvn,gitの対比をネットで見ることができます.私にとってgitとsvnの違いは、主に
svn checkout
V.S.git clone
実際の使用ではgit-flow方式を採用し,各種branchを細分化して使用することができる.主にいくつかの分岐点に分かれています
詳細はチェン一峰-Gitワークフローを参考にして、展開しません.
本番環境のバージョン管理
工事の運行とメンテナンスの規範化
ディレクトリ構造の統合
統合起動と停止の制御スクリプト
統合maven倉庫
マルチ環境での複数のプロファイル
統合コンパイルスクリプト