文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:
cmd_save_player_info_class.cc
my_use_full_class.cc
定义类的文件名一般是成对出现,如:
foo_bar.h
foo_bar.cc
若是类中含大量内联函数,我们还可使用-ini.h
文件,使之文件内容更加清晰,于是又如:
url_table.h
url_table.cc
url-table-ini.h
类型命名每个单词首字母大写,不含下划线,以名词形式。比如:
MyPalyerManager
这对于所有类型命名一样,类结构体,枚举,类定义都是如此,比如:
MyExcitingEnum
变量名一律小写,单词用下划线相连,例如:
int player_id;
string table_name;
特殊的是类成员变量,后跟下划线区别普通变量,比如:
player_name_
player_id_
全局变量则以 g_
开头,比如 :
g_system_time
当然结构体成员变量还是和普通变量一样,比如:
string name;
int num_entries;
k
后面跟大写字母开头的单词,比如:
const int kDaysInAWeek=7;
const string kCompanyName=”Tecent”;
常规函数每个单词首字母大写,使用命令式语气,比如:
OpenFile()
CheckFileName()
而存取函数或短小的内联函数使用小写加下划线,且与访问变量相吻合,比如
set_num_errors()
class Player{
public:
void set_player_id(const int player_id){return player_id_=player_id;}
int get_player_id() const{return player-id_;}
private:
int palyer_id_;
};
命名空间全小写,并基于项目名称和目录结构,比如
google_awesome_project
枚举类名属于类型名,按类命名,枚举值全大写加下划线,比如:
ENUM_NAME
如果你一定要用到宏,全大写加下划线,比如:
define PI_ROUND 3.0
com.fxy.dao
如:
StudentAnswer.java
如:
UserInterface.java
UserInterfaceImpl.java
实体对象+Interface+Dao
UserInterfaceDao
b、实现类:实体对象+Interface+Impl+Dao
如:用户对象实现类:
UserInterfaceImplDao
模块+Interface+Service
UserMsgInterfaceServiec
b、实现类:模块+Interface+Impl+Service
如:用户管理实现类:
UserMsgInterfaceImplServiec
模块+操作+Action
用户模块User+删除操作Delete+Action = UserDeleteAction
变量命名采用基本结构为typeVariableName
,使用3字符前缀来表示数据类型。
如:定义一个整形变量:intDocCount
,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。
在一段函数中不使用同一个变量表示前后意义不同的两个数值。
除非是在循环中,否则一般不推荐使用单个字母作为变量名,i、j、k等只作为小型循环的循环索引变量。
避免用Flag
来命名状态变量。
用Is
来命名逻辑变量,如:blnFileIsFound
。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。
如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt
,而在另一些区域中又使用intCount
,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。
参照java驼峰命名法,采用全部大写的形式来书写,对于采用多词合成的变量采用“_”来连接各单词。如:
USER_LIST
一般原则:参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
词性:方法表示一种行为,它代表一种动作,最好是一个动词或者动词词组或者第一个单词为一个动词。
属性方法:以get/set
开头,其后跟字段名称,字段名称首字母大写。如:getUserName()
数据层方法(dao):只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。
服务层方法(service):根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。
Web层(action、controller)方法:最好是贴近web的语言,如register,login,logout
等方法。
Java除了可以采用我们常见的注释方式(//、/* */)之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,以/*开头,而以/结束, Javadoc 注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 推荐使用。
Javadoc注释主要涉及范围:类、属性、方法。
package org.ietf.jgss;
import java.net.InetAddress;
import java.util.Arrays;
/**
* 该类的整体性描述。
*
* @author 作者
* @version 1.0, 05/22/07
* @since 1.0
*/
public class ChannelBinding {
/**
* 对该变量的备注信息
*/
private InetAddress initiator;
/**
* 对该变量的备注信息
*/
private InetAddress acceptor;
/**
* 对该变量的备注信息
*/
private byte[] appData;
/**
* 对该类的构造函数的备注信息。
*
* @param initAddr 对参数的备注。
* @param acceptAddr对参数的备注。
* @param appData对参数的备注。
*/
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr,
byte[] appData) {
initiator = initAddr;
acceptor = acceptAddr;
if (appData != null) {
this.appData = new byte[appData.length];
java.lang.System.arraycopy(appData, 0, this.appData, 0,
appData.length);
}
}
/**
* 对该类的具体一函数的备注信息
*
* @param obj 参数的备注信息
* @return 返回值的备注信息
*/
public boolean equals(Object obj) {
if (this == obj)
return true;
if (! (obj instanceof ChannelBinding))
return false;
ChannelBinding cb = (ChannelBinding) obj;
return Arrays.equals(appData, cb.appData);
}
}
全部采用小写的英文字符和”_ ”组成。
整体采用模块名+操作的形式。如:user_view.jsp
Jsp页面尽可能与action的意思对应,如UserListAction
对应user_list.jsp
使用驼峰式命名。除了用名词外,还可以用形容词命名(体现其功能特性)
规定用动词命名,适合用驼峰式命名,但与类名的最大区别在于,首字母必须小写
规定为名词,其他同“方法”命名方式一样。变量名非常关键,应含有具体意义且易于理解,一般不允许使用单个字母 做变量名。除非一些临时性变量,像在循环中使用到的计数器等。在使用单个字母做变量名时,一般I、J、K用来命名整型变量。
规定全用大写字母表示,如果名字必须用多个单词来表示,那么各单词间用“-“分隔。常量要求必须意义明确,能表达出常量的含义。
转载的版权声明:
——————————————————————————
作者:程序爱好者
链接:https://www.jianshu.com/p/f1a9e2dea3ac
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
———————————————————————————
版权声明:本文为CSDN博主「FromNowOnUntilTheEnd」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36688143/article/details/79428732
——————————————————————————