PHP头条
热点:

编写超级可读代码的15个最佳实践(1)


代码可读性是一个计算机编程世界的普遍主题。它是我们作为开发者第一件学习的事情。这篇文章将阐述编写可读性代码十五个最重要的最佳实践。

 

1. 注释和文档

集成开发环境IDE在过去的短短几年里走过了很长的路。它使得注释代码比以前更加有用。依照特定标准书写的注释允许IDE和其他工具通过不同的方式来使用它们。

考虑如下示例:

 

我在函数定义中添加的注释可以在调用它的地方看到,即便是在其他文件中。

这里是我另外一个从第三方库中调用函数的例子:

 

在这些特殊的例子中,使用的注释(或者文档)类型基于PHPDoc,IDE是Aptana。

2 . 一致的排版

我假定你已经知道了你必须要缩进你的代码。然而,保持排版样式一致仍然是一个好主意。

这里有不止一种方式来进行代码排版。

第一种:

  1. function foo() {  
  2.     if ($maybe) {  
  3.         do_it_now();  
  4.         again();  
  5.     } else {  
  6.         abort_mission();  
  7.     }  
  8.     finalize();  

第二种:

  1. function foo()  
  2. {  
  3.     if ($maybe)  
  4.     {  
  5.         do_it_now();  
  6.         again();  
  7.     }  
  8.     else 
  9.     {  
  10.         abort_mission();  
  11.     }  
  12.     finalize();  

第三种:

  1. function foo()  
  2. {   if ($maybe)  
  3.     {   do_it_now();  
  4.         again();  
  5.     }  
  6.     else 
  7.     {   abort_mission();  
  8.     }  
  9.     finalize();  

我曾经使用第二种样式但是最近换为第一种。但是这仅仅只代表了一种偏爱。这里并没有每个人必须要遵守的“最好的”样式。事实上,最佳的样式,就是一致的样式。如果你是一个小组的一部分或者你在为一个项目贡献代码,你必须依照这个项目之前使用的样式。

排版的样式总不是完全和另外一个不同。有时,它们混合了多种不同的规则。例如,按照PEAR编码标准,前括弧“{”和控制结构在同一行上,但是在功能定义后放在第二行上。

PEAR样式:

  1. function foo()  
  2. {                     // placed on the next line  
  3.     if ($maybe) {     // placed on the same line  
  4.         do_it_now();  
  5.         again();  
  6.     } else {  
  7.         abort_mission();  
  8.     }  
  9.     finalize();  

同时注意它们使用4个空格而不是Tab来缩进。

这里http://en.wikipedia.org/wiki/Indent_style有一个维基百科的文章,里面有许多不同排版样式的例子。

3. 避免显而易见的注释

为代码添加注释是效果显著的;但是,它可能太过或者只是多余的文本。像如下例子:

  1. // get the country code  
  2. $country_code = get_country_code($_SERVER['REMOTE_ADDR']);  
  3. // if country code is US  
  4. if ($country_code == 'US') {  
  5.     // display the form input for state  
  6.     echo form_input_state();  

如果注释内容都是显而易见的,它们并没有提高工作效率。如果你必须要注释这些代码,你可以简单的把它们合并在一行:

  1. // display state selection for US users  
  2. $country_code = get_country_code($_SERVER['REMOTE_ADDR']);  
  3. if ($country_code == 'US') {  
  4.     echo form_input_state();  

4. 代码分组

确定的任务多半需要多行代码。使用一些空白将这些任务的代码分隔为几段是一个好主意。

这是一个简单的示例:

  1. // get list of forums  
  2. $forums = array();  
  3. $r = mysql_query("SELECT id, name, description FROM forums");  
  4. while ($d = mysql_fetch_assoc($r)) {  
  5.     $forums []= $d;  
  6. }  
  7. // load the templates  
  8. load_template('header');  
  9. load_template('forum_list',$forums);  
  10. load_template('footer'); 

在每一段之前添加注释也增强了视觉上的分隔。

5. 命名的一致性

PHP有些时候在遵守命名一致性方面有很大问题:

strops()和str_split()

imagetypes()和image_type_to_extension()

首先,这些命名必须有单词的分界线。有两种流行的选择:

骆驼命名法:除了第一个单词外,每个单词的第一个字符大写。

下划线命名法: 单词间采用下划线,例如mysql_real_escape_string()。

像我之前提到的一样,采用不同的命名选择会创建和排版样式类似的情形。如果一个已有的项目遵照一个确定的习惯,你必须遵守它。同时,某些语言平台倾向于使用特定的命名规则。例如Java里,大多数代码使用骆驼命名法;在PHP里大多采用下划线命名法。

它们也可以混用。一些开发者喜欢在程序函数和类名上使用下划线命名,但是在类方法名上使用骆驼命名。

  1. class Foo_Bar {  
  2.     public function someDummyMethod() {  
  3.     }  
  4. }  
  5. function procedural_function_name() {  

所以,没有明显的“最好的”样式,只需要保持一致。


www.phpzy.comtrue/php/9915.htmlTechArticle编写超级可读代码的15个最佳实践(1) 代码可读性是一个计算机编程世界的普遍主题。它是我们作为开发者第一件学习的事情。这篇文章将阐述编写可读性代码十五个最重要的最佳实践。...

相关文章

相关频道:

PHP之友评论

今天推荐