两个python工程ProjectA和ProjectB,正常方式是将ProjectB打包成一个模块然后给ProjectA引用,但是现在ProjectB修改非常频繁无法稳定,如何直接在ProjectA中引用ProjectB呢?环境是windows+pycharm
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
看起來更多的是專案協作的問題,我建議1) 針對介面做編程,這樣很大程度上保證你們專案的整體推進。原理也比較簡單,就是ProjectB先不要去做具體的實現,而是跟ProjectA兩個開發團隊先定好哪些接口是穩定的,哪些是不穩定的,不穩定的API要預留出一個可以供後期的實現,這樣即使ProjectB更新再頻繁,也不會影響到ProjectA的編碼,如果因為設計人員、架構師的能力問題無法充分考慮後續的所有需求,也要盡可能的在頭腦風暴的前提下讓ProjectB能提供盡可能完備的介面。 2) 不太清楚你們公司內部專案管理規範如何,例如是否有針對ProjectB做足夠的單元測試,保證與ProjectA集成時可以順利集成,如果之前沒有的話,建議你們在關鍵的節點上,還是對ProjectB要做一些基本的單元測試,無數慘痛的教訓告訴我們,對於Python這樣的弱類型語言,沒有足夠的UT是一定會有問題的。 3) 1&2都解決的情況下,你們可以任意選擇ProjectB的發布方式,用rsync同步也好,docker發布也好,svn update也好,每次發布完了,可以做一個集成測試,看看代碼質量。 4) 如果ProjectB目前規劃很不好,沒有穩定的API, 經常會變動,如果這已經是一個既定事實的話,建議你們對ProjectB接口做一個封裝,提供針對邏輯的封裝,也就是在ProjectB和ProjectA之間加入一個中間層,ProjectA不要直接去操作ProjectB,而是操作中間層,來確保A/B的程式碼穩定性
打包成模組安裝時直接安裝到專案路徑,這樣修改B專案時不用再安裝
在ProjectA 的環境中以開發模式安裝ProjectB,以後直接更新ProjectB的程式碼就可以,不用重新安裝一遍。
git clone ProjectB python ProjectB/setup.py develop # 开发模式安装
看起來更多的是專案協作的問題,我建議
1) 針對介面做編程,這樣很大程度上保證你們專案的整體推進。原理也比較簡單,就是ProjectB先不要去做具體的實現,而是跟ProjectA兩個開發團隊先定好哪些接口是穩定的,哪些是不穩定的,不穩定的API要預留出一個可以供後期的實現,這樣即使ProjectB更新再頻繁,也不會影響到ProjectA的編碼,如果因為設計人員、架構師的能力問題無法充分考慮後續的所有需求,也要盡可能的在頭腦風暴的前提下讓ProjectB能提供盡可能完備的介面。
2) 不太清楚你們公司內部專案管理規範如何,例如是否有針對ProjectB做足夠的單元測試,保證與ProjectA集成時可以順利集成,如果之前沒有的話,建議你們在關鍵的節點上,還是對ProjectB要做一些基本的單元測試,無數慘痛的教訓告訴我們,對於Python這樣的弱類型語言,沒有足夠的UT是一定會有問題的。
3) 1&2都解決的情況下,你們可以任意選擇ProjectB的發布方式,用rsync同步也好,docker發布也好,svn update也好,每次發布完了,可以做一個集成測試,看看代碼質量。
4) 如果ProjectB目前規劃很不好,沒有穩定的API, 經常會變動,如果這已經是一個既定事實的話,建議你們對ProjectB接口做一個封裝,提供針對邏輯的封裝,也就是在ProjectB和ProjectA之間加入一個中間層,ProjectA不要直接去操作ProjectB,而是操作中間層,來確保A/B的程式碼穩定性
打包成模組安裝時直接安裝到專案路徑,這樣修改B專案時不用再安裝
在ProjectA 的環境中以開發模式安裝ProjectB,以後直接更新ProjectB的程式碼就可以,不用重新安裝一遍。