Re: [問題] 專案很肥大重新build,需要很多時間

作者: dream1124 (全新開始)   2015-07-07 21:31:36
※ 引述《supercygnus (......)》之銘言:
我猜你的問題跟我公司專案一樣,都是老專案而且我們 eclipse 版本還比你舊,
記憶體吃更多,改個設定重啟一次伺服器就要 15 分鐘.... 久到非常消磨士氣...
但原始碼很大一包其實不是錯,大是因為要做很多事情,只要不是大而無用就好。
可是你會說... 專案一大,IDE 就卡,然後開發就慢,該怎麼辦?
仔細想想平常開發功能時,IDE 真的需要載入那麼多原始碼,
不斷建置、不斷完整檢查語法有錯嗎? 很多類別明明就用不到吧?
既然這些類別的原始碼根本用不到,為什麼不先編譯好才引到專案中呢?
因此改善開發效率的可行做法是把系統模組化或是分層,
然後各層各模組分別建置,再用執行套件的管理伺服器統一建檔保管。
等到開發時再用相依性管理工具 (ant ivy, maven, gradle) 宣告
要開發的程式會依賴在哪些函式庫,接著讓相依性管理工具在建置的時候
自動幫你從管理伺服器取回函式庫,這樣就不用每次 IDE 一打開
就必須抱著一堆原始碼,不停的檢查語法有沒有錯、不停的建置,永遠都在卡。
引入相依性管理後,IDE 的反應才會快,你開發速度也會跟著快,
生產效率就會大幅提高。
但殘酷的是,通常若沒有足夠權限的高階主管支持你改革,
要在長時間維護的舊專案引入這種管理專案的機制幾乎是不可能的。
光是上面不寫程式的長官能感受到有這種問題就不容易,
發現了往往也只會介定「IDE 讓開發人員一直等」只是感覺問題而不用優先解決,
卻未必會細想 IDE 很卡其實是專案管理方式不佳的徵兆,這會明顯拖累開發效率。
此外還有太多政治和技術問題,一般基層只能期盼未來新專案能一開始就有好規劃。
其實這也是我最後決定做的事,在因緣際會下我調到另一個研究新開發技術
以推廣到其他部門的團隊,而我也趁這機會以「典範轉移」號召大家引入好的機制。
運氣好的是團隊成員既願意接納我的想法又很可靠,
讓我們能一口氣換掉一堆腐爛的東西,導入好方法。
檔案庫從完全不敷日常使用的極舊版本 CVS 換成 git、
持續整合從公司人員自行開發,服務範圍很小又沒人會維護的伺服器換成 jenkins,
建置從全公司都幾乎沒人想也沒人會維護的 ant 換成 gradle,
相依性開始用 gradle 管理,還引入 Nexus 管理執行檔,工作環境煥然一新。
如果你也想改善開發環境,升級大家的開發方法,就努力研究新技術新方法,
找機會革新吧,不然這種開發方法落後又沒有主管在意的舊專案,
還真的建議快逃,留下來往往是消磨鬥志罷了....
作者: felixgugu (felix)   2015-07-07 23:18:00
是很理想,但大多數時候太難了.....
作者: qrtt1 (有些事,有時候。。。)   2015-07-07 23:19:00
真是個好消息,寧靜革命終於開花結果了@felixgugu 不要灰心,只需要持續做 http://bit.ly/1MbnR6osoft_job 相關的系列「前輩拒絕導入任何其他工具」也蠻值得去回顧一下當下的困境與版友的建議的.
作者: yfr   2015-07-07 23:49:00
哈,我想起那時候那篇文章了,你真是不簡單可以用一些先進的工具來簡化工作流程真是一件很棒的事我好奇的是為什麼選擇gradle而不是maven呢 ?
作者: qrtt1 (有些事,有時候。。。)   2015-07-08 09:09:00
所以,你是換了公司嗎 xd?
作者: andymai (人生只有一次)   2015-07-08 09:38:00
推,上面和同事支持很重要,不然會心力交瘁,到最後一樣只好選擇離開
作者: qrtt1 (有些事,有時候。。。)   2015-07-08 10:01:00
其實只要同事不反對,沒有明顯抗拒就蠻容易成事了。因為導入新方法會有顯著的改善困境,享受過就「回不去了」
作者: realmeat (真肉)   2015-07-08 11:46:00
從一個makefile換成另一個makefile.. 世界會變的更美好?

Links booklink

Contact Us: admin [ a t ] ucptt.com