User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs:coding_conventions:start [2016/11/25 13:31]
James Irwin [Coding Conventions]
cs:coding_conventions:start [2017/04/08 12:50] (current)
Brandon Kallaher
Line 5: Line 5:
 To check if you code passes standard checks, compile using: To check if you code passes standard checks, compile using:
   rsmake roslint   rsmake roslint
-which will invoke the compiler with the code linter turned on. +This will invoke the compiler with the code linter turned on. The C++ linter will run first and will fail with an error if the linter fails and the Python linter will not be run. If the C++ code passes the linter then the Python linter will be run.
 ===== All Languages ===== ===== All Languages =====
 ===Indentation=== ===Indentation===
Line 16: Line 15:
  
 ===Trailing Spaces=== ===Trailing Spaces===
-Trailing whitespace at the end of a line is not allowed.+Trailing whitespace at the end of a line is not allowed. ​\\
 **Rational:​** most text editors will actually automatically chop the trailing whitespace when you open a file. If people aren't paying attention, this can result in them commiting a file where they made no functional changes other than to cut the whitespace, resulting in a confusing source control history. In addition, it's just a cleanliness thing. **Rational:​** most text editors will actually automatically chop the trailing whitespace when you open a file. If people aren't paying attention, this can result in them commiting a file where they made no functional changes other than to cut the whitespace, resulting in a confusing source control history. In addition, it's just a cleanliness thing.
 +
 +===Extra Newlines===
 +More than one blank line in a row is not allowed. \\
 +**Rational**:​ If you need to break up your code into logical chunks it is better to use a single newline and a comment describing the next code block.
 ===== C++ ===== ===== C++ =====
 running ​ running ​
Line 24: Line 27:
 ===== Python ===== ===== Python =====
  
- +Nodes should be defined in classes with the constructor called in the "​main"​ section. 
- +<code python> 
- +def Node(): 
- +    def __init__(): 
 +        # define pubs and subs here 
 +    ... 
 +         
 +if __name__=='​__main__':​ 
 +    rospy.init_node() 
 +    Node() 
 +    rospy.spin() ​    
 +</​code>​