版本:v0.8
摘要
本文主要介绍了各种计算机语言编程规范的通用知识和某个特定语言的编程规范。
2015-03-27
修订历史 | ||
---|---|---|
修订 0.8 | 2015-03-27 | crl |
|
版权 © 2015 Crifan, http://crifan.com
目录
编程规范,指的是一组规则或指导意见,建议你,要求你,在编程时,用某种计算机语言写代码时,如何写,要遵循什么意见或建议。
一般来说,不是强制的,但是是多数人都遵守的一些规范。
不过,很多公司,倒是强制性的,使用统一的某种规范,此时,此规范或约定,就是要强制性的实行了。
在讨论编程规范时,另外还有几个常提到的概念,在此处可以理解基本上是同一个意思:
编程约定Coding Convention(s)
==编程规范Coding Rule(s)
==编程风格Coding Style(s)
==编码风格Programming Style(s)
==编码标准Coding Standard(s)
TODO:抽空把那张照片的内容,整理过来:
TODO:另外再顺带搜一下,该照片中的内容的原始出处。
软件,生命周期,代码可读性和可维护性,其中软件的生命周期的大部分,都是别人负责看的代码,维护你的代码,扩展你的代码。
即,代码写出来主要是给别人看的,而不仅仅是给自己看的。
注意此处的“主要”,意味着,你写了代码,是为了后来人,维护此软件的人,看的。
可以总结成简单的一句话:
你写出来的代码是给别人看的
背后的逻辑是:
->所以你要确保你自己写出来的代码,不仅仅是自己容易看懂,且也要确保别人也容易看懂
->对于每个写代码的人,如果都按照自己的喜好和习惯去写代码,那么写出来的代码的风格肯定大相径庭,风格迥异
->所以要有一个,相对来说通用的,合理的,大家所习惯遵守的风格,总结和定义出来,让大家去遵守
->每个人都在写代码时都遵守这个规范
->这个描述了该如何写代码的规范,就叫做:编程规范
解释了道理后,再贴上一些大牛们的观点:
Programs are meant to be read by humans and only incidentally for computers to execute.
— H. Abelson and G. Sussman (in "Structure and Interpretation of Computer Programs"
其中:
是个牛人,维基百科中的解释是:
“哈尔·阿伯尔森(英语:Hal Abelson,1947年4月26日-)是美国麻省理工学院电子工程和计算机科学部门的一名著名计算机科学教授,电气电子工程师学会院士, 创作共用,自由软件基金会,麻省理工网络开放课程,媒体实验室 Center for Mobile Learning,MIT App Inventor的创始领导人。”是本书,“这本书被广泛地认为是计算机科学的经典教材,在计算机科学的教学领域产生了深刻的影响。”
总之:大牛们的观点都已经是:代码是写给别人看的,顺带只是用来被计算机执行的。
所以,你要是写的代码,让别人看不懂,那么就好好学习编程规范,写出让别人也易懂的代码吧。
此处介绍,不论是任何计算机语言,相对来说都,通用的,具有普适性的一些编程规范。
不同语言都要加上必要的注释
必要的注释,指的是:
如果代码本身不能说明全部问题,那么则一定要加上对应的注释,去说明代码背后的问题
在已经保证代码可读性足够好的情况下,无需加上多余的注释
不论是用哪种语言去写代码,都会遇到,对于一个东西,给其起一个名字,即给东西命名
这个东西,包括但不限于:
下面就来介绍一下,关于命名方面的规范。
知道了命名时要遵循的原则后,就涉及到,如何给具体的变量、函数等内容去命名了。
命名这个事情,很早就有人专门总结了不同的,常见的方法:
在你写代码时,往往也伴随着设计对应的函数,类,模块,甚至项目架构,而其中所涉及到的很多原则,也是属于编程规范的范畴。
下面就来介绍各种常见的编程规范的设计原则。
不论是设计函数、类,模块,项目架构,等内容时,都要遵循的一个原则,那就是:高内聚,低耦合
简单解释就是:
将那些,使用频率高的,相对重合度很高的代码,整合到对应的,公共的函数中,甚至做成单独的类库
这样的好处是,随着你的编码时间和经验的提高,你的,或者你们公司的,项目的,公用的代码,函数,类库,会逐渐增加,为你以后的编程的质量和效率的提升,大有帮助。
比如,之前我在编程期间,就慢慢地积累了一些相对通用的函数,整理成自己的库函数了:
crifanLib – Crifan’s Library (C#/Python/PHP/C/…) | 在路上
有需要的可以去看看。
各种不同的计算机语言,基本上都有自己的编程规范
详见后面各个章节的介绍:
除了语言本身的编程规范之外,其他很多,相对比较正规以及重视技术积累的公司或组织,针对某些常用的语言,也制定了自己的一套编程规范,比如:
网络上已有的一些整理好的GO语言的编程规范,可供参考: