⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edu1.htm

📁 一本关于如何养成良好编程风格的书籍
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY">1.编程原则:</P><P ALIGN="JUSTIFY">  (1)用文字说明代码的作用:</P><DIR><P ALIGN="JUSTIFY">    简单的重复代码做写什么,这样的注释几乎不能给注释增加什么信息.如果你使用好的命名方法来创建直观明了的代码那么这些类型的注释绝对增加不了什么信息.</P><P ALIGN="JUSTIFY"></P></DIR><P ALIGN="JUSTIFY">(2)如果你想违背好的编程原则,请说明为什么</P><DIR><P ALIGN="JUSTIFY">有的时候你可能需要违背好的编程原则,或者使用了某些不正规的方法,.遇到这种情况时,请用内部注释来说明你在做什么和为什么要这样做。</P><P ALIGN="JUSTIFY">&#9;&#9;技巧性特别高的代码段,一定要加详细的注释,不要让其他开发人员花很长时间来研究一个高技巧但不易理解的程序段。</P><P ALIGN="JUSTIFY"></P></DIR><P ALIGN="JUSTIFY">(3).用注释来说明何时可能出错和为什么出错</P><P ALIGN="JUSTIFY">&#9;</P><P ALIGN="JUSTIFY">(4)在编写代码前进行注释</P><DIR><P ALIGN="JUSTIFY">  给代码加注释的方法之一是在编写一个过程前首先写上注释.如果你愿意,可以编写完整句子的注释或伪代码.一旦你用注释对代码进行了概述,就可以在注释之间编写代码.</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY">(5)在要注释的代码前书写注释</P><P ALIGN="JUSTIFY">&#9;&#9;注释一定出现在要注释的程序段前,不要在某段程序后书写对这段程序的注释,先看到注释对程序的理解会有一定帮助。</P><P ALIGN="JUSTIFY">&#9;&#9;如果有可能,请在注释行与上面代码间加一空行。</P><P ALIGN="JUSTIFY"></P></DIR><P ALIGN="JUSTIFY">(6)纯色字符注释行只用于主要注释</P><P ALIGN="JUSTIFY">&#9;&#9;注释中要分隔时,请使用一行空注释行来完成,不要使用纯色字符,以保持版面的整洁、清晰。</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY">(7).避免形成注释框</P><DIR><P ALIGN="JUSTIFY">  用星号围成的注释框,右边的星号看起来很好,但它们给注释增加了任何信息吗?实际上这会给编写或编辑注释的人增加许多工作。</P><P ALIGN="JUSTIFY"></P></DIR><P ALIGN="JUSTIFY">(8)使用撇号来指明注释</P><P ALIGN="JUSTIFY">&#9;&#9;不要使用Rem语句来注释。</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY">(9).增强注释的可读性</P><P ALIGN="JUSTIFY">注释是供人阅读的,而不是让计算机阅读的。</P><OL TYPE="a"><OL TYPE="a"><OL TYPE="a"><P ALIGN="JUSTIFY"><LI>使用完整的语句。虽然不必将注释分成段落(最好也不要分成段落),但你应尽量将注释写成完整的句子。</LI></P><P ALIGN="JUSTIFY"><LI>避免使用缩写。缩写常使注释更难阅读,人们常用不同的方法对相同的单词进行缩写,这会造成许多混乱,如果必须对词汇缩写,必须做到统一。</LI></P><P ALIGN="JUSTIFY"><LI>将整个单词大写,以突出它们的重要性。若要使人们注意注释中的一个或多个单词,请全部使用大写字母。</LI></P></OL></OL></OL><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY">    (10)对注释进行缩进,使之与后随的语句对齐。</P><DIR><DIR><DIR><P ALIGN="JUSTIFY">        注释通常位于它们要说明的代码的前面。为了从视觉上突出注释与它的代码之间的关系,请将注释缩进,使之与代码处于同一个层次上。</P><P ALIGN="JUSTIFY"></P></DIR></DIR></DIR><P ALIGN="JUSTIFY">    (11)为每个过程赋予一个注释标头</P><DIR><DIR><DIR><P ALIGN="JUSTIFY">        每个过程都应有一个注释标头。过程的注释标头可包含多个文字项,比如输入参数、返回值、原始作者、最后编辑该过程的程序员、上次修改日期、版权信息。</P><P ALIGN="JUSTIFY"></P></DIR></DIR></DIR><P ALIGN="JUSTIFY">    (12)当行尾注释用在上面这种代码段结构中时,它们会使代码更难阅读。</P><P ALIGN="JUSTIFY">        使用多个行尾注释时(比如用于过程顶部的多个变量说明),应使它们互相对齐。这可使它们稍容易阅读一些。</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY">&#9;(13)何时书写注释</P><OL TYPE="a"><OL TYPE="a"><P ALIGN="JUSTIFY"><LI>请在每个If语句的前面加上注释。</LI></P><P ALIGN="JUSTIFY"><LI>在每个Select Case语句的前面加上注释。与If语句一样,Select Case语句用于评估对程序执行产生影响的表达式。</LI></P><P ALIGN="JUSTIFY"><LI>在每个循环(包括For…Next循环和Do循环)的前面加上注释。每个循环都有它的作用,许多情况下这个作用不清楚直观。</LI></P><P ALIGN="JUSTIFY"><LI>在修改了全局变量的每个语句前面加上注释。全局变量很讨厌。但如果非常需要使用全局变量,请说明你为何要修改它。这将使代码的调试容易一些。</LI></P></OL></OL><P ALIGN="JUSTIFY"></P></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"> </P></FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="CENTER"> </P></FONT><FONT FACE="黑体" LANG="ZH-CN" SIZE=4><P ALIGN="CENTER">循环结构</P><OL><OL></FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY"><LI>循环结束后不要引用计数器变量。当For…Next循环结束时,计数器变量的最后值不等于end的值,它大于或小于Step的值。</LI></P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>所有Next语句均应包含计数器变量。如果你在Next语句中省略了计数器变量,代码仍可执行,但它的可读性要差一些,因此更难维护.</LI></P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>为了清楚起见,应对For…Next循环中的代码主体语句进行缩进。每当你的代码结构拥有一个开始语句和结束语句时,就必须对代码主体语句进行缩进。</LI></P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>如果你必须提早退出For…Next循环,请使用Exit For语句。不要使用GoTo和一个标注来退出循环。</LI></P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>请在循环的开始处计Do循环的退出条件。你常可选择究竟在循环的开始处还是结尾处放置退出条件。但在循环的开始处计算退出条件,这样的循环比较容易理解。</LI></P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>当你在While和Until之间进行选择时,请使用能实现最简单的条件的这个关键字。</LI></P></OL></OL><DIR><DIR><DIR><P ALIGN="JUSTIFY">为了保持代码见格的一致性,尽可能使用While子句来完成Do.Loop循环。</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"> </P></DIR></DIR></DIR></FONT><FONT FACE="黑体" LANG="ZH-CN" SIZE=4><P ALIGN="CENTER">控制代码流</P></FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">控制代码流的目的:</P><OL TYPE="a"><P ALIGN="JUSTIFY"><LI>在规定的情况下使用正确的判断构造;</LI></P><P ALIGN="JUSTIFY"><LI>降低代码的复杂性,使之更容易阅读和调试;</LI></P><P ALIGN="JUSTIFY"><LI>最大限度的减少表达式计算中出错的机会。</LI></P><P ALIGN="JUSTIFY">1、编程原则:</P><OL><P ALIGN="JUSTIFY"><LI>当根据一个条件是True还是False来做出判断时,使用If…Then…Else</LI></P><P ALIGN="JUSTIFY">即使只有一个语句被执行,也应考虑使用End If构造。当condition的计算结果是True时,如果只有一个语句被执行,该语句可以与If放在同一行上,并且End If可以省略。但若要使代码更便于阅读,请将该语句单独放在一行上,并以Else,End If的结束。</P><P ALIGN="JUSTIFY"><LI>对非布尔表达式与各种可能的值进行比较时,使用Select Case语句.</LI></P></OL></OL><DIR><DIR><DIR><DIR><DIR><P ALIGN="JUSTIFY">Select Case可以用许多高档次的方式来使用,比如将多个结果值放在一个Case行上。</P><P ALIGN="JUSTIFY">这些条件互相之间可能毫不相关。这与Select Case结构完全相反。在Select Case结构中,通过对一个(通常是非布尔)测试表达式与Case语句中的每个表达式进行比较,从而构成了各个条件。</P></DIR></DIR></DIR></DIR></DIR><OL TYPE="a"><DIR><DIR><OL TYPE="a"><P ALIGN="JUSTIFY"><LI>即使不需要,也应在每个Select Case构造中包含Case Else语句。如果始终都加上Case Else子句,代码将更加清楚明了,就不会迫使其他编程人员去猜测为什么要处理Case语句中的没有特殊理由的结果。</LI></P><P ALIGN="JUSTIFY"><LI>所有Case语句都应使用便于理解的顺序。</LI></P><P ALIGN="JUSTIFY">不能出现条件范围大的Case子句出现在前面情况。</P><P ALIGN="JUSTIFY">如:Select  Case  lngAge</P><P ALIGN="JUSTIFY">&#9;&#9;Case is &lt;17</P><P ALIGN="JUSTIFY">&#9;&#9;Case is &lt;13</P><P ALIGN="JUSTIFY">&#9;&#9;...</P><P ALIGN="JUSTIFY">&#9;&#9;End Select</P><P ALIGN="JUSTIFY">这样的结构导致第二个Case子句不能被执行,从而产生逻辑上的错误。</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>不要编写决不会产生True结果的Case语句。</LI></P></OL></DIR></DIR></OL><OL><OL><P ALIGN="JUSTIFY"><LI>对表达式进行格式化</LI></P><P ALIGN="JUSTIFY">对表达式进行正确的格式化可以减少代码出错的可能性,增加代码的可读性。</P><OL TYPE="a"><P ALIGN="JUSTIFY"><LI>决不要将布尔表达式与True或False相比较。</LI></P><P ALIGN="JUSTIFY">如:</P><P ALIGN="JUSTIFY">错误:If  rsEmployees.Eof = True  then</P><P ALIGN="JUSTIFY">正确:If  rsEmployees.Eof  then</P><P ALIGN="JUSTIFY">布尔表达式与True或False相比较在Select Case 子句中更容易产生错误。请考虑下列代码段中的Case子句何时才能被执行?</P><P ALIGN="JUSTIFY">Select Case strName</P><P ALIGN="JUSTIFY">Case strName=&quot;John&quot;</P><P ALIGN="JUSTIFY">.</P><P ALIGN="JUSTIFY">.</P><P ALIGN="JUSTIFY">这个Case子句只有在strName值为&quot;False&quot;时才会被执行,这种结果可能与设计者的初衷大相径庭。</P><P ALIGN="JUSTIFY"></P><P ALIGN="JUSTIFY"><LI>创建的布尔变量名应反映肯定的条件而不是否定的条件。使过程变得过分复杂的一个典型例子是创建一个反映否定条件的布尔变量名。根据这种变量进行判断,就会使代码变得更加复杂。代码就增加了出错的可能性。</LI></P><P ALIGN="JUSTIFY"><LI>为了清楚起见,用括号将表达式括起来。即使不要求,也要使用括号。不要书写复杂的依靠运算符优先级来执行的表达式,在必要的位置使用括号强调其运算优先级。</LI></P><P ALIGN="JUSTIFY"><LI>GoTo标识全部使用大写字母。GoTo语句使得代码很难阅读。通过将GoTo标识全部使用大写字母,就可以减少查找过程的GoTo标识所需的工作量。</LI></P></OL></OL></OL><P ALIGN="JUSTIFY">()di</P></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P></FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="CENTER"> </P><DIR></FONT><FONT FACE="黑体" LANG="ZH-CN" SIZE=4><P ALIGN="CENTER">创建对象和工程模板</P></DIR></FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">如果要创建许多个项目,那么通过创建和使用对象和项目模板,就可以节省大量的开发时间,并增强应用程序的一致性。</P><OL><P ALIGN="JUSTIFY"><LI>使用对象模板</LI></P><P ALIGN="JUSTIFY">例如,假设创建了一个窗体对象,并希望在每次从Project菜单中选择Add Form(添加窗体)时使该窗体对象出现在Add Form对话框中,只需将窗体文件的拷贝放入Template文件夹的Forms子文件夹中。如果窗体拥有一个与其相关联的二进制文件(即.frx文件),该文件也必须放入Forms子文件夹中。若不希望对象出现在模板中,就从Template文件夹的相应子文件夹中删除或移走该对象的文件。</P><P ALIGN="JUSTIFY">当模板对象被添加给一个项目时,便创建该对象的一个新实例,对该对象所作的修改并不传给模板本身。</P><P ALIGN="JUSTIFY"><LI>设置模板文件夹</LI></P><P ALIGN="JUSTIFY">将公司的所有对象模板放入这个自定义模板文件夹中,并让所有开发人员将新文件夹的路径输入他们的Template Directory文本框。</P><P ALIGN="JUSTIFY"><LI>使用对象和项目模板的目的:</LI></P><OL><P ALIGN="JUSTIFY"><LI>代码的复用</LI></P><P ALIGN="JUSTIFY"><LI>缩短新项目和现有项目的开发时间</LI></P></OL><P ALIGN="JUSTIFY"><LI>编程原则:</LI></P><OL><P ALIGN="JUSTIFY"><LI>不要将对象模板中的特定应用程序的值或特定组件的值进行硬编码。</LI></P></OL></OL><DIR><DIR

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -