推 yyc1217:gradle或maven吧;如果專案太大了要不要拆成幾個子專案 01/23 22:33
→ yyc1217:也許可以將CVS改成svn或git,後者可以隨你開branch 01/23 22:34
使用 gradle 或 maven 然後換一種 vcs 都是我想過的方法,
但只知道有什麼工具可以用應該還不太夠....
希望可以拋磚引玉,了解大家是怎麼運用這些工具管理專案的,謝謝大家
推 bxxl:前公司做4G手機的,專案也很大,c++ VS2010重新build要20分 01/23 22:48
→ bxxl:不過同步code從來沒有問題啊 01/23 22:48
說幾分鐘不是要強調它多大或怎麼樣的,只是想說給個數字也許會方便大家了解大小
重點是想請問大家用什麼方法,在效能短時間難以大幅提升的桌電
開發並管理專案的依賴,如此而已
推 sing10407:分子專案,子專案與專案間耦合性要低 01/23 23:09
推 bxxl:應該可以設定要同步哪些目錄, 那就維護這個設定檔就好了? 01/23 23:25
→ StubbornLin:把大系統拆成可以獨立運行的子系統 01/23 23:27
→ StubbornLin:以 "服務" 的概念去封裝 盡量不要全擠在一個系統裡 01/23 23:27
→ StubbornLin:服務和服務之間可以用 RabbitMQ ZeroMQ ActiveMQ之類 01/23 23:28
→ StubbornLin:的 或是 RPC的方式進行溝通 01/23 23:28
→ StubbornLin:一些功能盡量看能不能用 "模組" "外卦" 之類的形式 01/23 23:31
→ StubbornLin:實現 01/23 23:32
→ realmeat:看不出你的問題在那邊, 自己動手寫build 流程可以解吧 01/23 23:35
→ realmeat:我只覺得你沒有處在能解決這問題的位置上 01/23 23:46
推 sedgewick:這時候你需要的是: 一杯好咖啡、悠閒的心情還有聊天對象 01/23 23:48
真的!! 有杯好咖啡加閒人在旁聊天, 電腦要lag要慢也無所謂了
→ alan3100:如果專案大成這樣沒用maven也很怪 01/24 00:11
→ alan3100:差異檔要自己產生也很怪 直接從change log抓不就好了 01/24 00:16
→ alan3100:每次花時間填表不如去找差異檔寫個程式把表自動建出來 01/24 00:19
想請問這邊 change log 是什麼意思? CVS 可以自動比對並記錄 commit 內容清單嗎?
我對版控系統的了解還很有限, 只會基本操作而已...
推 sedgewick:然後為了自動化的程式再填新表格, 加上 debug... 科科. 01/24 00:36
→ sedgewick:話說 CVS 我是沒概念, 但是以 git 來說, 不能過度自動化 01/24 00:37
→ sedgewick:因為那樣會失去版本控制的意義, 只剩下備份功能而已 01/24 00:38
→ alan3100:team>XXXlog 至少有修改的檔案列表 01/24 00:58
→ alan3100:佈版前後差異找不到內建功能的話就開2資料夾用額外工具比 01/24 01:07
→ alan3100:例如winmerge 至少讓你填表省事一點 01/24 01:08
推 sedgewick:其實專案分割牽扯到部門利益分配, 不夠力的還動不了它 01/24 01:29
→ sedgewick:我倒覺得可以努力建議一下拆成 staged build... 01/24 01:29
→ sedgewick:當然切 stage 的壞處是會干擾自動化, 不過這個比較可行 01/24 01:31
→ sedgewick:相關的 build rule 要改就是了, 也是大工程... 01/24 01:31
→ sedgewick:不過比較不會卡在某些「包裝成技術問題」的分贓環節 01/24 01:32
請問 stage build 大概是什麼樣的做法呢?
→ TonyQ:我之前在一個一兩百人 CODE 也是分好幾個 team 寫的專案裡, 01/24 02:16
→ TonyQ:他們也是切 project 上 maven,大家只載有需要用到的 source 01/24 02:16
→ TonyQ:不需要的就直接用 jar include 就好了~ 01/24 02:16
→ TonyQ:而且我覺得問題是 CVS 吧,團隊一大光是解 lock 就解死人了 01/24 02:17
→ qrtt1:真心討厭 CVS 01/24 08:01
推 CRPKT:一般 dependency 可以翻成相依性 01/24 09:11
推 CRPKT:對 mavan 或 gradle 不熟的話可以自己先玩玩 01/24 09:14
→ dou0228:用 CVS 就可以準備回家了 01/24 09:55
推 Blueshiva:用CVS就回家的話,那用TFS要去哪?(茶) 01/24 11:56
→ TonyQ:TFS 我只當 issue tracker 用...-_- 我超賭懶用他當版本控制 01/24 11:57
→ TonyQ:用過一次,我只有想殺人可言。後來我跑去用 git-tfs,但還是 01/24 11:58
→ TonyQ:很想殺人。 01/24 11:58
推 lovdkkkk:用 CVS 是人要去配合它, 拆好檔分好工幾乎不會遇到 lock 01/24 12:20
→ lovdkkkk:以此為前提的話 lock 反而可以當成是否分工有問題的警訊 01/24 12:24
→ lovdkkkk:工具百百種, 用得順手就是好工具 01/24 12:24
推 liddle:來吧!git就是為了解決這類問題而生.別彷徨了 01/24 13:20
→ liddle:這邊有熱騰騰的饅頭... 喔 是熱騰騰的brach管理 01/24 13:20
→ liddle:從個人的專業小實驗到鉅型專案的管理都可以搞定 01/24 13:21
推 sedgewick:哦, staged 就是把一次蹦出最終的結果拆成幾個步驟啊 01/24 23:50
→ sedgewick:譬如我用 make 好了, 會把 make all 拆開... 01/24 23:50
→ sedgewick:變成 make stage1/stage2/all 這三個步驟. 01/24 23:51
→ sedgewick:笨歸笨, 還蠻有效的... 科科. 01/24 23:51
公司每天定時 build 好像也是這樣做,但是有異常好像都會影響考績,
這做法目前我看來是對系統長期的穩定有幫助,可是對基層工程師的更新和同步
過程沒助益,自己負責更新的東西一多,等到要自動 build 的時候都心驚膽跳的。
推 sedgewick:那也是很奇怪, 你們的 auto build 都已經拆開了... 01/25 00:11
→ sedgewick:那你們對應到的 VCS 也有拆開的方法嗎? 01/25 00:11
→ sedgewick:就是 stage1 的東西在哪個 branch, stage2 的在哪裡... 01/25 00:11
→ sedgewick:諸如此類的... 沒這個對應的話你還是會一做一大包啊. 01/25 00:12
→ sedgewick:也不一定是 branch, 有可能是教你 merge source 的順序 01/25 00:15
哦哦~ 不好意思剛才回文好像沒完全理解你 stage 的意思
那這樣我們的 auto build 應該不算有分 stage
※ 編輯: dream1124 來自: 118.167.99.26 (01/25 00:21)
推 sedgewick:那那那就建議看看吧... 01/25 00:25
→ sedgewick:如果你的運氣很好, 遇上規劃階段有 software stacks 01/25 00:25
→ sedgewick:或者是 API 有拆成好幾個 layer... 那就有機會. 01/25 00:26
→ sedgewick:沒有的話................那還是換電腦吧. 01/25 00:27
→ sedgewick:不過就算有 stack/layer design, 照你填單的數量來看... 01/25 00:28
→ sedgewick:我是覺得大概沒人會想去碰這塊... 科科. 01/25 00:29