2009-09-29 56 views
13

最近我與Empire-db取得了聯繫。項目文檔。表示他們正在使用「string-free coding」,旨在儘可能使用較少的常量字符串以避免拼寫錯誤並使用編譯器的力量。「無字符串編碼」是一個通用術語嗎?

我總是這個原則的忠實粉絲,因爲我覺得作爲Java是一個正式的語言可能是expresive像屬性或XML配置並提供通過檢查通編譯器額外的價值。也許在運行時不需要重新編譯就可以更改,但這取決於每種情況。

你這個學期/原理/設計模式,現在更多的參考或讀數?

+1

感謝您指出Empire DB。這是一個值得進一步調查的工具。我對Hibernate的分析特別震驚:http://incubator.apache.org/empire-db/empiredb/hibernate.htm – APC 2009-09-29 09:28:50

+0

這是一篇非常有趣的文章。謝謝@APC。 – 2009-09-29 12:53:21

+0

雖然這是一個很好的原則,但一如既往,首先使用常識。毫無意義地遵循良好的設計實踐並帶有良好的意圖也會導致錯誤的代碼,請查看http://thedailywtf.com/Articles/It-Gets-Worse-Each-Year.aspx和http://thedailywtf.com/Articles/ Soft_Coding.aspx – 2009-09-30 10:18:00

回答

4

雖然我從來沒有聽說過那個特定的術語,我知道你的意思,這是有道理的。

4

我知之甚少的Java,但這個成語在現代C++聞名。例如,Xpressive是一個正則表達式庫,允許程序員在C++中編寫正則表達式,並進行編譯時檢查。 Spirit是另一個例子,在那裏你可以用C++寫 EBNF ,編譯器還可以檢查語法您:)

我覺得你正在尋找的是嵌入式領域特定語言

+0

Qt也有一些相關的東西,但那是因爲翻譯在那裏的工作方式。基本上你用「tr(...)封裝每個用戶可見的字符串)「,並且該應用程序在運行時動態查找它,只有在找不到合適的翻譯時才使用給定的字符串。 – 2009-09-29 08:45:38

1

從未聽過具體表達,但Effective Java建議「避免其他類型更合適的字符串」(條款50)。

6

這與的幻數 vs 常數相同。使用常量提高了可維護性和可讀性。常量還封裝了更改:常量值的更改會自動傳播,而對於無字符串編碼,拼寫錯誤的常量是編譯時錯誤。

0

著名Pragmatic Programmer提到特別是在元數據處理連接這一原則。一個關於這個的提示是:在 元

方案一般情況下,

把抽象的代碼,詳細信息,並把具體的 編譯代碼基地外。

這是值得無論如何讀的書。

0

關於empire-db,它就像SQL查詢的「類型安全性」。

相關問題