机房重构--代码规范学习

2024-08-26 21:38

本文主要是介绍机房重构--代码规范学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        数据库设计已经完成了,这就进入编码的阶段了,在这之前为了保证这次写代码的规范性,花了一个多小时重温了米老师曾经给我们讲课时候讲的《编码规范》,在规范上的收获还是比较大的,毕竟第一次做这个系统的时候好多规范都没有遵循,而且更大的体会是对于未知领域的恐惧更少了,更加期盼着这个系统的进行,下面是我从中提取的比较重要的一些规范,希望对大家的编码能有所参考。

设置模块和过程

  1、过程的名字不要使用缩写

   • 如果你认为应用程序中的某些工程应该使用缩写,那么请将这些情况加上注释,并确保每个人在所有时间内都使用这些缩写。  

   • 决不要在某些过程中对某些单词进行缩写,而在别的过程中却不使用缩写。


  2、为每个过程拥有单个退出点

   •    创建单个退出点,可使过程更像是黑箱。代码的执行从一个门进来,代码的退出则从另一个门出去,因此产生的错误比较少,调试也不太难。

   •创建单个退出点的操作是非常复杂的,但是它的好处是极大的。

   •得到的好处大于你付出的努力,这种情况并不是总能碰到,因此务必充分利用它。

   •解决这个问题的办法是在每个过程中创建一个PROC_EXIT标注。

   •在这个标注下面,放入所有必要的清除代码和一个相应的Exit语句(Exit Sub、Exit Function和Exit Property)。

   •每当你需要退出该过程时,只需加上一个GoTo PROC_Exit语句,而不必直接调用Exit命令。


  3、当参数只接受较小的一组值时,请使用枚举值。

    这期间还对如何将过程封装为模块进行了讲解,对于模块块,做到高内聚低耦合,其次就是给过程如何起名字,尽量可观性强一些。

命名规范

   匈牙利命名法:它使用3字符前缀来表示数据类型和控件类型等……




    现在给对象、变量、控件等命名尽量采用匈牙利命名法,前缀三个字符小写,中间的单词手写字母大写,也就是所谓的“驼峰式”命名法。但是对于标号的命名则要全部大写,这一点需要注意。。。

    同时对于在命名时候缩写的规范,我的理解对于比较通用的而且很长的单词可以采用缩写,但是尽量少用,让阅读程序的人更加方便的知道变量的意思是什么。这一点结合着注释一起来理解就更好。

变量

   创建和使用变量时,应该设法使每个变量服务于一个定义明确的目的。

   人们希望变量能够服务于双重目的,但是它带来的节省少量内存的好处往往被代码的复杂性所抵消。

   用于多个目的的变量称为无焦点的变量。

   为变量赋予表义性强的名字

   例如Dim i AsInteger

For i = 0To rstCustomers.Fields.Count- 1

Debug.Print  rstCustomers.Fields(i).Name

Next i

Dim intIndexAs Integer

For intIndex = 0To rstCustomers.Fields.Count- 1

Debug.Print rstCustomers.Fields(intIndex).Name

Next intIndex 

   显然后者给人更强的可阅读性,对于命名时iintIndex,后者几乎不用看注释就能够知道这个变量是干什么用的。

   •即使你的代码永远不被其他人查看,也应该将它编写成可供几十个其他编程人员查看的样子。

    –类似xyi这样的变量,在由故意缩短的变量名构成的代码很难理解和维护。现在已经没有站得住脚的理由采用这种做法了。

    –这并不是说所有变量都应该使用很长的名字,你应该选用最有意义的名字,不管变量名是长是短。

   •使用

    –EmployeeAddress1、

    –EmployeeAddress2

    –SalesTotal

   •这样的名字,其好处是很明显的,这些名字比简化了的名字更具表义性。

 

   使用统一的量词

   •可能一些变量,用于跟踪一组变量中的第一个项目和最后一个项目。

   •在这种情况下,应该在变量名的结尾使用一个标准化量词。

   •通过在结尾处放置一个量词,就可以创建更加统一的变量,它们更加容易理解,也更容易搜索。

   •不正确:

DimstrFirstCustomer As String

DimstrLastCustomer As String

DimstrPreviousCustomer As String

   •正确:

DimstrCustomerFirst As String

DimstrCustomerLast As String

DimstrCustomerPreviousAs String


   用精心选择的数据类型说明变量

      •   Visual Basic为变量提供了许多不同的数据类型,在给定的情况下常常可以使用多个数据类型。

      •   为每个变量选择最佳的数据类型,就能减少对内存的需求量,加快代码的执行速度,降低出错的可能性。

      另外,不同的数据类型有着不同的资源需求,并且用于变量的数据类型可能会影响根据该变量进行计算所产生的结果。


•   若要存储任何类型的文本,请使用S t r i n g数据类型。

–  这种数据类型可以包含任何有效的键盘字符,包括数字和非字母字符

•   如果只要存放True和False这两个值,请使用Boolean数据类型。

•   若要存放不包含小数位、大于或等于-32768、小于或等于32767的数字,请使用Integer数据类型。

•   若要存放不带小数位的数字,但是数字值大于或小于Integer数据类型允许的值,请使用Long数据类型

•   若要存放包含小数位的数字,请使用Single数据类型。

–  除非你编写极其复杂的数学应用程序,需要极大的数字或者近似0的数字,否则,Single数据类型几乎适用于存放包含小数的所有值。

•   如果需要存放的数字大于Single数据类型能够存放的数字,则请使用Double数据类型。

•   若要存放美元金额,请使用C u r r e n c y数据类型。

–  该数据类型使用固定的4位小数。不过,除非指定显示4位小数的值,否则当你显示该值时,它只显示两位小数。

•   若要存放日期或时间值,请使用D a t e数据类型。

–  例如,如果存放的值是7/22/1997,Visual Basic将不把它作为简单的文本字符串来处理,它知道这代表1 9 9 7年7月2 2日。

•   如果可能,每行只说明一个变量。

•   不正确:

DimintAge As Integer, strName As String, strAddress AsString

•   正确:

DimintAge As Integer

DimstrName As String

DimstrAddress As String

对于不同的数据变量用什么样的类型去定义和变量的命名是这块我觉得最为重要的。

注释

   用注释来说明何时可能出错和为什么出错

   •由于VisualBasic所具有的性质,有些错误是不可避免的,而另一些错误则是绝对必要的。

   –例如,你决定在保存新记录之前不查看数据库中是否已经存在记录(以避免创建副本),这样就能更快地保存该记录,并且,如果该记录是个副本,就可以捕获该错误。

   注释书写规范:

   •(1) 使用完整的语句。

    –虽然不必将注释分成段落(最好也不要分成段落),但是你应该尽量将注释写成完整的句子。

   •(2) 避免使用缩写。

   •(3) 将整个单词大写,以突出它们的重要性。

    –若要使人们注意注释中的一个或多个单词,请全部使用大写字母。

    对注释进行缩进,使之与后随的语句对齐:

   •注释通常位于它们要说明的代码的前面。

    –为了从视觉上突出注释与它的代码之间的关系,请将注释缩进,使之与代码处于同一个层次上。

   •注释不是代码的附属品,它与代码是共存的关系。

    为每个过程赋予一个注释标头:

   •每个过程都应该有一个注释标头。

    –过程的注释标头可以包含多个文字项,比如输入参数、返回值、原始作者、最后编辑该过程的程序员、上次修改日期、版权信息,甚至包括程序员喜欢的颜色。

   •过程的所有注释标头都应该采用相同的格式化方法,每种信息应该与其他信息明确区分开来。


   使用内部注释来说明代码进程:

   •内部注释是最常用和最重要的注释。

   •使用内部注释可以说明过程的实现方法,使读者能够顺利通过各个不同的转折。

   •(1) 在每个I f语句的前面加上注释。

   •I f语句用于作出对程序执行流产生影响的判断。在代码中的每个I f语句前面加上注释。

   •(2) 在每个Select Case语句前面加上注释。

   •与I f语句一样,SelectCase语句用于评估对程序执行流产生影响的表达式。它们常常比I f语句更加复杂。你应该对Select Case语句加上透彻的注释。

   •(3) 在每个循环(包括F o r. . . N e x t循环和D o循环)的前面加上注释。

   •每个循环都有它的作用,许多情况下这个作用并不清楚直观。无论循环的复杂程序如何,都应该在它的前面加上一个注释来详细说明它的作用。

   •(4) 在修改了全局变量的每个语句前面加上注释。

   •如果非常需要使用全局变量,请说明你为何要修改它。这将使代码的调试容易一些。

   用行尾注释来说明变量

 

 界面的设计

   界面设计必须保持一致

   快捷键的使用以及一致性

 

    这些就是今天对于代码规范性的学习后的收获,基本上这次重构的时候这些都能用得上了,编码的规范在这次实战中必须要做的正正规规的,这也是走向职业化的一次历练,加油,通过这次对编码规则的重温,更多的是减少对写代码的恐惧已经编代码时候犹豫不决的顾虑,That is all.


这篇关于机房重构--代码规范学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109753

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学