中文编程是否可行之验证——(一)
之前看到有这样的一个观点,一个好的程序员可以编写出自解释的代码,也就是说,如果变量、函数名等等名称都能够起的非常准确,并且结构上充分重构,没有过长的函数和过程,所有的功能都有很小的函数和过程组成,那么,即使不写注释,仅仅是代码也能够充分说明程序的功能是什么。
然而,对于我们这些母语并非是英语的程序员来说,想要达到那一点非常之困难,如何确定变量、函数、类等等的名称,使其能够准确表达业务上的意义,还是有很大难度的。如果用英文的话,很可能就会在字典中查出一个词,然后就使用,但是对于专业的术语来说,很可能是不准确的。也有人说可以使用汉语拼音来起名字,而中文的一音多字和一字多音的问题会让人丈二和尚摸不着头脑。
由此,我想到了很多人曾经讨论过的问题——中文编程,也就说,对于程序中的类、变量、过程、函数等等的名称使用中文,这样的程序对于本国的程序员来说,理解起来再容易不过了,也就可以省去很多的注释,甚至于能够写出不少自解释的代码。
然而,当前的各种语言是否能够对中文有良好的支持呢?我们使用中文编写的代码是否会出现各种问题呢?实践是检验真理的唯一标准,不做不知道。
针对对中文的支持问题,我想在以下三个环境中测试:
1、Oracle,使用工具:pl/sql developer
2、C#,使用工具VS 2005
3、Java,使用工具myEclipse
这样不仅测试到语言是否支持中文,而且可以看出我们经常使用的开发环境对中文的支持如何。毕竟是“工欲善其事必先利其器”。
首先是针对Oracle的测试:
1、建立表名、字段名均为中文的表:
create table 人
(
编号 NUMBER(4) not null,
姓名 VARCHAR2(50),
出生日期 DATE
);
2、向其中插入几条数据
编号 姓名 出生日期
1 1 张三 2010-2-1
2 2 李四 2019-3-4
3、编写了一个函数:
create or replace function 取得姓(姓名 in varchar2) return varchar2 is
Result varchar2(50);
begin
select substr(姓名 ,1 ,1)
into result
from dual;
return(Result);
end 取得姓;
4、执行带有函数的查询:
select 人的别名.编号
,人的别名.姓名
,取得姓(人的别名.姓名) as 姓
from 人 人的别名
查询结果为:
编号 姓名 姓
1 1 张三 张
2 2 李四 李
从上面看来,对于数据库开发,使用中文名没有太大的问题。
其实之前在做对日项目的时候,就有这样的一个大型的项目,其中所有的数据库相关内容的名称都是用的是日文字,而系统的运行也没有什么问题。
……待续。
作者:侯伯薇@大连
出处:http://www.cnblogs.com/houbowei/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。