关于程序撰写风格

曾听人说过这么一句话,通过一个程序员的编程风格,可以看出这个程序员有没有大量阅读和撰写程序的经验。虽不能这样一概而论,但多少可以看出编程风格的重要性。我这里说的编程风格,没有包括具体的编程思想等等,仅指的是撰写风格,也就是视觉上的风格。

也许有人会不太明白或者不肖一顾,写程序就写程序嘛,写出来的程序能正确有效地运行不就可以了,管它看起来是什么样子。其实不然,许多软件公司对员工编写的代码的风格都有硬性规定,比如规定了哪些地方要使用缩排、跳格键的长度、变量命名方式、不同功能代码间空的行数等等。这样的好处是可以统一规范不同程序员所编制的代码,便于交流和交叉修改等等。

那么好的编程风格是怎样的一个风格呢?我很难下一个准确的定义,但有几点是肯定的:编制的代码看上去要美观大方,层次分明,前后一致,清爽干净,模块清晰,便于阅读等等。下面我以我喜好的风格为出发点,详细地介绍一下。

1.缩排:

又称缩进或跳格。缩排是影响代码视觉效果的重要因素之一。我常用键盘上的按键“Tab”来完成这项工作,也有人喜欢用空格健替代之。“Tab”和空格孰优孰劣呢?我说各有各的好处:“Tab”键快捷方便,但在跳格长度设置不同的编辑器中,所表现的缩排效果不一样,甚至会发生缩排混乱;用空格来缩排,格式是固定不变的,可以写出定型的代码风格,但是需要大量重复按键,降低了编码速度。我的选择是“Tab”键,跳格长度为4格,这样程序的视觉效果很不错而且键入速度也快,至于在不同编辑器中的表现效果,只能靠统一跳格长度的设置来维持了,不过有些编辑器提供“Tab”和空格相互替换的功能,也有助于维护代码的风格。

何时使用缩排呢?当需要层次感的时候,例如:

void Alert(int i)
{
   while(i > 0)
   {
     Beep(1000, 1000);
     i --;
   }
}
   当集中定义变量的时候,例如:
int   i;
DWORD  dwData;
LPTSTR lpszName;

当函数参数过多的时候,例如:

CreateWindowEx(
   0,
   "MyClass",
   "My Window",
   WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,
   CW_USEDEFAULT,
   CW_USEDEFAULT,
   CW_USEDEFAULT,
   CW_USEDEFAULT,
   (HWND)NULL,
   (HMENU)NULL,
   hInstance,
   NULL
);

等等有助于改善可读性的地方。

2.空格:

合理的使用空格可以使程序看起来更清爽,而不是一团乱麻,一般在这些地方使用:

分隔参数,例如:

TextOut(hDC, 10, 10, "Testing...", 10);

赋值语句和表达式等,例如:

i = 10 * (123 + 100 / 5);

if((a > b) && (c < d) && (e == f))

等等需要清晰明了的地方。

3.空行:

适当的空行,可以使模块结构更明显。一般有这么几种情形:1.完成某个相对独立的操作的代码可以聚在一块儿,前后以空行隔开;2.功能相似的代码可以聚在一块儿,前后以空行隔开;3.形式相似的代码可以聚在一块儿,前后以空行隔开;4.函数与函数之间隔空行等等。

4.命名:

命名规则的情况更是难以统一了,这里只能提醒大家注意几个原则上的问题。前后一致,这一点是非常重要的,比如说你写了两个函数,一个命名为:GetXPos(),而另一个命名为:GetYPosition(),这会给人一种错觉:这两个函数不属于同一类,虽然功能上它们是相对应的;还有就是尽量做到望文生义,如果用cx或CursorX来描述光标的位置,哪个容易理解些?另外就是对于像VC的MFC编程那种已经规范了命名习惯的环境下,最好依照规范。最后,如果是本土的程序员,即使是开发本土应用程序,也最好不要使用拼音来命名,还是用英文吧,不懂的英文可以查字典嘛。

好了,其它的更深入的要领,会在不断的实践中总结出来的,希望大家取得更大的进步。

时间: 2024-10-04 01:11:27

关于程序撰写风格的相关文章

VC++.NET实现应用程序XP风格

首先,我必须说明一下:以下说的XP风格程序并非可以运行在任何Win32平台上,而是在Windows XP下运行的.有的朋友可就纳闷了,任何在Windows XP下运行都有XP风格嘛,为何要花功夫去"实现".请先看看下面两幅图 图1 图2 在开发时实现 怎么样?应该明白其中的区别了吧.为什么会这样?因为微软为Windows XP提供了Themes服务.Themes可以让程序具有"XP风格",看起来更美观,因为微软更新了Comctl32.dll(ver 6.0)这个&q

《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格

2.5 良好的Java程序代码编写风格Java和Android开发实战详解Java代码是由程序语句组成的,数个程序语句组合成一个程序块,每一个块拥有数行程序语句或注释,一行程序语句是一个表达式.变量和命令的程序代码. 2.5.1 程序语句Java程序由程序语句(Statement)组成,一行程序语句如同英文的一个句子,内含多个表达式.运算符或Java关键字(详见第3章的说明). 1.程序语句的范例一些Java程序语句的范例,如下所示: int total = 1234; rate = 0.05;

如何阅读他人的程序代码

 近日,在互联网上游荡,偶然发现一篇曾经的文章,是关于如何阅读他人程序代码的,阅后颇为受益,于是乎重新整理了一下格式,将此文转载如下:   如何阅读他人的程序代码 文/王建兴   作者简介: 王建兴,清华大学资讯工程系的博士研究生,研究兴趣包括计算机网络.点对点网络.分布式网络管理.以及行动式代理人,专长则是Internet应用系统的开发.曾参与过的开发项目性质十分广泛而且不同,从ERP.PC Game到P2P网络电话都在他的涉猎范围之内.      一.读懂程序代码,使心法皆为我所用 程序代码

全世界所有程序员都会犯的错误

程序|程序员|错误 当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记 者会,向世人自白他犯了「全世界所有男人都会犯的错误」.从来没犯过这种错误的我, 也因此常常认为自己不是个男人. 虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员 都会犯的错误」.不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是: 太依赖编译器,却不知道编译器做了哪些事. 一般来说,越高阶的程序语言,会提供越多语法上的便利,以方便程序撰写,这就俗称为 syn

C语言的编程风格

缩进格式 Tab是8个字符,于是缩进也是8个字符.有很多怪异的风格,他们将缩进格式定义为4个字符(设置为2个字符!)的深度,这就象试图将PI定义为3一样让人难以接受. 理由是:缩进的大小是为了清楚的定义一个块的开始和结束.特别是当你已经在计算机前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易. 现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在80个字符宽度的终端屏幕上看程序很难受.回答是,但你的程序有3个以上的缩进的时候,你就应该修改你的程序. 总之,8个字

用JBuilder高效率开发Java程序

牛人总会说:"开发Java程序我只选用.记事本".然而我们认为如果你能够利用记事本创建一个HelloWorld程序,那么在今后的开发当中你大可不必使用记事本来创建你的应用程序,这只能给你带来很大的麻烦.使用先进的编辑工具会大大提高程序撰写的效率.JBuilder中提供了CodeInsight与"程序代码模板"来提升Java程序撰写效率. CodeInsight提供的功能: MemberInsight:(Ctrl+H)提供目前可用的成员方法在某个对象名称后面按下句点时

运用JavaScript构建你的第一个Metro式应用程序(onWindows 8)(二)

原文 http://blog.csdn.net/zhangxin09/article/details/6793330 先前的学习中,我们已经了解了 Metro式的 JavaScript 应用程序大致如何,以及通过使用 Microsoft Visual Studio 11 Express for Windows Developer Preview 搭建你的应用程序.接下来要探讨的是,把  Windows 平台的所提供的功能,呈现在您眼前,为扩展您的程序而准备! In the previous to

程序员接私活经验谈[转]

关键字:程序员 私活 经验 外包作者:  row@csdn标题:个人外包项目全记 - Best Partner 地址:http://www.cnblogs.com/txw1958/archive/2012/11/06/programmer-personal-work.html 正文:(一)项目确立 一年前,CSDN的外包频道,一家贸易公司寻求开发业务系统.我注意到这家公司和我正好在一个城市,索性就跟了一帖,写了点简要的个人开发情况,当然最重要的是附上了自己的手机号码(当时CSDN外包频道还不限制

《C++编程风格(修订版)》——导读

前言 C++编程风格(修订版) 本书采用一种统一的方法来给出所要学习的内容.通过研究示例程序--"编程风格示例"--来引入每个学习主题,这些示例程序通常在某些重要的方面存在着缺陷.在分析程序时,我们采取了与做代码交叉审查时一样的思路:在审查同事的代码时,我们要找出哪些问题是最需要改正的,以及对程序的哪些部分进行修改才能最大程度提升程序的整体性能.在本书中,我们将对每个示例程序做详尽的阅读和分析.读者在阅读书中对示例程序的分析之前,可以首先从自己的角度去分析程序中的问题,然后试着给出自己