命名规范

笔记 / 2020-03-10

命名规范

在编写代码的过程中,用良好的命名对于后期维护十分有利,养成良好的命名习惯尤为重要.

常见命名

  • 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