• 系统程序员成长计划走近专业程序员(下)


    转载时请注明出处和作者联系方式
    文章出处:http://www.limodev.cn/blog
    作者联系方式:李先静 <xianjimli at hotmail dot com>

    当 你读到这里的时候,相信你已经独立写出了一个双向链表。恭喜你!迈出这一步可是值得庆祝的,现在你已经走在通往程序员的光明大道上了。不过你还是个业余程 序员,那当然了,你才写出第一个程序呢!什么时候才能成为一个专业程序员呢?三年还是五年工作经验?其实不用的,你马上就可以了,我没有骗你,因为专业程 序员与业余程序员之分主要在于一种态度,如果缺乏这种态度,拥有十年工作经验也还是业余的。

    什么态度?专业态度!也就是星爷常说的专业精神。专业态度有多种表现形式,以后我们会一一介绍的。这里先介绍一下有关形象的态度,专业的程序员是很 注重自己的形象的,当然程序员的形象不是表现在衣着和言谈上,而是表现在代码风格上,代码就是程序员的社交工具,代码风格可是攸关形象的大事。

    有人说过,傻瓜都可以写出机器能读懂的代码,但只有专业程序员才能写出人能读懂的代码。作为专业程序员,每当写下一行代码时,要记得程序首先是给人 读的,其次才是给机器读的。你要从一个业余程序员转向专业程序员,就要先从代码风格开始,并从此养成一种严谨的工作态度,生活上的不拘小节可不能带到编程 中来。

    代码风格有很多种,Windows 和Linux都有自己主流的代码风格,每个团队,每个公司也可能有自己的代码风格,争论哪种风格好那种风格坏没有什么意义。只要有助于其他程序员理解的代码风格都是可以接受的,因为遵循特定代码风格的目的就是为了便于交流。

    这里介绍一下作者本人喜欢的代码风格,这种代码风格也在作者所在团队中使用。这里的命名风格与GTK+代码相近,排版风格Linux内核代码相近。

    命名要展示对象的功能。

    文件名:单词小写,多个单词用下划线分隔。
    如: dlist.c (这里d代表double,是通用的缩写方法)

    注意: 文件名一定要能传达文件的内容信息,别人一看到文件名就是知道文件中放的是什么内容。只把一个类或者一类的代码放在一起是好的习惯,这样就很容易给文件取 一个直观的名字。业余爱好者常常把很多没关系的代码糅到一个文件中,结果造成代码杂乱无章,也很难给它取一个恰当的名字。

    函数名:单词小写,多个单词用下划线分隔。
    如:find_node

    注意:同样,一个函数只完成单一功能,不要用代码的长度来衡量是不是要把一段代码独立成一个函数。即使只有几行代码,只要它完成的是一项独立的功 能,都应该提为一个单独的函数,而函数名可以直观的反应出它的功能。如果在给函数起名时遇到了困难,通常是函数设计不合理,应该仔细思考一下。

    结构/枚举/联合名:首字母大写,多个单词连写。
    如:struct _DListNode;

    宏名:单词大写,多个单词下划线分隔
    如:#define MAX_PATH 260

    变量名:单词小写,多个单词下划线分隔。
    如:DListNode* node = NULL;

    面向对象的命名方式:

    1.以对象为中心,采用主语(对象)+谓语(动作),取代传统的谓语(动作)+宾语(目标)。
    如:dlist_append

    2.第一个参数为对象,并用thiz命名。
    如:dlist_append(DList* thiz, void* value);

    3.对象有自己的生命周期,都有create和destroy函数。

    排版布局要美观大方。

    合理使用空行:

    1.函数体之间用空行分隔。

    2.结构/联合/枚举声明空行分隔。

    3.不同功能的代码块之间用空行分隔。

    4.类似的代码放在一起,和其它部分用空行分隔。比如宏定义,类型定义,函数声明和全局变量放在一起。

    5.使用空行时,一行就够了,不要使用连续多个空行,那样让人感觉空荡荡。

    合理使用空格:

    1.等号两边用空格。如:
    如:int a = 100;

    2.参数之间用空格。如:
    如:test(int a, int b, int c)

    3.语句末的分号与前面内容不要加空格。
    如:test(a, b, c);

    4.其它有助让代码更美观的地方。

    合理使用括号:

    1.用括号分隔子表达式,不要只靠默认优先级来判断。
    如:((a && b) || (c && d))

    2.用括号分隔if/while/for等语句的代码块,那怕代码只有一行。
    如:

    if(a > b)
    {
    return c;
    }

    合理的缩进方式:

    每一级都正常缩进,用tab缩进取代空格缩进(Linux kernel也遵循此规则)。用空格缩进的目的是防止代码因编辑器的tab宽度不同而变乱,这个担心现在是多余的了,代码编辑器都支持tab宽度设置了。 如果缩进的居次太多(比如超过三层),可能是代码设计上出了问题。

    如:

    if(a > b)
    {
    for(i = 0; i < 100; i++)
    {

    }
    }

    遵从团队的习惯。这个是最重要的,一个团队就要像一个团队的样子,不管你的水平有多高,遵循团队的规则是一个程序员的基本素养。如果团队的规则确实不好,大家应该一起完善它。

    做到这一点,你已经走近专业程序员了,重新做一遍练习吧。随着后面的学习,你就可以真正走进专业程序员这个行列了。

  • 相关阅读:
    忘记 jumpserver 超级用户密码
    Linux 安装 MySQL-5.7.23
    Linux下MySQL 8.0安装配置
    H3C 端口镜像设置
    node.js+express+jade系列七:富文本编辑框的使用
    node.js+express+jade系列六:图片的上传
    node.js+express验证码的实现
    node.js定时任务:node-schedule的使用
    node.js+express+jade系列五:ajax登录
    node.js+express+jade系列四:jade嵌套的使用
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167602.html
Copyright © 2020-2023  润新知