Delphi Spring Framework编程规范(草稿)V0.1 (更新日期:2009-10-28)
1. 前言
为保证Delphi Spring Framework项目代码的可读性和质量,特建立本编程规范。本规范仅适用于Delphi Spring Framework各项目成员,大家如有任何意见和建议,请给我留言。
2. 所有项目文件、单元文件和示例程序必须包含下列版权声明:
{***************************************************************************}
{ }
{ Delphi Spring Framework }
{ }
{ Copyright (C) 2009-2010 Delphi Spring Framework }
{ }
{ http://delphi-spring-framework.googlecode.com }
{ }
{***************************************************************************}
{ }
{ Licensed under the Apache License, Version 2.0 (the "License"); }
{ you may not use this file except in compliance with the License. }
{ You may obtain a copy of the License at }
{ }
{ http://www.apache.org/licenses/LICENSE-2.0 }
{ }
{ Unless required by applicable law or agreed to in writing, software }
{ distributed under the License is distributed on an "AS IS" BASIS, }
{ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. }
{ See the License for the specific language governing permissions and }
{ limitations under the License. }
{ }
{***************************************************************************}
3. 命名规范
4. 缩进及换行
使用标准Pascal的缩进和换行方式,如:
for i := 0 to list.Count-1 do
begin
if condition then
begin
DoSomething;
end
else
begin
//...
end;
case driveType of
dtNetwork:
begin
//...
end;
else
begin
//...
end;
end;
end;
5. 使用Xml的风格注释
///
/// Provides version information for a physical file on disk.
///
///
/// Remarks
///
TFileVersionInfo = record
//...
end;
注意:为便于各地开发者阅读和使用代码,请使用英文。
6. 必须检查全局函数和所有公开的方法的参数合法性
Spring.System.TArgument类提供了很多静态方法用来检查参数,如CheckTrue,CheckFalse,CheckRange等。(可使用代码模板减少输入)
7. 全局变量、全局函数以及公开的静态类方法尽可能是线程安全的
如不支持线程安全必须注明。
8. 编写的代码必须支持Unicode
注意:RTL中有些函数并不支持Unicode,如:
SysUtils.UpperCase | 仅支持标准7位Ascii码中’a’-‘z’的大小写转换,应使用Character.TCharacter类的ToUpper和ToLower方法 |
SysUtils.LowerCase |
|
SysUtils.BytesOf | 应使用WideBytesOf |
SysUtils.StringOf | 应使用WideStringOf |
9. 除非特别需求,否则永远不要把下列类型的文件上传到svn服务器:
10. 其他建议
作者:左保权 (Paul)