我正在維護兩個非常類似的調度器 - 一個用Java和一個用C#。 C#版本最初是使用JLCA創建的,然後通過手動修改。 Java版本在過去幾個星期裏被其他人修改得非常顯着(所以我必須追查他的改動),我想知道是否使用互聯網上可用的工具之一重新轉換它,或者是否嘗試每當需要時手動進行更改。這個問題對我來說可能會頻繁出現 - 是否有某種方法可以用兩種不同的語言來維護軟件版本,並儘可能無痛地讓它們保持一致?建議將不勝感激!Java和C並行開發#
回答
我已經使用過的,現成的代碼轉換器保持在兩種不同的語言(項目注意,我沒有說轉換非常糟糕的經歷,我完全相信,這樣做的初始轉換/清理使用自動化工具可能有可取之處。)
There are people who support multiple platforms regularly,and they love to point out the pains of language selection without their own in-house tools,但他們傾向於使用專門的語言或按照慣例約束自己的一套語言結構,讓他們中間的編譯器能爲他們做繁重的工作。
缺乏一些很酷的專有交叉編譯器,以及隨之而來的代碼慣例,我會親自去做這項工作。這個技巧將嚴格監控checkins,並確保在兩個地方都檢查功能。根據問題的嚴重程度,您可以創建一個源代碼控制過程(可以從壓迫和痛苦到相對較輕的重量),這可以幫助保證這一點(例如,您可以要求開發人員僅檢查分支的更改直到端口在兩個平臺上完成,然後將兩者合併。)
我不確定這是否適合您,但您可能需要考慮使用Java進行開發,然後使用IKVM將jar文件轉換爲.NET程序集。我已經使用了幾年,但當時它工作得很好。
我會親自維護這些差異。這意味着,如果在某些時候,在.NET中做一些不同的事情更有意義(這很可能是這種情況,爲了使代碼習慣用法),您不需要手動重新應用該更改。
另一個選擇是做原始Java代碼的轉換,複製它,然後做修改後的Java代碼的轉換。對兩次轉換的結果進行區分,並將該更改應用於現有代碼,以便簡單地完成此操作。這可以幫助您避免在執行「gruntwork」轉換時保留現有代碼。
你有沒有考慮過J#?
根據您的需要和配置,您可以交叉編譯Java代碼和J#代碼。您可能需要將通用部分重構爲可在任一環境中編譯的獨立模塊(J#停留在Java 1.2中,只有1.3個類)。請記住,J#是舊的,在VS 2008中不再可用(您需要Visual Studio 2005的舊版本),但根據您的項目複雜程度,這可能是一個可行的解決方案。
如果它們非常相似,那麼在維護這兩個版本時是否有真正的優勢?也許你可以把他們其中的一個...
- 1. 並行開發Java EE中的痛苦
- 2. 使用Java和XUL進行UI開發
- 3. 的Java教程C#開發
- 4. Java併發和循環任務執行
- 5. 並行化(Java 8)與併發(Java 7)
- 6. Python,Java,C#和並行算法
- 7. 開發和維護在Java和C#中開發的應用程序庫
- 8. ASP.NET MVC並行開發
- 9. Git中的並行開發
- 10. 並行開發SSIS項目
- 11. java的開發和調用
- 12. Java併發任務執行
- 13. 併發執行Java 8
- 14. Java socket並行發送
- 15. Java併發性,流行爲
- 16. 並行和併發術語
- 17. 並行線程和併發
- 18. 並行和併發編程
- 19. Java併發和範圍
- 20. Java併發和多線程
- 21. WP8遊戲開發和C#
- 22. uwp directx和c#開發
- 23. 在Java 7中實現併發性和並行性
- 24. 迭代通過每個插件在XML聲明並執行java和android開發
- 25. Java和C++ 11揮發性
- 26. C - 僞shell和併發
- 27. 簡單的併發Java線程 - 捕獲開始和結束
- 28. 適用於C#開發人員的Java
- 29. 使用C++的Java開發者
- 30. 使用C開發Android和IOS C