@
aLIEz09 我开始还以为是用中文命名变量,原来是直接使用用了中文的 string literal 来定义变量,而没有使用常量或外部资源文件。
首先需要更正一点的是,你的问题是“没有将全部字符串定义放到外部资源文件中”,与中文无关,string literal 中使用中文和英文没任何区别。
然后,“字符串定义全部放到外部资源文件”在十年前是标准规范,在现在属于过度预设计。如果你的产品现在没有国际化需要(即使一年后有可能变成国际化),那么把字符串放在外部资源文件中定义,除了脱裤子放屁外,还极大的影响代码的可读性;况且在国际化过程中一次性重构的成本,要远小于你一开始就设计资源文件的成本。
就你举得这个例子来说,```xingming.setText(“张三”)```,换成 ```xingming.setText(I18n.get("exampleName.first"))``` 或者 ```Constant.EXAMPLE_NAME_FIRST```,可读性大降,并且还需要有专人去维护资源 Key 或常量名的命名规范(否则资源文件会变成不分类的垃圾桶)从而导致成本大涨,这在敏捷开发中就是灾难。
最后,拼音命名罪不可赦。拼音命名已经不是规范问题了,而是规则问题了——拼音并不能完整地表达它所代表地汉字。