徐老师讲堂——第一讲(要点记录)
来源:互联网 发布:阿里云邮箱企业版app 编辑:程序博客网 时间:2024/04/29 15:55
1. 代码中突出的问题是缺少通用性,好些的代码都是为了简单的实现自己既定的功能,完成一项作业而设计。不能抽象成一个接口或者简单的功能函数供别人使用或者自己使用,简而言之,就是规范性还不够,需要多加注意。
2. 代码风格方面的问题。语句之间加入适当的空格,当前大部分的代码是缩成一团,清晰度不够高。比较详细的提了几个例子。比如,下面的例子:
if (pNode->isLeaf!=0) {while (i>0&&key<pNode->keyValue[i-1]) {pNode->keyValue[i] = pNode->keyValue[i-1]; --i;}}代码过于紧凑了,应该在语句之间加上适当的空格
if( pNode->isLeaf != 0 ) {while ( i > 0 && key < pNode->keyValue[i-1] ) {pNode->keyValue[i] = pNode->keyValue[i-1]; --i;}}
还有为了是代码在不同的IDE中打开显示不会混乱,需要将tab键改为空格。平时在写代码的时候不用tab,改为空格来替代。
3. 在头文件和头文件的声明函数中不用cout来输出错误信息。应该做的是抛出异常。只有在测试文件中可以使用cout来显示出现的问题。
4. 测试的规范性,关注一下一些开源项目的测试代码,提高自己测试代码的规范性。例如:assert()的运用。
5. 测试用例的规范。个人感觉对于测试这一块,可以先奔着一个不是太严格的标准来普及一下规范性,因为毕竟如果按照严格标准的测试用例的规范来要求,需要太多的时间。
6. using namespace *;的使用,除非自己特别确定命名空间里面的东西不会和自己写的程序不会冲突,一般情况下不要直接using了,可以改为std::cout,std::endl等。
7. 头文件要写的尽量的精简。
8. 一般头文件中,需要对自己声明的变量和函数做出声明。而在函数定义时一些重复的注释没有必要再写。还有一定要养成用英文写注释的习惯。还有要培养自己用英文解决问题的能力,比如,检索问题之类的可以用英文。
9. Using的一些其他功能方面的介绍。不多做赘述,可以自己再网上再看看。
10. 形参之间是用逗号来分割的,在逗号的后面需要加上空格。
void Func1(int x, int y, int z); // 良好的风格void Func1 (int x,int y,int z); // 不良的风格
11. For(;;)循环括号中的三条语句,如果比较长的话,可以写成三行,从而使代码更加的美观易读。
12. 跟在语句后的注释,尽量做到对齐,做到规范。
13. { a[i] = 3;i++;} 与a[i++] = 3应该用哪种写法?按照具体环境的语义来判断,如果数组存在循环形式的后移之类的情况,可以考虑用后一种写法,在编译器的层面上,两者相当。
14. 安全的析构函数,防止两次调用析构,对同一块内存一次new,两次delete。
class Linklist{char* pbuf;Linklist();~Linklist();};Linklist::~Linklist(){delete []pbuf;pbuf = 0;}
15. 大括号的代码分块功能。在徐老师的代码里面有单纯的用大括号括起来的代码块,规范的写的话,这些代码块应该定义成为函数在外面,然后里面内部调用。用大括号括起来的代码块在效率上更优一些。小光也提出了跟内联函数的功能类似。不知道这种写法是不是推荐?
- 徐老师讲堂——第一讲(要点记录)
- 10.20日亚嵌嵌入式在线讲堂:红黑树——朱老师(清华博士)
- 王老师 指针 第一讲
- 小布老师—PL_SQL(第三讲)
- 王老师 结构体 第一讲
- 我想要得那块牌—记烟台大学第一届"ACM讲堂"
- CSDN——CTO讲堂
- 第一讲——简介
- 《笔记》孙鑫老师MFC第一讲(windows程序内部运行原理)
- 北京大学百年讲堂内听果宁法师讲人生——提得起、放得下的深刻含义(摘抄)
- 记录各种老师上课讲了但是不以为然结果掉坑里了错(一)
- mars老师的第12讲——常用控件(2)RadioGroup/checkBox/Toast
- mars老师的第14讲——Handler的使用(一)
- 《李明老师讲Linux》学习笔记——Linux系统安装(上)
- mars老师的第六讲——控件
- 米老师讲 ITOO4.1 ——Java
- 记录——关于老师告诉我的
- 王老师 C++ 函数重载和模板 第一讲
- A+B Problem III
- Android 智能手机程序使用历史记录查询
- 【linux】 sudo设置详解
- LoggerFactory.getLogger用法
- CMD 中 findstr 正则表达式
- 徐老师讲堂——第一讲(要点记录)
- 在32位Windows 8或Windows 7上安装Windows Phone 8 SDK
- 7段数码管 数值编码
- 模拟log4j获取日志对象调用所在的类名、方法名及行号
- Linux平台php开发环境速建(Windows系统下)
- 杀毒软件的杀毒原理
- MTVERIFY宏的使用
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- SetWindowPos API