- Git 8
897 :デフォルトの名無しさん[sage]:2014/04/12(土) 09:21:16.15 ID:ul/EWy73 - バイナリの場合にロックが必要ということは
要するに、ソースコード(テキスト)に関しては ロックは不要ってことでいいよね?
|
- Git 8
899 :デフォルトの名無しさん[sage]:2014/04/12(土) 09:25:48.39 ID:ul/EWy73 - ロックが必要な場合はあるかもしれないとして
それはバイナリに限るわけで ソースコード(テキスト)にロックは不要。 もし必要だとしたら、それはソースコードの質が悪いから。 質が悪くて単一責任の原則(SRP)を満たしていないから 複数の人が一つの関数を修正することになる。
|
- Git 8
901 :デフォルトの名無しさん[sage]:2014/04/12(土) 09:32:41.33 ID:ul/EWy73 - 多人数のプロジェクトがあるとして、
まずやるべきタスクがある(githubで言えばIssueに相当する) そのタスクには担当者が書いてある。 だから同じタスクを複数の人がやることはない。 別々のことをやっているのだから、同じ関数をいじることは少ない。 もし別々の作業をやっていて同じ関数をいじることがあればマージすればいいだけである。 (ロックがあると別々の作業をやってるはずなのに、ロックされていて作業ができないという問題が発生する!) マージできないバイナリだけが問題なので ソースコード(テキスト)にロックが必要になることはない。
|
- Git 8
908 :デフォルトの名無しさん[sage]:2014/04/12(土) 11:11:06.10 ID:ul/EWy73 - >>904
一般的な話をすると、必要ないメールは、減らす方がいい。 減らす努力をしないとダメだ。 メールがたくさんあると埋もれて重要なメールを見逃す。 たとえば、自分と関係ないファイルのロック情報のメールは 重要なメールを隠すゴミでしかない。
|
- Git 8
909 :デフォルトの名無しさん[sage]:2014/04/12(土) 11:12:26.73 ID:ul/EWy73 - 基本的な話として、コンフリクトが起きるのは
多人数のプロジェクトであっても少ないという この前提があることを忘れないように。 つまりはロックをかける必要性は 少ないということである。
|
- Git 8
910 :デフォルトの名無しさん[sage]:2014/04/12(土) 11:16:35.51 ID:ul/EWy73 - >>907
> それはマージが神の如く万能な時に限る 95%うまくいく。 > どうマージすればいいか担当者間で話し合わなきゃならないことがある ロックはファイル単位なので 「他の人が触っている時にそのファイルをいじれない」という大問題が、 プロジェクトの人数が増えれば増えるほど大きくなる。 つまり担当者間で調整する必要が増えるが マージの95%はうまくいく、つまり 「他の人が触っている時にそのファイルを触っても問題ない」ので 担当者間での調整が殆ど発生しない。 「他の人が触っている時にそのファイルを触っても問題ない」のに 「他の人が触っている時にそのファイルをいじれない」ことが起きる原因がロック。
|
- Git 8
913 :デフォルトの名無しさん[sage]:2014/04/12(土) 11:20:45.20 ID:ul/EWy73 - ロックをかけていれば、プログラムが壊れないかというとそうではない。
同時に作業をしている時、 Aさんがaというファイルを Bさんがbというファイルを修正した時、 ロックをかけていても、ファイルが違うので 当然同時に作業できる。 a単体、b単体なら修正しても問題ないが、 aとbの両方が修正された時、プログラムが壊れることはある。 つまり、 > それはマージが神の如く万能な時に限る > どうマージすればいいか担当者間で話し合わなきゃならないことがある というのは、ロックをかけていても発生する問題。 ロックがあれば万能なんだということにはならない。
|
- Git 8
914 :デフォルトの名無しさん[sage]:2014/04/12(土) 11:23:00.27 ID:ul/EWy73 - >>912
> というか、だいたいはそれで機能するんだろうけど、万一の事故が起きないように、ソースが > クリーンであることを確実にしたいためにロック型の共有が必要になるんだよ。 たしか、ソースコード(テキスト)のロックは百害あって一利なしって コンセンサスを得られたと思ったんだけど?(笑) ロックを使ったとしても確実にクリーンになることはない。 ただ他の人の作業を妨げるだけ。 本来同時に出来る作業(それが大部分)ができなくなる。というデメリットが発生するだけ。
|