1.1 objectives and requirements
Why coding standards?
Coding standards are especially important for programmers for the following reasons:
-80% of the cost for a software life cycle is maintenance.
-Almost no software is maintained by the original developer throughout its lifecycle.
-Coding specifications can improve the readability of software and allow programmers to understand new code as soon as possible.
-If you release the source code as a product, you need to ensure that it is well packaged and clear, just like any other product you have built.
In order to implement the specification, each software developer must comply with the encoding specification.
This is a standard for forcible execution, not a guide. When our standards do not adapt, we can discuss and modify standards. However, existing standards must be implemented.
1.2 check list
File Type |
Serial number |
Normative points |
References |
JAVA files |
1 |
Whether the JAVA file has the required copyright and version information ("head" for short "). |
1.3 |
2 |
After each modification to the JAVA file, do you want to add the modification information to the HISTORY of "head. |
1.3 |
3 |
Whether the "class", "class variable", and "Method" in the JAVA file comply with the standard annotations. |
1.4 |
4 |
Whether there are a certain number of annotations in the "method. |
1.4 |
5 |
Whether the elements in the JAVA file comply with the JAVA Naming rules. |
1.5 |
6 |
Whether the entire writing format and the sequence of elements in a JAVA file are standardized. |
1.6 |
1.3 copyright and version information of JAVA files ("Header" for short ")
The Copyright and version information must start with the java file. Other information that does not need to appear in javadoc can also be included here.
All header files can be automatically generated. For more information, see <Introduction to automatic release of new classes created by eclipse.rar>
For example:
/*
* Author: wufengt
* Created Date: 2008-12-1 *
* History:
*------------------------------------------------------------------------------
* Date | Author | Change Description
* 20051212 | wuf | optimized encoding format
* 20051215 | wuf | optimizes the encoding format again.
*/
1.4 JAVA file annotation specifications
1. Class Annotation
Class annotations are generally used to explain the class. They mainly include the function descriptions, precautions, and usage examples of some important functions of the class.
/**
* Comment content
*/
Public class CounterSet extends Observable implements Cloneable {
...
}
2Annotation of member variables
Public member variables must generate a document (JavaDoc ). The member variables defined by proceted, private, and package can be annotated using general annotations or JavaDoc. All member variables must be annotated.
// Operation Status flag: 0. New, 1. Modify, 2. View
Protected long modifyStatus = 0;
/**
* Number of entries per page
*/
Public Int pageSize = 0;
3. Method Annotation
All methods must be annotated using JavaDoc, and all methods must be annotated.
/**
*Save a session Object
* @ Param keyVariable name
* @ Param valInput the corresponding object
*/
Public void setSessionValue (String key, Object val ){
...
}
4. Method internal comments
A complex method must contain a certain number of comments. You can use a single line or multiple lines of comments. The content of the comment must be clear, clear, and accurate, so as to prevent the ambiguity of the comment. Keep comments adjacent to the code described by them, that is, the proximity principle of comments. Comments to codes should be placed at the top of the code and should not be placed below; comments to each variable in the structure should be placed on the right side of the variable; comments to different fields in the same structure should be aligned. Two annotation methods are generally used:
// Comment a row
/* ...... */Annotate several rows
5. Javadoc annotation label syntax
@ Author the description of the class indicates the author who developed the class module.
@ Version the description of the class indicates the version of the class module.
@ See references to classes, attributes, and methods, that is, related topics
@ Param: Description of a parameter in the other method
@ Return description of the method description of the return value of the Method
// @ Exception description of methods to describe possible exceptions thrown by methods
1.5 naming rules for JAVA Elements
General naming conventions:
1) try to use the complete English Descriptor
2) use terminology applicable to relevant fields
3) use a mix of upper and lower case to make the name readable
4) Try to use less abbreviations, but if you use them, use them wisely and unify them throughout the project.
5) Avoid using long names (preferably less than 15 letters)
6) Avoid using similar names, or simply name different cases.
7) Avoid using underscores (except static constants)
Naming rules:
Element name |
Naming rules |
Example |
Package) |
A complete English descriptor should be composed of lowercase letters. For global packages, reverse your Internet domain name and connect the package name. |
Com. srt. moa. action |
Class) |
The complete English descriptor is used, and the first letter of all words is capitalized. |
Customer, SavingsAccount |
Interface) |
It is encapsulated using the complete English descriptor description interface, and the first letter of all words is capitalized. Traditionally, the name is followed by the suffix "able", "visible", or "er", but this is not necessary. (No Interface suffix is required) |
Contactable, Prompter |
Exception) |
E is usually used to indicate exceptions. |
E |
Class variable |
The fields are described in full English. The first letter is lowercase and the first letter of any intermediate word is uppercase. |
FirstName, LastName |
Local variable |
Naming rules for similar variables |
|
Obtain and set member functions |
Get is prefixed with get before the field name to be accessed by the member function. To obtain all the Boolean Functions of the member function, the word is prefixed with "is. Set the prefix set before the field name accessed by the member function. (Automatically generated using eclipse) |
GetFirstName (), GetLastName () IsPersistent (), IsString () SetFirstName (), SetLastName (), SetWarpSpeed () |
Common member functions |
Ordinary member functions use a complete English description to describe member functions. The first word uses a vivid verb as much as possible, and the first letter is in lowercase. |
OpenFile (), AddAccount () |
Static constant field (static final) |
All words are separated by underscores. |
MIN_BALANCE, DEFAULT_DATE |
Cyclic counter |
Generally, I, j, k, or counter are acceptable. |
I, j, k, counter |
Array |
The array should always be named in the following way: byte [] buffer; Instead: Byte buffer []; |
Byte [] buffer |
1.6 JAVA typographical specifications and sequence of Elements
1. Typographical specifications
2. Add spaces between keywords and operators.
2. Empty lines are added between relatively independent blocks.
2. Long statements and expressions should be written into multiple lines of books.
2. The new lines should be indented to make the layout neat and the statement readable.
2. A long expression divides a new line at the lower-priority operator, which is placed at the beginning of the new line.
2. If a long expression or statement exists in statements such as loop and judgment, appropriate division is required.
2. If the parameters in a function or process are long, appropriate division is required.
2. You are not allowed to write multiple phrase sentences in one row, that is, only one statement can be written in one row.
2. The code in the statements such as the start of a function or process, the definition of the structure, and the cycle and judgment should adopt the indent style.
2. the JAVA language uses braces '{' and '}' to define a block. When writing a block, '{' and
'}' Each row must have an exclusive row in the same column and be left aligned with the statements that reference them. At the beginning of the function body, the definition of the class, the definition of the structure, the definition of enumeration, and the programs in the if, for, do, while, switch, and case statements must adopt the above indent method.
If (I> 0) {I ++}; // error, {And} are in the same row
If (I> 0)
{
I ++
}; // Correct, {separate row
If (I> 0 ){
I ++
}; // Correct, {separate row
2. Element order
/* Copyright version information */
Package/Imports
Class Definition (including extends and implements public class CounterSet in different rows)
Extends Observable
Implements Cloneable
{
Class Fields)
Constructor
Clone Method
Class Method
Access Method (get/set Method)
ToString Method
Main Method
}
Attachment:
Sun (Java coding Specification): http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html