命名规范
在编写代码的过程中,用良好的命名对于后期维护十分有利,养成良好的命名习惯尤为重要.
常见命名
- camel case
驼峰命名
- pascal case
帕斯卡命名
- snake case
蛇形命名
匈牙利命名法
驼峰命名
骆驼式命名法(Camel-Case)又称驼峰式命名法,正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。
- 大小写字母混写
- 单词首字母小写
帕斯卡命名
帕斯卡命名法指当变量名和函式名称是由二个或二个以上单词连结在一起,每个单词首字母大写。而构成的唯一识别字时,用以增加变量和函式的可读性。
- 大小写字母混写
- 单词首字母大写
蛇形命名
就如他的名字所说,像蛇一样弯曲.
蛇形法是全由小写字母和下划线组成,在两个单词之间用下滑线连接即可,
- 小写字母
- 下划线
匈牙利命名法
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。
- 变量名=属性+类型+对象描述
前缀 | 说明 | 例子 |
---|---|---|
null | 局部变量 | a |
m_ | 类成员变量 | int m_width |
ms_ | 类静态成员变量 | static int ms_intValue |
s_ | 静态变量 | static int s_intValue |
g_ | 外部全局变量 | int g_howManyPeople |
sg_ | 静态全局变量 | static int sg_value |
gg_ | 进程间共享全局变量 |
命名示例
C/C++
驼峰命名法
#include <iostream>
#include <string>
int main(void)
{
// 这里用小驼峰命名
string userName;
userName="zhangsan";
std::cout<<userName<<std::endl;
return 0;
}
帕斯卡命名法
#include <iostream>
#include <string>
// 这里用帕斯卡(大驼峰)命名法
string GetUserName()
{
return "zhangsan";
}
int main(void)
{
std::cout <<GetUserName()<<std::endl;
return 0;
}
蛇形命名法
#include <iostream>
#include <string>
int main(void)
{
// 这里用 蛇形命名法
string user_name="zhangsan";
std::cout<<user_name<<std::endl;
return 0;
}
JAVA
驼峰命名法
public class test {
public static void main(String [] args){
String userName="zhangsan";
System.out.println(userName);
}
}
帕斯卡命名
public class test {
public static void main(String [] args){
String UserName="zhangsan";
System.out.println(UserName);
}
}
蛇形命名法
public class test {
public static void main(String [] args){
String user_name="zhangsan";
System.out.println(user_name);
}
}
Python
驼峰命名法
-*- coding:utf-8 -*-
def main():
userName="zhangsan"
print(userName)
if __name__=="__main__":
main()
帕斯卡命名法
-*- coding:utf-8 -*-
def main():
UserName="zhangsan"
print(UserName)
if __name__=="__main__":
main()
蛇形命名法
-*- coding:utf-8 -*-
def main():
user_name="zhangsan"
print(user_name)
if __name__=="__main__":
main()
个人建议
- C/C++
- 类名
帕斯卡命名法
- 变量
匈牙利命名法
- 函数/方法
帕斯卡命名法
- 类名
- Java/C#
- 类名
帕斯卡命名法
- 变量
小驼峰命名法
- 方法
小驼峰命名法
- 类名
- Python
- 类名
帕斯卡命名法
- 变量
小驼峰命名法
- 函数/方法
蛇形命名法
- 类名
代码片段
C++
#pragma once
#include <iostream>
#include <string>
class Rect
{
public:
Rect() = default;
explicit Rect(int, int);
~Rect();
void SetValue(int, int);
void GetValue(int&, int&);
int GetArea();
private:
int m_width;
int m_height;
};
Rect::Rect(int width, int height)
{
this->m_width = width;
this->m_height = height;
}
void Rect::SetValue(int width, int height)
{
this->m_width = width;
this->m_height = height;
}
int Rect::GetArea()
{
return this->m_width * this->m_height;
}
void Rect::GetValue(int& width, int& height)
{
width = this->m_width;
height = this->m_height;
}
JAVA
package domain;
public class Person {
private String name;
private int age;
public String a;
protected String b;
String c;
private String d;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", a='" + a + '\'' +
", b='" + b + '\'' +
", c='" + c + '\'' +
", d='" + d + '\'' +
'}';
}
}
Python
#!/usr/bin/python3
# -*- coding:utf-8 -*-
from mysql import MySQL
from flask import json, Flask,request,render_template
import time
# 接口整合
class Helper:
def course_info(self, group, week):
self.dict_day = {
'1': '星期一',
'2': '星期二',
'3': '星期三',
'4': '星期四',
'5': '星期五',
'6':'星期六',
'7':'星期日'
}
# 自动获取
if week == 0:
self.week =self.course_auto_week()
# 有效范围
elif week > 0 and week < 6:
self.week = self.dict_day[str(week)]
# 错误输入
else:
self.week =self.course_auto_week()
# 全部获取
if group == 0:
rest = (mysql.SQLexecute("SELECT * FROM classinfo WHERE week='%s';" % self.week))
for i in rest:
i=json.loads(i[1])
yield i['group1']
for i in rest:
i = json.loads(i[1])
yield i['group2']
# 一组
elif group == 1:
rest = (mysql.SQLexecute("SELECT * FROM classinfo WHERE week='%s';" % self.week))
for i in rest:
i = json.loads(i[1])
yield i['group1']
# 二组
else:
rest = (mysql.SQLexecute("SELECT * FROM classinfo WHERE week='%s';" % self.week))
for i in rest:
i = json.loads(i[1])
yield i['group2']
def course_auto_week(self):
local_time = time.localtime()
self.week = str(time.strftime("%w", local_time))
return self.dict_day[self.week]
base = Helper()
app = Flask(__name__)
mysql = MySQL()
@app.route('/course/group=<int:group>&week=<int:week>',methods=['GET','POST'])
def getCourse(group, week):
if(request.method=='GET'):
html = base.course_info(group, week)
return render_template('base.html', group=html)
else:
return base.course_info(group, week)
# 首页
@app.route('/course/')
def course():
if(request.method=='GET'):
html=base.course_info(0,0)
return render_template('base.html',group=html)
else:
return base.course_info(group, week)
@app.route('/index',methods=['GET','POST'])
def index():
if request.method=='GET':
return render_template('index.html')
else:
if 'group' and 'week' in request.values:
week = request.values['week']
group = request.values['group']
list=base.course_info(int(group),int(week))
rest=[]
for i in list:
rest.append(i)
return json.dumps(rest,ensure_ascii=False)
else:
return 'Request Error!'
if __name__ == '__main__':
app.run(port=8888, debug=True, host='0.0.0.0')
by:luzhenfang Nov 21 2019