作者sunsamy ()
看板Soft_Job
標題Re: [請益] git上團隊開發觀念
時間Tue Jun 20 21:34:44 2017
回答得很好,可惜不實事求是
不過這也是鄉民的風格
可能鄉民不擅常獨立思考
自已也沒寫過版本控制軟體
1. 先回答git flow錯在那:
{
首先連git flow自已網站都說自已無法保証正確無誤
http://bit.ly/2t08DOT
--> 越是多的人參與進來,就越難保證每次合併正確無誤。
這會造成"合併會錯,是你修行不夠,你的問題"的錯覺
事實上這樣設計版本控制軟體"永遠不可能保証協作百分之百正確"
因此你後續要花很多時間在收拾殘局
當然git flow後續在軟工與驗証的觀念錯誤更多
待你慢慢去發掘
程度不夠的可能一個都找不出來
}
2. 再來是原作者使用git flow會錯在那:
{
6. 小A,小B,小C開始進行開發時,本身對自己的localRepo上對dev開發。
--> 從這個時間點起,A、B、C的開發都是錯的
因為A、B、C正在開發的都是彼此假設其它兩方"正在開發的東西不存在"
所以後續會有一堆事情要收拾
一個簡單的協作也能搞成這樣
簡值是垃圾軟體
}
謊言有多種方式,一種是說純粹的假話,另一種是說半真半假的話。
如果只看那一半真話,確實是對的,但看全部的話,仍然是謊言。
所以說,半真半假的謊言更危險。
在分析這種謊言的危害時,如果把真假兩部分獨立分開分析,是危險的。
只有整體分析,才能深刻地看清這類謊言的本質目的,從而避免壞 的結果發生。
<以上這些話取自小光>
以上已經探討了謊言的幾種方式。
其中,「半真半假」的謊言是最難識別的
另一個識別是否是正確協作的方式就是:
用起來會不會越用越複雜?會的話那就是錯的,因為effort在發散
git flow跟敏捷文化發就是這種「半真半假」的謊言
一堆似是而非的觀念充斥其中
當然有正確的協作方式,有機會再分享
※ 引述《tomtang0406 (自砍D文之王)》之銘言:
: ※ 引述《sunsamy ()》之銘言:
: : 身為一個程式設計員,竟然會相信git flow?
: 身為一個程式設計員,竟然會相信程式語言?
: : 跟相信敏捷文化的義和團有什麼不同?
: : 難道都沒發現git只會產生麻煩,不保証正確且越弄越複雜而已?
: 難道都沒有發現使用程式語言只會產生麻煩,不保證正確還要 debug,越弄越複雜而已?
: : 不信相的話查看看軟體版有多少人在問git的事
: 不相信的話查看看軟體版和 StackOverflow 有多少人在問程式語言的問題
: : 一個簡單的協作,因為一個git tool的出現弄得雞飛狗跳
: 客戶一個簡單的需求,就因為要寫程式就弄得雞飛狗跳
: : 還要出一本書才能掩蓋這個tool的無能,結果還是不能保証協作百分之百對且越弄越複雜
: 每個程式語言都還要各自出版 N 本書才能掩蓋這個程式語言的無能,結果還不能保證
: 工程師可以百分百正確做出客戶的需求
: : 好了,在ptt不能講太多事實!!!
: 真的!完全認同 ptt 不能講事實!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.250.214
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1497965686.A.8BD.html
1F:推 crossdunk: 戰起來站起來 06/20 21:50
2F:→ reichs: 任何一套版控軟體都無法做到正確無誤的合併. 06/20 21:54
3F:推 gitignore: 為什麼我在國外待過的大公司都在用gitflow或類似的? 06/20 21:54
4F:→ reichs: 小A,小B,小C都不知道對方在開發啥,軟體又怎麼可能知道 06/20 21:56
5F:→ gitignore: abc都不知道對方在幹嗎 這完全不敏捷阿... 06/20 21:56
6F:→ dreamnook: 他都腦內版控跟嘴砲程式碼 當然不需要(¿ 06/20 22:01
7F:推 abc0922001: 戰起來~~ 06/20 22:41
8F:推 abc0922001: 多人協作會衝突很正常,所以git merge有衝突會標示 06/20 22:47
9F:→ abc0922001: 衝突的地方。集中式版控就是保證你修改的時候別人 06/20 22:47
10F:→ abc0922001: 不會修改同一個檔案 06/20 22:48
11F:→ Argos: 正確的協作方式就是要管制阿 不然再好的制度 使用者腦包一 06/20 23:10
12F:→ Argos: 樣大家整天幹幹叫齁 說到底就還是人的問題 06/20 23:10
13F:→ ssccg: 協作不協作不是重點吧,一人改開多個branch最終也是要merge 06/20 23:11
14F:→ fjm31714: 請問大大終極解法是什麼呢? 06/20 23:13
15F:→ ssccg: 知道別的地方在改什麼對避免衝突感覺也沒什麼幫助,真要完 06/20 23:15
16F:→ ssccg: 全避免就是完全不平行開發,changeset有重疊到就等等等吧 06/20 23:17
17F:推 SuperCry: 小光是誰 進藤光? 06/20 23:22
18F:噓 Raymond0710: 重點還是在人身上 戰工具?呵呵 06/20 23:30
19F:推 lovdkkkk: 就算能正確合併 合併出來的東西也可能有邏輯錯誤 06/20 23:56
20F:→ lovdkkkk: 所以不管怎樣都要 review 比較好 06/20 23:57
21F:→ sorryla: 樓上,所以這跟工具根本無關,跟人怎麼用有關 06/21 00:01
22F:→ pythonista: 人都會犯錯,軟體應該要做到的是怎樣可以方便處理這些 06/21 00:10
23F:→ pythonista: 錯誤吧 06/21 00:10
24F:→ netburst: 想知道解法+ 就算是獨立開發真的會有這種問題 06/21 00:52
25F:推 gino0717: 這串文真的讚 06/21 01:02
26F:→ lywctl: 科 每次都久久出來刷一次存在感 06/21 02:26
27F:→ felixgugu: 有講跟沒講一樣 06/21 04:55
28F:推 gundam00: 根據這位鄉民的程度 我猜解法應該就是一個人開發就好 06/21 06:53
29F:→ beaprayguy: 我有說小A打框架,其他人從dev clone 06/21 06:54
30F:噓 vn509942: 如同你的表達能力一樣 那三人的溝通能力也有問題 06/21 07:02
31F:→ vn509942: 工具是用來輔助解決問題 如果有問題的是使用者 06/21 07:09
32F:→ vn509942: 應該解決使用者 06/21 07:09
33F:推 beaprayguy: 另外要做什麼leader會說啊@@ 06/21 07:11
34F:→ doranako: abc都在對相同檔案編輯,不打架才怪,很怪的邏輯 06/21 09:35
35F:推 NCUking: 我資質太差看不懂這篇 06/21 10:54
36F:→ NCUking: 大師能多開示一點嗎 普渡眾生 06/21 10:54
37F:推 Kazimir: 我覺得還是比A上傳以後被B蓋掉B再被C蓋掉 然後問A怎麼 06/21 11:13
38F:→ Kazimir: 沒修BUG好吧 不管怎麼樣溝通是免不了的 06/21 11:14
39F:推 lulufufu: 這篇文的目的就是要訓練各位獨立思考的能力把 06/21 11:24
40F:推 hung0724: 不管用什麼版控 遇到當做 ftp 用的人都無效啦 06/21 14:00
41F:→ MOONY135: ..掯 被樓上說中了 我就是當FTP用 06/21 14:04
42F:噓 robber1234: 工三小,怕merge錯不會用rebase? 怕各做各的不會定介面 06/21 16:51
43F:→ robler: 供三小 不會用就怪工具 06/21 21:04
44F:噓 sameber520: 你該不會想說三個人要可以不用溝通還能把東西合起來吧 06/22 00:23
45F:→ sameber520: git只能做後面這件事 不然開會開假的 06/22 00:24
46F:噓 twin2: 方向錯誤的獨立思考就只是一個標新立異的白痴而已喔 06/22 00:35
47F:推 Csongs: 請提出可避免人為出錯的流程 06/22 12:50