编码规范&读《数学之美》有感

编码规范 & 读《数学之美》感想

l  编码规范

一、排版

1.关键词和操作符之间加适当的空格

2.相对独立的程序块与块之间加空行

3.较长的语句、表达式等要分成多行书写。

4.划分出的新行要进行适应的缩进,使排版整齐,语句可读。

5.长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

6.循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。

7.若函数或过程中的参数较长,则要进行适当的划分。

8.不允许把多个短语句写在一行中,即一行只写一条语句。

9.函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。

10.C/C++语言是用大括号‘{ ‘和‘ }‘界定一段程序块的,编写程序块时‘{ ‘和

‘ }‘应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体

的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、

switch、case语句中的程序都要采用如上的缩进方式。

二、注释

1.注释要简单明了。

2.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。

3.在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防止

注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。

4.对代码的注释应放在其上方相邻位置,不可放在下面。

5.对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域

的注释应放在此域的右方;同一结构中不同域的注释要对齐。

6.变量、常量的注释应放在其上方相邻位置或右方。

7.全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它

以及存取时注意事项等的说明。

8.在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成

日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其

它文件关系等);主要函数或过程清单及本文件历史修改记录等。

9.在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描

述;输入、输出及返回值说明;调用关系及被调用关系说明等。

三、命名

1.较短的单词可通过去掉"元音"形成缩写;

2.较长的单词可取单词的头几发符的优先级,并用括号明确表达式的操作顺序,避

免使用默认优先级。

四、可读性

1.避免使用不易理解的数字,用有意义的标识来替代。

2.不要使用难懂的技巧性很高的语句。

3.源程序中关系较为紧密的代码应尽可能相邻。

五、变量

1.去掉没必要的公共变量。

2.构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公共

变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。

3.仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。

4.明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。

5.当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。

6.防止局部变量与公共变量同名。

7.仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减

少引起误用现象。

8.结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保

留余地(如预留一些空间等)。

9.留心具体语言及编译器处理不同数据类型的原则及有关细节。

10.严禁使用未经初始化的变量。声明变量的同时对变量进行初始化。

11.编程时,要注意数据类型的强制转换

六、函数、过程

1.函数的规模尽量限制在200行以内。

2.一个函数最好仅完成一件功能。

3.为简单功能编写函数。

4.函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。

5.尽量不要编写依赖于其他函数内部实现的函数。

6.避免设计多参数函数,不使用的参数从接口中去掉。

7.用注释详细说明每个参数的作用、取值范围及参数间的关系。

8.检查函数所有参数输入的有效性。

9.检查函数所有非参数输入的有效性,如数据文件、公共变量等。

10.函数名应准确描述函数的功能。

11.避免使用无意义或含义不清的动词为函数命名

12.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。

13.明确函数功能,精确(而不是近似)地实现函数设计。

14.减少函数本身或函数间的递归调用。

15.编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)

七、可测性

1.在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好各种调

测开关及相应测试代码如打印函数等。

2.在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时

仔细分析并优化测试用例,以提高测试效率。

八、程序效率

1.编程时要经常注意代码的效率。

2.在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。

3.不能一味地追求代码效率,而对软件的正确性、稳定性、可读性及可测性造成影

响。

4.编程时,要随时留心代码效率;优化代码时,要考虑周全。

5.要仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。

6.通过对系统数据结构划分与组织的改进,以及对程序算法的优化来提高空间效率。

7.在多重循环中,应将最忙的循环放在最内层。

8.尽量减少循环嵌套层次。

9.避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。

10.尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。

九、质量保证

1.在软件设计过程中构筑软件质量。

代码质量保证优先原则

(1)正确性,指程序要实现设计要求的功能。

(2)稳定性、安全性,指程序稳定、可靠、安全。

(3)可测试性,指程序要具有良好的可测试性。

(4)规范/可读性,指程序书写风格、命名规则等要符合规范。

(5)全局效率,指软件系统的整体效率。

(6)局部效率,指某个模块/子模块/函数的本身效率。

(7)个人表达方式/个人方便性,指个人编程习惯。

2.只引用属于自己的存贮空间。

3.防止引用已经释放的内存空间。

4.过程/函数中分配的内存,在过程/函数退出之前要释放。

5.过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出前要关闭。

6.防止内存操作越界。

7.时刻注意表达式是否会上溢、下溢。

8.认真处理程序所能遇到的各种出错情况。

9.系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。

10.系统运行之初,要对加载到系统中的数据进行一致性检查。

11.严禁随意更改其它模块或系统的有关设置和配置。

12.不能随意改变与其它模块的接口。

13.充分了解系统的接口之后,再使用系统提供的功能。

14.要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符。

15.不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句。

16.建议:使用第三方提供的软件开发工具包或控件时,要注意以下几点:

(1)充分了解应用接口、使用环境及使用时注意事项。

(2)不能过分相信其正确性。

(3)除非必要,不要使用不熟悉的第三方工具包与控件。

十、代码编译

1.编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成

代码丢失。

2.同一项目组内,最好使用相同的编辑器,并使用相同的设置选项。

3.合理地设计软件系统目录,方便开发人员使用。

4.打开编译器的所有告警开关对程序进行编译。

5.在同一项目组或产品组中,要统一编译开关选项。

6.使用工具软件(如VisualSourceSafe)对代码版本进行维护。

十一、代码测试、维护

1.单元测试要求至少达到语句覆盖

2.单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。

3.清理、整理或优化后的代码要经过审查及测试。

链接:https://baike.so.com/doc/8889202-9215009.html

l  读《数学之美》有感

被数学能够解决语言问题给惊讶到了,我一开始以为数学的作用就是平时买卖东西时候的计算,在计算机方面实在是想不到用处,看了数学之美,才发现数学可以解决那么多问题,数学太奇妙了,太实用了,有了数学很多问题都可以被解决。

数学中要讲概率,结合实际,看看概率是否相同。

原来一个文件的大小不仅仅取决于文件的字符的个数,还要考虑到上下文的相关性等。

搜索引擎那么复杂的问题,掰开来看,细化后原来是基本的布尔预算。复杂的问题可以简单化,有时候复杂的问题,可以在基本的方法,运算里找找解决方案。

看《数学之美》之前,感觉数学、学术的世界和现实生活是有距离的。看了《数学之美》以后,发现数学、学术的世界与现实生活有着密切的联系。布尔运算把逻辑和数学联系起来了,概率把自然语言和机器计算机联系起来了......

更了解所学的课程之间的联系,所学的课程是如何联系起来解决一个问题,离散,数据结构等等

算法决定软件运行时,用法点那个按钮,会进行那一步,出现什么页面,得出什么结果。

这学期想用算法实现计算器软件。

原文地址:https://www.cnblogs.com/666AAAA/p/11478871.html

时间: 2024-11-08 13:06:50

编码规范&读《数学之美》有感的相关文章

编码规范与数学之美感想

命名规约 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式 类名使用UpperCamelCase风格,必须遵从驼峰形式(某些情况诸如领域模型相关的命名除外):方法名.参数名.成员变量.局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式 常量命名全部大写,单词间用下划线隔开 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词 抽象类命名使用Abstract或Base开头:异常类命

代码规范&《数学之美》读后感

一.代码规范 参考自 http://c.biancheng.net/view/158.html 1) 空行 空行起着分隔程序段落的作用.空行得体将使程序的布局更加清晰.空行不会浪费内存,虽然打印含有空行的程序会多消耗一些纸张,但是值得. 规则一:定义变量后要空行.尽可能在定义变量的同时初始化该变量,即遵循就近原则.如果变量的引用和定义相隔比较远,那么变量的初始化就很容易被忘记.若引用了未被初始化的变量,就会导致程序出错. 规则二:每个函数定义结束之后都要加空行. 总规则:两个相对独立的程序块.变

读《数学之美》有感

因缘巧合手头有一本吴军博士的<数学之美>,原本打算随便翻翻,结果看了之后一发不可收拾,权且记下此刻心中所想. 1.读书的过程中才觉得自己学过的数学.概率论.数理逻辑.线性代数是那么的美,没用到不代表没用 2.信息论是自己之前不曾了解的知识,作者深入浅出的文章,把负责的问题用简单的方式表达出来,真的很了不起.比较推崇”极简原则“,真理如此,生活也应该如此 3.模型很重要,一个好的模型对于系统起到至关重要的作用 4.隐约感觉到书中的大多技术和数学模型都是以大数据为背景的,一直以来对推荐系统和搜索引

读《数学之美》有感——第一篇

<数学之美>让我改变了对数学刻板的印象,我一直都不知道数学研究得那么深入,到底有什么作用.但是经过这一次阅读,我发现数学之美可以通过信息技术直接具体地展示在人们面前.我们在解决一些问题上,一个优秀的模型对于解决问题来说实在太重要了. 我先介绍两个我觉得比较有意思的应用吧!首先是数学在中文分词中的意义.再过去的相当长一段时间,基于语法的分词效果并不理想,因为中文中有很多两个名词组成的单词相类似的情况,基于语法是很难彻底区分开的.七十年代,当时 IBM 的 Fred Jelinek (贾12数学之

代码规范与《数学之美》读后感

1.C++代码规范: (Googled代码规范): https://zh-google-styleguide.readthedocs.io/en/latest/contents/ 2. <<数学之美>>读后感: 在读这本书之前,自己对于自然语言处理的理解,一直是囿于语言学的思维中,如如何实现词义的上下文理解,以前的自己会马上想到结合语法,但是具体到计算机如何实现却不得为知,直到看到书中使用互信息,和信息熵的统计学的方法,解词语二义性,思维突然从原本的文科思维转换为是数学思维,对这样

C++代码规范及《数学之美》读后感

代码规范 采用Google C++ Style Guide 原文链接:https://google.github.io/styleguide/cppguide.html 中文版链接:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/ 部分摘录: 1.1. Self-contained 头文件 头文件应该以 .h 结尾.至于用来插入文本的文件,说到底它们并不是头文件,所以应以 .inc 结尾. 2

读谷歌编码规范所想到的

这几天看了很多文章,其中有一篇<为什么谷歌要执行严格的代码编写规范>让我深有感触. 不得不承认,以前一直认为编码规范没什么用处,甚至有时候觉得浪费开发人员的工作时间. 在同另一个公司合作共同开发项目的过程中,偶然的查看了他们的代码,统一的命名方式.简洁的描述.详细的参数注解,让我没花多少时间就轻松的看懂了它们的业务逻辑,曾经被觉得微不足道的编码规范不经意间让我震惊. 有时候我们打心里抵触.拒绝一些东西(假如它确实是美好的),可能一部分原因是太久的时间依旧让我们感受不到它的魅力,于是花谢了,城倾

读《数学之美》

其实准备读<数学之美>这本书,是从很久开始的.记得去年夏天的时候,是读了<浪潮之巅>,然后就认识了吴军这样的一个人,很喜欢他的写作风格.于是就准备读<数学之美>的. <数学之美>这本书,本身和<浪潮之巅>一样,已经在众多的读者中有了一个很好的口碑了,吴军博士本身的才学和研究,对于更多的人来说,也形成了一种尊重的心理.在我读了<浪潮之巅>后,有种很厚重的历史沧桑感堆积于胸.不得不承认<浪潮之巅>对于我的影响. <数学之

对数学有了新的认识&mdash;&mdash;读《数学之美》

世间万般表象的背后皆有规律.科学研究的真正目的,在于找到这些规律并能够举一反三地应用这些规律.对于自然科学和工程学,包括计算机科学和通信,数学是描述这些规律性最好的工具.做事情的方法有对与错.好和坏之分,从长期看只有采用对的方法.好的方法才能做出好的产品和服务.而任何一个好的方法背后都有充分的理论依据,都有正确的方法论. 本书的一个目的在于揭示信息和自然语言处理以及它们在通信和互联网各种应用(语音识别.机器翻译.搜索.分类等)中的数学原理,从而帮助读者认识到:解决这些问题,好的方法是什么.毫无疑