代码规范V1.1
作业要求:【https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/993】
代码规范文档/代码规范执行记录:【https://coding.net/u/Dawnfox/p/f4/git/tree/master/doc】
结对同学:【袁玥】
我和队友于2017/10/3确定四则运算作业的代码规范主要由三方面构成:格式、命名和注释。
一、格式
    A.  代码行数
        (1)	代码文件不超过500行
        (2)	函数的行数不超过50行
    B.  换行
        (1)	函数与函数之间空一行
        (2)	函数内部变量声明与函数内部逻辑代码之间空一行
        (3)	函数内部不同逻辑代码之间空一行
    C.  大括号
        “{”和“}”必须单独在一行上,且上下对齐。
    D.  缩进
        代码缩进一致使用Tab实现,规定Tab键宽度为4个字符,不建议使用空格进行缩进。
    E.  空格
        (1)	函数参数列表中不同参数之间应该用一个空格分开,即逗号后面应跟一个空格。如:
            void updateData(int source, int target)
        (2)	for循环中表达式之间应该用一个空格分开,即分号后面应跟一个空格。如:
            for(exp1; exp2; exp3)
        (3)操作符与操作数之间应该用一个空格分开,一元操作符(例如自增“++”,自减“--”等)与操作符不作此限定。如:
            a += b + c;
            ++a;
二、命名
变量主要分为类的公有和私有变量,方法的参数变量与内部使用的临时变量。
    A.  变量的名称由多个名词单词或一个名词单词组成时,第一个单词首字母小写,其他单词首字母均大写。如makeRule。
    B.  对于const常量,所有单词均大写,且单词之间由下划线”_”连接,如APP_NAME。
    C.  函数名称的第一个单词首字母为大写的动词。如IsDir(是否为目录)。
    D.  变量名和函数名能够表达它所具有的实际含义。如函数名IsDir表示输入路径是否为目录,res表示是判断的结果。

    E.  尽量避免单词缩写,即便它可能是众所周知的。
三、注释
    A.  只采用“//”作为注释符
    B.  注释的位置
        (1)	注释在被注释函数定义的顶部

        (2)	注释在函数内部变量声明的右边

        (3)	注释在函数内部逻辑代码的顶部

    C. 注释的内容
        (1)	代码的功能

        (2)	对读者阅读代码时可能产生的疑问做解释,比如,该段代码使用了堆栈,为什么需要堆栈而并非数组,在此处代码部分给出注释
四、代码执行记录
| 规范项 | 情况记录 | 违反次数 | 待修订 | 已修订 | 备注0(是否对条款进行增强) | 备注1(是否对条款进行消弱) | 备注2(是否对条款进行废除) | 
|---|---|---|---|---|---|---|---|
| 格式.A.(1) | 代码文件不超过500行 | 1 | 1 | 0 | 0 | 1 | 0 | 
| 格式.A.(2) | 函数的行数不超过50行 | 3 | 3 | 0 | 0 | 0 | 1 | 
| 格式.B.(1) | 函数与函数之间空一行 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 格式.B.(2) | 函数内部变量声明与函数内部逻辑代码之间空一行 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 格式.B.(3) | 函数内部不同逻辑代码之间空一行 | 2 | 0 | 2 | 0 | 0 | 0 | 
| 格式.C | “{”和“}”必须单独在一行上,且上下对齐 | 11 | 0 | 11 | 0 | 0 | 0 | 
| 格式.D | 代码缩进一致使用Tab实现,规定Tab键宽度为4个字符,不建议使用空格进行缩进 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 格式.E.(1) | 函数参数列表中不同参数之间应该用一个空格分开,即逗号后面应跟一个空格 | 1 | 0 | 1 | 0 | 0 | 0 | 
| 格式.E.(2) | for循环中表达式之间应该用一个空格分开,即分号后面应跟一个空格 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 格式.E.(3) | 操作符与操作数之间应该用一个空格分开,一元操作符(例如自增“++”,自减“--”等)与操作符不作此限定 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 命名.A | 变量的名称由多个名词单词或一个名词单词组成时,第一个单词首字母小写,其他单词首字母均大写。如makeRule | 0 | 0 | 0 | 0 | 0 | 0 | 
| 命名.B | 对于const常量,所有单词均大写,且单词之间由下划线”_”连接,如APP_NAME | 0 | 0 | 0 | 0 | 0 | 0 | 
| 命名.C | 函数名称的第一个单词首字母为大写的动词。如IsDir(是否为目录) | 0 | 0 | 0 | 0 | 0 | 0 | 
| 命名.D | 变量名和函数名能够表达它所具有的实际含义。如函数名IsDir表示输入路径是否为目录,res表示是判断的结果 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 命名.E | 尽量避免单词缩写,即便它可能是众所周知的 | 3 | 0 | 3 | 0 | 0 | 0 | 
| 注释.A | 只采用“//”作为注释符 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 注释.B.(1) | 注释在被注释函数定义的顶部 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 注释.B.(2) | 注释在函数内部变量声明的右边 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 注释.B.(3) | 注释在函数内部逻辑代码的顶部 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 注释.C.(1) | 代码的功能 | 2 | 0 | 2 | 0 | 0 | 0 | 
| 注释.C.(2) | 对读者阅读代码时可能产生的疑问做解释,比如,该段代码使用了堆栈,为什么需要堆栈而并非数组,在此处代码部分给出注释 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 修订时间 | 版本 | ||||||
| 2017/10/11 0:00:00 | V1.0 | 
代码规范V1.1的更多相关文章
- 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》
		终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ... 
- Alpha冲刺——代码规范、冲刺任务与计划
		代码规范 作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Alpha冲刺(团队) 团队目标 切实可行的计算机协会维修预约平台 开发工具 Eclipse 团队信息 ... 
- 阿里官方Java代码规范标准
		阿里官方Java代码规范标准<阿里巴巴Java开发手册 终极版 v1.3.0>下载 https://www.cnblogs.com/han-1034683568/p/7680354.htm ... 
- atitit.atiHtmlUi web组件化方案与规范v1
		atitit.atiHtmlUi web组件化方案与规范v1 1. 如何在现有html 标签基础上定义自己的组件1 2. 组件的构成与定义1 3. 组件的加载1 4. 组件css的加载2 5. 操作组 ... 
- Web 前端开发代码规范(基础)
		一. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护. 二. HTML/CS ... 
- php代码规范->如何写出规范且易于理解的项目代码-ZX版
		2019年5月17日10:50:12 前序: 目前是想到哪写到哪,后面有时间在整理成具体文章 很多时候,PHP代码风格过于自由,导致一个项目有N多种写法风格,有些人为了自己认为的技术"高&q ... 
- 代码规范、API设计等规范
		一份整理好了的规范文档,node后端开发用到 "规范是个好东西..." - 鲁迅 以下规范仅作为参考 1.代码规范 命名 尽量保证命名更加语义化 文件命名采用下划线命名法 // g ... 
- iOS代码规范(OC和Swift)
		下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ... 
- 谈谈PHP代码规范
		[转] http://www.syyong.com/php/Talk-about-PHP-code-specification.html 我向往这样一个php世界,里面没有代码规范之争.你我都一样,都 ... 
随机推荐
- 微信支付 php兼容问题
			总结: php7 已删除 HTTP_RAW_POST_DATA 获取时需要file_get_contents("php://input"); 下面的是兼容方法. //存储微信的回 ... 
- 各种形式的熵函数,KL距离
			自信息量I(x)=-log(p(x)),其他依次类推. 离散变量x的熵H(x)=E(I(x))=-$\sum\limits_{x}{p(x)lnp(x)}$ 连续变量x的微分熵H(x)=E(I(x)) ... 
- error TS2304: Cannot find name 'Promise' && TS2307: Cannot find module '**'
			error TS2304: Cannot find name 'Promise' 解决方法:在编译选项中加入"target":"es6" { "ver ... 
- java this的用法
			this 含义:代表当前对象 用法: 用于返回对象的引用 示例代码 public class Test { public Test f() { return this;//获取当前对象的引用 } pu ... 
- Java判断对象是否为NULL
			Java使用反射判断对象是否为NULL 判断Java对象是否为null可以有两层含义: 第一层: 直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候 ... 
- flask-security(一)快速入门
			很多例程都是基于flask-sqlalchemy的. 但是我使用sqlalchemy,并没有使用sqlalchemy,看中的也就是flask的灵活性. 暂时写flask的程序,但是为了以后写别的程序方 ... 
- Spring Boot + Druid 监控数据库(三)
			Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助. 2) 替换DBC ... 
- RabbitMQ 设置消息的优先级
			在RabbitMQ中,可以设置消息的优先级,也就相当于在队列中置顶某条消息,让某个消息优先得到处理的功能. 既然是设置消息的优先级,那么就是针对生产者,也就是消息发布端. 设置消息的优先级一共有2个步 ... 
- 关于学习Vue的前置工作/技术储备
			关于学习Vue的前置工作/技术储备 1.GitBatch 2.Sublime Text 3.Node-----npm 命令 本人用的idea GitBatch: GitBatch是一个可以编写shel ... 
- Android : 跟我学Binder --- (1) 什么是Binder IPC?为何要使用Binder机制?
			目录: Android : 跟我学Binder --- (1) 什么是Binder IPC?为何要使用Binder机制? Android : 跟我学Binder --- (2) AIDL分析及手动实现 ... 
