mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-04 05:12:30 +00:00 
			
		
		
		
	Add xCAT code standard doc page
This commit is contained in:
		
							
								
								
									
										92
									
								
								docs/source/developers/guides/code/code_standard.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								docs/source/developers/guides/code/code_standard.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
			
		||||
Code Standard for Perl
 | 
			
		||||
======================
 | 
			
		||||
 | 
			
		||||
This document gives out a ``Code Standard`` for Perl programming in xCAT. All the Perl code which is checked in to xCAT code repository should follow this standard.
 | 
			
		||||
 | 
			
		||||
This document does not give the coding rules one by one, but give a piece of example code. You need to follow the example code strictly.
 | 
			
		||||
 | 
			
		||||
This standard referred to the Perl code style from perldoc: http://perldoc.perl.org/perlstyle.html
 | 
			
		||||
 | 
			
		||||
Meanwhile, you are recommended to use following command line to tidy your code: ::
 | 
			
		||||
 | 
			
		||||
    perltidy -w -syn -g -opt -i=4 -nt -io -nbbc -kbl=2 -pscf=-c -aws -pt=2 -bbc -nolc  <orig_code> -o <formatted_code>
 | 
			
		||||
    
 | 
			
		||||
Code Standard Example: ::
 | 
			
		||||
 | 
			
		||||
    #! /usr/bin/perl
 | 
			
		||||
    
 | 
			
		||||
    # This is a perl program example to demo the recommended
 | 
			
		||||
    # style to write perl code
 | 
			
		||||
    
 | 
			
		||||
    use strict;
 | 
			
		||||
    use warnings;
 | 
			
		||||
    
 | 
			
		||||
    #--------------------------------------------------------------------------------
 | 
			
		||||
    
 | 
			
		||||
    =head3   subroutine_example
 | 
			
		||||
        Descriptions:
 | 
			
		||||
            This a subroutine to demo how to write perl code
 | 
			
		||||
        Arguments:
 | 
			
		||||
            param1: The first parameter
 | 
			
		||||
            param2: The second parameter
 | 
			
		||||
            param3: The third parameter
 | 
			
		||||
        Returns:
 | 
			
		||||
            0 - success
 | 
			
		||||
            0 - fail
 | 
			
		||||
    =cut
 | 
			
		||||
    
 | 
			
		||||
    #--------------------------------------------------------------------------------
 | 
			
		||||
    sub subroutine_example {
 | 
			
		||||
        my ($param1, $param2, $param3) = @_;
 | 
			
		||||
    
 | 
			
		||||
        print "In the subroutine subroutine_example.\n";
 | 
			
		||||
    
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    # Declar variables
 | 
			
		||||
    my $a_local_scale;
 | 
			
		||||
    my @a_local_array;
 | 
			
		||||
    my %a_local_hash;
 | 
			
		||||
    
 | 
			
		||||
    $a_local_scale = 1;
 | 
			
		||||
    
 | 
			
		||||
    @a_local_array = ("a", "b", "c");
 | 
			
		||||
    
 | 
			
		||||
    %a_local_hash = (
 | 
			
		||||
        "v1" => 1,
 | 
			
		||||
        "v2" => 2,
 | 
			
		||||
        "v3" => 3,
 | 
			
		||||
    );
 | 
			
		||||
    
 | 
			
		||||
    # Demo how to check the key of hash
 | 
			
		||||
    if (%a_local_hash and
 | 
			
		||||
        defined($a_local_hash{v1}) and
 | 
			
		||||
        defined($a_local_hash{v2}) and
 | 
			
		||||
        defined($a_local_hash{v3})) {
 | 
			
		||||
    
 | 
			
		||||
        # Calculate the sum of values
 | 
			
		||||
        my $sum_of_values = $a_local_hash{v1}
 | 
			
		||||
          + $a_local_hash{v2}
 | 
			
		||||
          + $a_local_hash{v3};
 | 
			
		||||
    
 | 
			
		||||
        print "The sum of values: $sum_of_values.\n";
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    # Demo how to check whether the array is empty
 | 
			
		||||
    if (@a_local_array) {
 | 
			
		||||
        print "Has element in array: " . join(',', @a_local_array) . "\n";
 | 
			
		||||
    }
 | 
			
		||||
    elsif ($a_local_scale) {
 | 
			
		||||
        print "The value of a scale variable: $a_local_scale.\n";
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        # None of above
 | 
			
		||||
        print "Get into the default path.\n";
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    # Call the subroutine subroutine_example()
 | 
			
		||||
    subroutine_example($a_local_scale, \@a_local_array, %a_local_hash);
 | 
			
		||||
    
 | 
			
		||||
    exit 0;
 | 
			
		||||
@@ -3,7 +3,8 @@ Code Development
 | 
			
		||||
 | 
			
		||||
.. toctree::
 | 
			
		||||
   :maxdepth: 2
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
   code_standard.rst 
 | 
			
		||||
   builds.rst  
 | 
			
		||||
   debug.rst
 | 
			
		||||
   tips.rst
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user