中文编程是否可行之验证——(一)

之前看到有这样的一个观点,一个好的程序员可以编写出自解释的代码,也就是说,如果变量、函数名等等名称都能够起的非常准确,并且结构上充分重构,没有过长的函数和过程,所有的功能都有很小的函数和过程组成,那么,即使不写注释,仅仅是代码也能够充分说明程序的功能是什么。

然而,对于我们这些母语并非是英语的程序员来说,想要达到那一点非常之困难,如何确定变量、函数、类等等的名称,使其能够准确表达业务上的意义,还是有很大难度的。如果用英文的话,很可能就会在字典中查出一个词,然后就使用,但是对于专业的术语来说,很可能是不准确的。也有人说可以使用汉语拼音来起名字,而中文的一音多字和一字多音的问题会让人丈二和尚摸不着头脑。

由此,我想到了很多人曾经讨论过的问题——中文编程,也就说,对于程序中的类、变量、过程、函数等等的名称使用中文,这样的程序对于本国的程序员来说,理解起来再容易不过了,也就可以省去很多的注释,甚至于能够写出不少自解释的代码。

然而,当前的各种语言是否能够对中文有良好的支持呢?我们使用中文编写的代码是否会出现各种问题呢?实践是检验真理的唯一标准,不做不知道。

针对对中文的支持问题,我想在以下三个环境中测试:

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 李四 

    编号 姓名

1 1 张三

2 2 李四

 

从上面看来,对于数据库开发,使用中文名没有太大的问题。

其实之前在做对日项目的时候,就有这样的一个大型的项目,其中所有的数据库相关内容的名称都是用的是日文字,而系统的运行也没有什么问题。

……待续。

 

posted @ 2010-01-08 14:51  侯伯薇  阅读(2295)  评论(46编辑  收藏  举报