技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

编码规范的要点

命名  恰当的名字,无论多么怎么强调都不过分
注释  还是必须有啊!
行数  函数的行数,类的行数,乃至与一个源文件的代码行数都必须恰当,存在一个不宜过大的值和过小的值
个数  变量个数,参数个数,函数个数,属性个数
嵌套层数  语句的层数我认为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;    
}
复制代码

 

 

posted on   codestyle  阅读(341)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2012-12-02 CppUnit编译与入门
点击右上角即可分享
微信分享提示