Programming Style

4.3 Program Documentation  
4.3.1. A program must contain the following head comment block:

 /***************************************************
  Program Name  :
  Module  :
  Function Tree : identifies which part of the function menu tree it is called (for ASP)
  Functionality : describes the functionality provided by the program
  Parameter List : (for Components)
  Return Codes : (for Components)
  Remarks :
 ******************************************************/

4.3.2.The program should have sufficient documentation to explain different sections of the program.

4.4 Programming Style
 Provide guidelines to standardize programming style in term of file, directory, class, variable, web  control naming, constant, etc.  This would help to ease program readable and maintenance.

4.4.1. File Naming
In general, file name uses the prefix of module and followed by underscore. For example: adm_, oe_, bl_,… Files for common module do not have such prefix.

Namespace
The recommended name space for StarLight framework classes is, StarLight, followed by project name and the class name, e.g. StarLight.CommonApp.CmFunc

As for other customized classes, the namespace for both web form and class should follow the directory structure of the file. Between root directory and sub directory separated by full stop. First character for each directory name is in upper case.

Server Control Naming
Each web control must have prefix as defined below. First character for each subsequent word is in capital letter.

Controls Prefix 
Data Connector dcn_ 
Data Adapter dap_ 
Data Set dst_ 
Data View dvw_ 
Data Table dtb_ 
Data Row drw_ 
Data Column dcl_ 
TextBox txt_ 
Label lbl_ 
ListBox lbx_ 
Button (for all button types) btn_ 
Drop Down List drp_ 
Data Grid dgd_ 
Data List dls_ 
Check Box chk_ 
Check Box List cbl_ 
Radio Button rbt_ 
Radio Button List rbl_ 
Image img_ 
Panel pnl_ 
Place Holder phd_ 
Calendar cal_ 
Table tbl_ 
Validator Require Field vrf_ 
Validator Range vrg_ 
Validator Regular Expression vre_ 
Validator Custom vcu_ 
Validator Compare vcp_ 
Validator Summary vsm_  

Class property/method
First character of each word is in capital letter.
For example: Conn, SQLSelect(), GetUserID().

Local variable, parameters and query string
First character of first word is in lower case. First character of the subsequent word is in upper case. For example: sqlText, userContactNo.

Session variables
For common session that is defined in GlobalUnit must have GB_ prefix in front. First character of each subsequent word is in capital letter. For example: GB_AppRoot, GB_SysUserID.
For each module must follow the module prefix in front and first character of each subsequest word is in capital letter. For example: OE_TermEffDate.

Constant/Enum
Any declaration of constant variable or Enum data structure must be in capital letter for all of the letters.

Maximum number of lines for function/file
In order for the program to be more readable and easy to maintain, maximum number of lines of codes for function is restricted to 100 – 150 lines.  The maximum lines of codes for a file/class is 500 – 700.

Comments on codes
Comments for method is on the top of the method. The escape character used is ‘///’. It will generate and xml format of comment. This is used to automate the generation of code comment report in html format.

Comments for particular line of code use ‘//’ escape character.

For long description of codes use ‘/*… */’. Minimal use of such escape character as it can be implemented by using ‘///’.


Xml file coding standard
For all node name and attribute, use title case, similar to class public property and method naming.
Example:
 <XmlNode FirstAttribute="Value String" SecondAttribute="string value">
 </XmlNode>

Try to reduce the number of nodes.  If a field is not repetitive, store the field as a attribute instead of creating a new node for it.
Example:
 (Recommended)
 <DataSource TableName="US_FUNCROLE"></DataSource>
 
 vs

 (Not Recommended)
 <DataSource>
  <TableName>US_FUNCROLE</TableName>
 </DataSource>


Use attribute instead of node value as far as possible.  Unless the value is multiple line or very long.  For example,
 <BillInfo AcctNo="012345"></BillInfo>

 <AddressInfo>
  1 HillCrest Road
  STA
  Singapore 288893
 </AddressInfo>


For Yes/No fields, we will use Y/N (upper case) to store the value.  For example,
<ValidationInfo CheckNull="Y" CheckRange="Y" CheckFormat="N"> </ValidationInfo>

原文地址:https://www.cnblogs.com/RobotTech/p/762316.html