質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

3回答

3960閲覧

Git でのソース管理に関して

ShintaroIshida

総合スコア87

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

2グッド

2クリップ

投稿2016/07/13 02:12

Git によるソース管理方針(プロジェクト管理方針)で意見を頂きたく質問させて頂きます。

仮にZendFrameworkをベースにWEBシステムを組んだとして、今自分のGit管理は、フレームワークのソースも含めた全てのソースをGitで管理しています。
(もちろん、内部生成データ[ログファイル等]は、階層保持だけしてファイルそのものは省いていますが)

この管理を行っている理由として以下があります

  • 他の環境へプロジェクトを移す時、git→pullで行える
  • フレームワーク側のプロジェクトに何かあった時の担保を取っておきたい

今思いつく限りでは、上記のような理由ぐらいしかないと思います。

しかし、近年composerやdocker等の利用によりフレームワーク側のソースに関しては管理する必要がないのではないかとも思っています。(リポジトリの容量等の問題もありますし)

Gitによりソース管理は、
プロジェクト全体を包括して管理されているのか?
フレームワーク等ベースの部分は、他の仕組みで担保して実装ソース部分をGit管理しているのか?
他にもあれば、ご意見頂けると大変ありがたいです。

可能であれば、その管理方針にしている理由等も教えて頂けるとありがたいです。

tanat, A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Composerやnpm、bundlerといったパッケージマネージャのある環境の場合、ふつう2通りのデータを記録します(npmの場合は同じファイルに両方記録しますが、Composerやbundlerでは2ファイルに分かれています)。

  • インストールするパッケージの指定(ある程度範囲をもって指定できる)
  • 実際にインストールしたパッケージの記録(1バージョンにロック)

環境が変わるなどで「実際にインストールしたパッケージ」が変化せざるを得ない状況は別として(bundlerではC言語込みのエクステンションなどでOS依存が多発します)、そうでないならこの2つのファイルからnpm installcomposer installで元の環境を完全に再現できますので、生成したファイルまでgit管理するのはあまり意味がありません。

投稿2016/07/13 02:19

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ShintaroIshida

2016/07/13 02:33

回答ありがとうございます 自分の理解が足りないと思うので恐縮なのですが、 Composer 等で取得されるデータに関して、外部から取得されるという認識です。 この場合、取得元から当該プロジェクトが管理外になったりした場合、 自環境の復元に手間取る認識(最悪できない?)なのですが、 そういった懸念はそもそもする必要はないのでしょうか? それともGit管理していないだけで、どこかローカルに生成ファイルのみは保持して おくような運用なのでしょうか?
maisumakun

2016/07/13 02:40

当然ですが、動作させるためには設定ファイルだけでなくて、事前に取得しておく必要はあります。ディレクトリ内に取得したファイルはあるけどgitignoreで管理からは外しておく、そんな感じです。
guest

0

サードパーティ製のフレームワークのソースコードは直接管理せず、依存関係解決ツール(Composerとか、Nodeだとpackage.jsonとかですね)の設定ファイルのみ管理するのが主流だと思います。

サードパーティ製ライブラリを実体管理する場合のメリットも、依存設定ファイル管理に移行してもほとんど問題なく享受することができます。

・他の環境へプロジェクトを移す時、git→pullで行える
→依存関係ツールの実行コマンドを叩くという手順が一つ増えますが、大した手間ではありません。

・フレームワーク側のプロジェクトに何かあった時の担保を取っておきたい
→依存関係解決ツールの設定ファイルでは、フレームワークのバージョンを指定(固定)できるはずです。
これなら最新版のサードパーティ製フレームワークがリグレッションを起こしたとしても、設定ファイルを書き換えれば回避できます。

投稿2016/07/13 02:27

yohira0616

総合スコア255

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一年以上前の質問で恐縮なのですが、あれから色々と開発してみて

・管理系ファイルは、.gitignore で適切に管理する
という方向に落ち着いています

サードパーティ製のフレームワークのソースコードは直接管理せず、依存関係解決ツール(Composerとか、> Nodeだとpackage.jsonとかですね)の設定ファイルのみ管理するのが主流だと思います。

上記が現状、主流である認識もあるのですが、システムで使われているFW等が対応していない?等ある場合がありまして。。。。。

今後、開発時の選定基準にそういった管理・運用工数も含めて検討出来るようにしようと思います。

回答頂いた皆様ありがとうございました。

投稿2017/07/12 07:54

ShintaroIshida

総合スコア87

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問