| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6483 人关注过本帖, 5 人收藏
标题:良好的编程习惯
只看楼主 加入收藏
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
结帖率:100%
收藏(5)
 问题点数:0 回复次数:63 
良好的编程习惯
      良好的习惯对于人的成长是非常重要的,良好的编程习惯对于我们编程能力的提高也是非常重要的。我们编程时要有良好的风格,源代码的逻辑简明清晰,易读易懂是好程序的重要标准。
     其实编程的过程中最容易忽略的还是程序的“风格”。这些东东有时让人挺烦的,刚刚放射出光茫的思想似乎被约束住了,本来是灵感发现,还要在后面罗索上半天。
     程序需要风格吗?让我们的程序写得更加平易近人,更加生动对我们的编程是大有益处的。对我们的程序学习也能起到事半功倍的作用。编程过程中遵守的不成文的标准,对于我们和他人的交流和自己的再学习都是有益无害的。毕竟有时我们写的程序不是只给自己看的,也不是一时兴起,不管以后。 好的编码可使源代码的可读性强且意义清楚,与其他语言约定相一致,并且尽可能直观。我们自己一眼能看出个大概,在别人眼中也不至于成为千古奇书。下面以VB为例,对程序风格做一下全面的概述,希望对您的编程水平的提高有所帮助。

---------------------------------------------------------------------------------------------------------
一、程序内部文档应具备的规则
1、标识符应含有含义鲜明的文字。
     含义鲜明的文字,能正确地提示程序对象所代表的实体。这对于帮助阅读者理解程序是非常重要的。如果用缩写的形式,那么缩写规则应该一致,并且应该给每个名字加注解。在VB中,主要有如下的约定:
(一)对象命名约定
     应该使用一致的前缀来命名对象,使人们容易识别对象的类型。例如我们常用控件CommandButton(命令按钮)可用cmd做为其前缀。Form以frm,Image以 img ,Label以 lbl,List Box 以lst,PictureBox以 pic,Timer以 tmr,等等,在我们编程的过程中,我们看到下面的名称cmdExit我们就知道这一定是一个命令按钮了。如果是第三方提供的控件,我们的说明最好要清晰地标出制造商的名称,以区别于我们的常用控件。
(二)常量和变量命名约定
     除了控件以外,常量和变量也是我们编程过程中经常遇到的,我们和他们打交道也是通过名字。
(1)给变量加范围前缀
     变量按其作用范围可分做三类,过程级,模块级和全局,所以我们在编程的过程中应将三者加以区别。我们在使用变量时,为了更好地体现代码重用和可维护原则,其定义范围应尽量缩小,这样将使我们的应用程序更加容易理解和易于控制。在VB应用程序中,只有当没有其他方便途径在窗体间共享数据时才使用全局变量。当使用全局变量时,在一个单一模块中声明它们,并按功能分组,给模块取一个有意义的名字。较好的编码习惯是尽可能地定模块化的代码。除了全局变量,过程和函数应该仅对传递给它们的的对象操作。在过程中使用的全局变量应该在过程起始处的声明部分标识出来。变量的作用范围前缀如下:全局 g(global) ,模块级 m(model),本地过程不需要使用。例如:gintFlag,表示全局整型变量,mstrPassword,可表示模块级字符型变量。
(2)声明所有变量原则。声明所有变量将会节省编程时间,键入错误将大大减少,我们可在程序开始写上如下语句:
     Option Explicit
     该语句要求在程序中声明所有变量。
(3)变量数据类型声明。可通过下面的前缀来做为变量的数据类标志。
     Boolean bln
     Byte byt
     Double dbl
     Integer int
     String str
(4)常量。常量的命名,可遵循与变量命名大体相同的原则。
(5)对变量和过程名作出描述。变量或过程名的主体应该使用大小写混合的形式,并且应该足够长以描述它的作用。而且,函数名应以一个动词开头。如JudgeDialog。

2、适当的注解
注解是程序员和程序读者通信的重要手段,正确的注解非常有助于对程序的理解。VB中代码注解约定如下:所有的过程和函数都应该以描述这段过程的功能的一段简明的注释开始,说明该程序是干什么的,至于是如何做的,也就是编程的细节,最好不要包括。因为可能日后我们要修改程序,这样做会带来不必要的注释维护工作,如果不修改,将提供误导信息,可能成为错误的注释。因为代码本身和后面程序中的注释将起到相应的说明作用。
     过程中的注释块应该包括如下标题:
     小节 描述内容
     目的 该过程完成什么
     假设 列出每个外部变量、控件、打开文件或其他不明显元素
     效果 列出每个被影响的外部变量、控件或文件及其作用(只有当它不明显时)
     输入 每一个可能不明显的参数。
     返回 函数返回值的说明
格式化代码
(1)标准的,基于制表位的嵌套应该包括一个嵌注释,来描述该变量的使用。
(2)变量、控件及过程的命名应该足够清楚,使得只有复杂的执行细节才需要嵌入注释。
(3).bas 模块包含包含工程的VB一般常量声明,在其起始处,应包括程序的综述,列举主要数据对象,过程、算法、对话、数据库及系统需求。

3、程序的视觉组织
     程序的视觉组织可用阶梯式,结构化的程序风格对于我们实际编程也很有意义,可极大地改善代码的可读性。主要有代码注释和一致性缩进。

---------------------------------------------------------------------------------------------------------
二、数据说明
     数据结构的组织和复杂程序是在设计期间就已经确定了的,然而数据说明的风格却是在写程序时确定的。为了使数据更容易理解和维护,有一些比较简单的原则应该遵循。
     1、数据说明的次序应该标准化。有次序就容易查阅。因此能够加速测试、调试和维护的过程。当多个变量名在一个语句中说明时,应按字母顺序排列这些变量。
     2、数据结构复杂时,应加以说明其特点和实现方法。

---------------------------------------------------------------------------------------------------------
三、语句构造
     语句构造原则:每个语句应该简单而直接,不能为了提高效率而使程序变得过分复杂。下述规则的使用有助于语句简单明了。
     1、不要为了节省空间把多行语句写在一行;
     2、尽量避免复杂的条件测试;
     3、尽量减少对“非”条件的测试;
     4、避免大量使用循环嵌套和条件嵌套;
     5、利用括号使逻辑表达式或算术表达式的运算次序清晰直观。

---------------------------------------------------------------------------------------------------------
四、输入输出
     1、对所有输入数据都进行检验;
     2、检查输入项重要组合的合法性;
     3、保持输入格式简单;
     4、使用数据结束标志,不要要求用户指定输入数据的数目
     5、明确提示交互式输入的请求,详细说明可用的选择或边界数值;
     6、当语言对格式有严格要求时,应保持输入格式一致
     7、设计良好的输出报表;
     8、给所有输出加标志;

---------------------------------------------------------------------------------------------------------
五、效率
     效率三原则:
     1、效率是性能的要求,需求分析时就应确定;
     2、效率是靠设计提高的;
     3、程序的效率和程序的简单程序是一致的。
(一)运行时间
     (1)写程序前先简化算术和逻辑表达式;
     (2)他细研究嵌套的循环,以确定是否有语句从内层移到外层;
     (3)尽量避免使用多维数组;
     (4)尽量避免使用指针和复杂的表;
     (5)使用执行时间短的算术运算;
     (6)不要混合使用不同的数据类型;
     (7)尽量使用整数运算和布尔表达式
(二)存储器效率
(三)输入输出效率
     如果用户是为了给计算机提供输入信息或为了理解计算机输入的信息,所需花费的脑力劳动是经济的,那么,人和计算机之间的通信效率就高。简单清晰是关键。

---------------------------------------------------------------------------------------------------------
六、小结
     其实风格是非常重要的,程序的外表是我们交流中不可缺少的东西。象我们常说的红颜命薄而归疚于外表太靓,也常听一些才子佳人的悲剧故事,提醒我们外表美而引出的一见钟情的浪漫不可取。可让人细想,才子佳人产生悲剧虽多,可也让人找到过心动和美好的感觉,做为一个人,活了一辈子,连那种感觉都未体验到,岂不比悲剧更加令人觉得可悲!编程亦然。
搜索更多相关主题的帖子: 习惯 
2010-10-22 10:36
huntree
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2010-8-25
收藏
得分:0 
饿 受教了貌似还没有写完啊

当时是真的,现在也是真的,就算我们没有变,世界也已经改变了。
2010-10-22 10:48
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
写完了,就这么多呢!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-10-22 10:53
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
收藏
得分:0 
额,真多,看,继续看。。。
2010-10-22 10:56
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
这篇文章是用来安慰 ioriliao 的吧?

我就是真命天子,顺我者生,逆我者死!
2010-10-22 12:31
system3288
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:140
注 册:2010-10-9
收藏
得分:0 
我也过来看看。
2010-10-22 13:20
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用BlueGuy在2010-10-22 12:31:50的发言:

这篇文章是用来安慰 ioriliao 的吧?
文章贴出来是跟大家一起学习的!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-10-22 15:57
jiangshuangz
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-10-18
收藏
得分:0 
还没写完吧!
2010-10-22 18:27
slowlyzl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:85
专家分:170
注 册:2010-10-20
收藏
得分:0 
过来学习下,本人是初学者,多学习
2010-10-22 22:02
动力天
Rank: 2
来 自:广西桂林
等 级:论坛游民
帖 子:30
专家分:11
注 册:2010-9-11
收藏
得分:0 
好贴!

爱上爱,敢想,世界就有可能!
2010-10-23 02:15
快速回复:良好的编程习惯
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019175 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved