关于程序撰写风格

2016-02-19 17:18 0 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的关于程序撰写风格,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

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

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

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

  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.空格:

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  分隔参数,例如:

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

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

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

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

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

  3.空行:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

  4.命名:

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

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

来源:https://www.tulaoshi.com/n/20160219/1614917.html

延伸阅读
标签: 电脑入门
声明:本人完全是拿自己的电脑跟QQ号做的试验,绝没有盗号~!为避免再次被删,盗号简为DH,木马为MM。 1.防盗号 现在流行的DH工具都需要发送文件给对方,让对方执行后才可以运作。所以~最重要的就是不要接不信任的人以发送文件形式发过来的东西,特别是骗你说是美女图啦~我的照片啦之类的东西。 一般图都不大,真要想发,...
标签: ASP
  其实这是每个人都能想到的问题. 写出来的目地,是为了解决即将开发的那个C2C平台里安全性问题的一个方面----源代码泄漏. 为了避免源代码的泄漏和提高运行效率,可以将ASP程序的部分核心程序封装在DLL文件里.目前比较常见的方式是使用VB来封装ASP代码. 在windows的系统下安装了IIS后就应该有了Microsoft Active Server Pages Object Li...
标签: Web开发
网页三剑客以其简单易学迅速被广大爱好者所青睐,尤其是DW已成为初学者制作网站的首选工具。但我们在用DW制作ASP+access程序时,经常会出现这样或那样的错误,尤其是数据库方面显得特别突出。本文就此方面出现的一些常见的问题谈谈其原因及解决办法。 一、上传网页时出现如下错误:Microsoft OLE DB Provider for ODBC Drivers (0x8000...
标签: Web开发
对于大多数个人站长来说,可以确定的是都不是枪手,可以肯定的是都不是写手,可以十分明确的是都是采集高手.但是采集的内容在做网站这行来说,谣传是不容易被搜索引擎收录的,特别是在新站初期,归结下来新手站长前期一定要注意网站内容的原创性,原创估计大多数站长是不太可能的,那实在没有办法个人站长前期只有先充当非专业网站编辑了,...
一、J2ME中需要的Java基础知识 现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明。 J2ME中使用到的Java基础知识: 1、Java语法基础:包括基本数据类型、关...

经验教程

719

收藏

60
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部