code style

代码风格是个很关人性的东西。

对于一个变量的命名,如果名字不是很好,对其他人来说,那是很不人道的。其他人在第一次看到这个命名不清晰的变量,得花一些时间来揣测这个变量到底是何方神圣,这种事情做多了,难免会偶尔失控抓狂。

而且较少文档,拿到的文档,也只是一些系统架构上的说明和规划。

我妈妈不知道我的同事很厉害,当然也不知道最近我正被如下这种精简的代码风格所折磨:

  1. 没有注释,下面的初始化还好啦,在其他地方,有些涉及业务,比如选择一个xx的逻辑,一堆if xx1; if xx2; if xx3,也都是没有注释。答疑时该同事也曾经卡住:我ca当时我为什么要这么写
  2. 从命名上看不出这是一个全局变量,比如下面例子的fcslist数组,就是一个全局变量
  3. 多个变量名简短、且命名类似,比如sip, s_ip, isp
    ...
    ...

    t_ip_info ipinfo;
    char buf[2048] = {0x0};
    while (fgets(buf, sizeof(buf), fp))
    {
        char *t = strrchr(buf, '\n');
        if (t)
            *t = 0x0;
        memset(&ipinfo, 0, sizeof(ipinfo));
        snprintf(ipinfo.sip, sizeof(ipinfo.sip), "%s", buf);
        uint32_t ip = get_uint32_ip(ipinfo.sip, ipinfo.s_ip);
        if (ip == INADDR_NONE)
        {
            LOG(glogfd, LOG_ERROR, "err ip %s\n", ipinfo.sip);
            continue;
        }
        ipinfo.isp = isp;
        ipinfo.archive_isp = isp;
        ipinfo.role = ROLE_FCS;
        fcslist[atoi(ipinfo.sip+3)%MAXFCS] = isp;
        ipinfo.ip = ip;
        add_ip_info(&ipinfo);
        LOG(glogfd, LOG_NORMAL, "ip %s %s\n", ipinfo.sip, ipinfo.s_ip);
    }

    ...
    ...

交接时,同事问我,你还有什么问题吗?
我好想说,我语文不好,理解力差,可以在代码上加上一些注释吗?



– EOF –

Categories: in_notes
Tags: c