最近我与Empire-db取得联系。项目文件。声明他们正在使用“string-free coding”,旨在尽可能使用较少的常量字符串以避免拼写错误并使用编译器的力量。
我一直是这个原则的忠实粉丝,因为我认为Java是一种形式语言,它可以表达像属性或xml这样的配置,并通过检查编译器来提供额外的价值。也许在运行时,没有重新编译就没有更改的可能性,但这取决于每种情况。
您现在对这个术语/原则/设计模式有更多的参考或阅读吗?
答案 0 :(得分:6)
这与幻数 vs 常数相同。使用常量可提高可维护性和可读性。常量还封装了变化:自动传播常量值的变化,对于无字符串编码,拼写错误的常量是编译时错误。
答案 1 :(得分:4)
我对Java知之甚少,但这个成语在现代C ++中很有名。例如,Xpressive是一个正则表达式库,允许程序员在C ++中编写正则表达式 ,并进行编译时检查。 Spirit是另一个例子,您可以在C ++中编写EBNF ,编译器也可以为您检查语法:)
我认为您正在寻找的术语是嵌入式域特定语言。
答案 2 :(得分:1)
从未听过特定的表达方式,但Effective Java建议“避免使用其他类型更合适的字符串”(第50项)。
答案 3 :(得分:0)
着名的Pragmatic Programmer提到了这个原则,特别是与元数据处理有关。其中一个提示是:
将抽象放入代码,详细信息 元数据
一般情况的程序, 把细节放在外面 编译代码库。
无论如何,值得一读。
答案 4 :(得分:0)
关于empire-db,它类似于SQL查询的“类型安全”。