看了代是雄对这几个问题的回复之后,唐师傅叫代是雄先熟悉一下办公的电脑及一些办事流程,他要找一些资料作为培训计划中的材料。
代是雄先到公司的IT网站上去逛了一下,发现上面的东西相当的丰富,有各类办事流程指引、软件下载专区、公司新闻、热门论坛等,简直就是一个在线的小超市。在软件下载专区中有常用办公软件(像office、各类浏览器等)、开发工具(像Visual Studio、Eclipse等)、制图软件等。在很多大公司里面,都有一个类似的为员工提供便利的网站,将工作所需的所有资源都放到了上面,这样在无形中也提高了员工的工作效率。
正当代是雄在IT网站上看得入迷的时候,突然发现唐师傅通过zQQ给他发了两个文档,一个文档是《C语言编程规范》,另一个文档是《数据库编程规范》。唐师傅叫代是雄仔仔细细地阅读一下这两个文档,并将阅读笔记或学习心得整理出来发给他看。正所谓“没有规矩,不成方圆”,看来编写代码之前要先阅读编码规范!
代是雄首先打开《C语言编程规范》文档阅读起来,该文档一共有40多页,主要内容包含了七个章节,分别是:原则思想;布局;注释;常量、变量和类型;表达式和语句;内存、数组和指针;函数。
在正文之前,有一个名为“修改记录”的表格,里面详细地记录了该规范文档的详细的演进历史,包括:版本号、拟制人/修改人、拟制/修改日期、更改理由、主要更改内容。“冰冻三尺,非一日之寒”,从这个“修改记录”中可以看出,编程规范也不是一朝就定下来的,而是经过长时间的经验总结积累下来的。因此,各位新老程序员要戒骄戒躁、不断学习,切不要认为自己的学习已经到头了。
既然是入职之后得到的第一个学习任务,代是雄也不含糊,而是仔仔细细地阅读了好几遍。在阅读的同时,他也记录下了各个章节的要点,用于向唐师傅汇报自己的学习心得。
第一章“原则思想”讲解的是编程规范的价值及代码编写的一些基本原则。编程规范的价值有这几个:1)使得团队成员的编程风格保持一致;2)使得代码具备良好的可读性;3)防止不必要的、较为低级的错误的发生;4)有利于开发经验的总结和沉淀。代码编写的一些基本原则包括:1)代码即设计,好的代码的一个特点是自解释的;2)编程是团队行为,每个人都应该对所有代码负责,运用集体的力量保障代码的质量;3)避免代码过度灵活而影响正确性,尽量用最直接的方法实现功能;4)化繁为简,尽量把一段复杂的代码切分成若干段相对简单的代码,使得代码逻辑清晰、容易维护。
第二章“布局”主要涉及到C语言中头文件(.h文件)及源文件(.c文件)的代码布局的规范。强调布局的目的是为了显示出程序良好的逻辑结构,提高程序的准确性、连续性、可读性及可维护性;好的布局可以减少程序出错的可能,而不好的布局则会分散程序员的精力,给编程带来额外的负担。在编写程序的时候,要按照统一的布局顺序来书写头文件(.h文件)及源文件(.c文件),并且要注意代码的对齐、分隔、缩进和断行等。
第三章“注释”主要涉及到C代码中注释的编写规范。书写注释的目的是为了帮助大家更加深入地理解代码,它不是代码表面意义的简单重复或从代码到自然语言的翻译。有效的注释是指在代码的功能、意图等层次上进行注释,提供给大家经过提炼的、有用的、额外的信息。对于每个开发者来说,要通过恰如其分的变量命名及清晰的代码逻辑来使得代码成为自注释的。
第四章“常量、变量和类型”主要涉及到C代码中常量和变量的书写规范。在C语言中,常量包括数据常量和指针常量等,变量包括全局变量、局部变量和静态变量,类型包括系统的数据类型和自定义数据类型。变量的使用原则有:1)尽量缩小变量的作用域,变量的作用域越小,对变量的理解、增加、修改就越受控,就越不容易出错;2)变量遵循单一职责原则,一个变量只有一种用途;3)不要在循环语句与条件语句中对其它变量进行计算与赋值。
第五章“表达式和语句”主要涉及到C代码中表达式及相关语句的书写规范。在C语言中,表达式是代码语句的核心组成部分,不规范的表达式和语句会降低程序的可读性,从而带来代码质量隐患。在书写表达式和语句的时候要注意运算符的优先级,一条语句只允许完成一个功能。此外,尤其要注意条件判断语句、switch语句、for语句等语句中的代码的书写规范。
第六章“内存、数组和指针”主要涉及到C代码中内存、数组和指针的书写规范。内存是程序运行需要的核心资源,数组和指针是与内存密切相关的重要数据结构;内存使用不当会带来严重的后果,甚至导致系统崩溃。只有遵守规范要求并养成良好的编程习惯,才能够合理有效地利用内存,减少出错的可能性。为此,开发者需要了解编译系统针对不同类型的变量的内存分配规则(如:全局变量存放在数据区,局部变量存放在栈区,动态变量存放在堆区,函数代码放在代码区)。
第七章“函数”主要涉及到C代码中函数的书写规范。函数是C程序的基本功能单元,编写出正确、高效、易维护的函数是软件编码质量控制的关键。函数的书写原则包括:1)避免函数有太多的参数(参数个数尽量控制在5个以内);2)参数的顺序要合理;3)对函数输入参数的正确性和有效性进行检查;4)尽量少使用递归函数(函数的递归调用容易失控,从而造成死循环、栈溢出等严重的问题)。
看完了这个《C语言编程规范》文档,代是雄觉得自己的收获有这几点:1)代码编写不能随心所欲,要在一定的标准和规范下从事开发;2)代码编写主要涉及到很细节的问题,细到一个空格和一个符号,因此,编程能够让人养成做事仔细的习惯;3)对于每个开发者的基本要求就是对自己所编写的代码负责,整个团队要一起协作来提高产品的质量。