2012-07-06 69 views
3

當下面的編譯器優化安全/合理的補充:GWT編譯器優化:他們什麼時候安全?

-XdisableClassMetaData 
-XdisableCastChecking 
compiler.stackMode 
compiler.enum.obfuscate.names 
CssResource.obfuscationPrefix 
CompilerParameters.gwt.xml.* 

做一些纔有意義在開發(或PROD)模式?做任何目前的安全漏洞?

回答

4

-XdisableClassMetaData - 當您不使用Object.getClass()方法時安全。

-XdisableCastChecking - 我個人從來不會使用這個。但是,如果你根本不使用多態,你可以試試。

compiler.stackMode - 「條帶」 爲PROD和 「仿真」 用於開發

compiler.enum.obfuscate.names - 建議在PROD使用。

CssResource.obfuscationPrefix - 使用時,你需要混淆部分CSS

對於最後一個,你可以找到一些文檔here

只有compiler.enum.obfuscate.names影響安全漏洞(因此它設置爲true在prod中)。 希望它有幫助。

+3

我在產品中使用'XdisableCastChecking',因爲無論如何都應該在開發時檢測到'ClassCastException'(它們不是某種程度上是_code smell_的標誌嗎?) – 2012-07-06 21:50:43

+1

我認爲你的意思很合理,但只適用於小型項目。即使您有很好的測試代碼覆蓋率,也無法在開發中的中大型系統中嘗試每個可能的執行路徑。在prod中有類轉換異常要比沒有類轉換檢查時會引發的奇怪javascript錯誤要好得多,因爲對於第一類錯誤,找出原因要容易得多。 – 2012-07-06 22:34:44

+1

我的意見是,風險很小,即使是大項目。當然YMMV。 (我幾乎可以肯定Google使用'XdisableCastChecking',爲什麼他們會添加它呢?他們有比我更大的項目,有更大和更批評的用戶羣) – 2012-07-06 22:43:00