命名 | 恰当的名字,无论多么怎么强调都不过分 |
注释 | 还是必须有啊! |
行数 | 函数的行数,类的行数,乃至与一个源文件的代码行数都必须恰当,存在一个不宜过大的值和过小的值 |
个数 | 变量个数,参数个数,函数个数,属性个数 |
嵌套层数 | 语句的层数我认为2层是最佳,即for(;;){if(expr){dosomething}} |
日志 | 日志是了解程序运行状态的最重要工具,以及性能调优的最重要的依据 |
我现在觉得,一般来说名字都应该长一点,不过用于循环的迭代器时允许短一点:
int i;for(i=0; i < productCount ; i++){ printf("project name is %s \n", productList[i]->name); }
但是这样行不行呢?
foreach (i in productList){ Console.writeLine(i.name); }
我觉得不行,i已经是一个对象,而不是索引了,所以必须写成这样
foreach(product in productList){ Console.writeLine(product.name);}
最恰当的嵌套层次, 这样的代码读起来就不是很累
int findProduct(Product *(*productList)[N], char *name, int *index){ int i; assert(productList != NULL && name != NULL && index != NULL); for(i = 0; i < N; i++) { if(strcmp(productList[i]->name, name) == 0) { *index = i; return YES; } } return NO; }