zoukankan      html  css  js  c++  java
  • [ABAP Part TWO] Program Development Phase 2 Your Coding Style Define The Quality

    Now we step into Naming Conventions for each of obj in the program, you can understand it as a prefix string for diff type of obj.

    Naming Conventions


    Naming Conventions lend consistency and readabilty to your code. This in turn improves the overall maintainability of code. When naming your objects and variables, try to avoid arcane acronyms. Spell it out where possible.

    Refer to the table below for accepted industry standard naming conventions for objects and variables within a program.

    Program Internal Objects Convention Example
    Class - local lcl_* lcl_salesorder
    Class - Interface lif_* lif_salesorder
    Constant c_* or co_* c_open_indicator
    Data Reference dr_* dr_openorder
    Data Variables - Global v_* or gv_* v_order
    Data Variables - Local lv_* lv_order
    Data Variables - Static lsv_* lsv_order
    Field Symbols <fs_*> <fs_order>
    Internal Table - Standard t_* t_orders
    Internal Table - Sorted ts_* or to_* ts_orders
    Internal Table - Hashed th_* th_orders
    Parameters pa_* pa_order
    Ranges ra_* ra_orders
    Reference Variable rf_* rf_orders
    Select-Options so_* so_date
    Structure st_* or w_* st_orders
    Table Control tc_* tc_orderlines
    Types ty_* ty_ordertype
    Work Area w_* w_order

    Interface Parameters

    Subroutine Formal Parameters Convention Example
    Using u_* or p_*  
    Changing c_* or p_*  
    Raising r_* or p_*  
       
    Method Signature Convention Example
    Importing im_*  
    Exporting ex_*  
    Changing ch_*  
    Returning re_*  
    Raising cx_* for exception classes  
    Exceptions not applicable
       
    Function Interface Convention Example
    Importing im_*  
    Exporting ex_*
    Changing ch_*  
    Tables t_*  
    Exceptions not applicable  
    Raising not applicable

    Program Title


    The title as defined in the attributes of the program should contain a description that includes the program type and the functionality it performs. For example:

    · Data Load - Materials for Plants
    · Inbound Interface - Receive Supplier Orders
    · Report – Cost Centre Sales Breakdown

    Program Description


    High level descriptions of the program are to be kept as comments at the beginning of the program or in the documentation section of a program using the ‘Documentation’ tag label. A URL link can be provided that points to the Technical specifications, diagrams layouts, data mapping, etc. For Module Pools, the program documentation should be placed in the TOP include.From my point of view , I think everyone should follow this rule .This is a good habit.

    The Maintenance History section is to be used to document program changes as well as the initial creation of the program. Keep this documentation concise and brief. Detailed documentation should be kept in the technical spec and should be easily accessed. Version Management is used to verify releases of the code. If the change request and date are maintained in the code, then version management can be used to validate the code that changed for a given change request.

    Below are a couple of examples.

    Simple Example


    More Detailed Example

    Subroutines


    All FORMS should be self-explanatory. Use the full 30 characters to describe the form if necessary. Avoid abbreviations in the name unless you are limited for space i.e. instead of calc_avg_prc use calculate_average_price.

    When using forward navigation to create a subroutine, the system generates a proposed format for the comment section and the FORM and ENDFORM statement. It is suggested that you stick to this generated format with minimal alteration. The generated comment box should always precede the subroutine and maintained with a short description of the intent of the routine. DO NOT attempt to describe the logic of what is taking place.

    The naming convention for formal parameters varies across SAP customer sites. Although the workbench generates a proposed name for you by prefixing the variable name with “P_” , this is not commonly practiced. i.e. actual parm being passed to the form is T_MESSAGE_ID then the name of the formal parameter would be named PT_MESSAGE_ID. The workbench generates directional arrows automatically based on the parameter usage i.e. using, changing, using (value).


    Example:

    Functions/Methods


    FUNCTIONS

    Use the built in documentation features found in SE37 to document the purpose of the function modules and the usage of the Interface parameters.
    The use of naming standards for interface parameters is not a common practice, although it should be so SAPdomain recommends the following:

    Importing Parameters: IM_*
    Exporting Parameters: EX_*
    Changing Parameters: CH_*
    Tables Parameters: TB_*


    METHODS

    For Methods Use the Following naming standard for the signature of the method.

    Importing: IM_*
    Exporting: EX_*
    Changing : CH_*
    Returning: RE_*
    Raising: exception (no std)
    Exceptions: exception_class (no std)

    Modularization


    Blocks of code that are executed more than once within one program must be placed in a callable processing unit. This could be a FORM, Method, or Function.

    Subroutines are used as self-contained sections of code that perform a well defined function. They are used to organize code flow and readability.

    A Subroutine should only perform one primary process. If it is performing more than one process, then it should be divided into multiple subroutines.

    Subroutines that are used by more than one program should be placed in a Function Module or ABAP OO Method.

    PERFORM is recommended rather than inline coding for all list processing events such as Start-of-Selection, At Selection-Screen, AT User-Command, etc.

    List Processing Events Example


    .... To Be Continued

  • 相关阅读:
    linux 端口号、进程id、杀进程、查询tcp的连接(各种状态的)
    泛型---(静态方法中为什么不能引用类级别的参数)
    net.sf.json------json解析
    微信调用40001
    第十五章 泛型
    CentOS7下安装Nodejs
    CentOS7下安装RabbitMQ
    Centos7搭建FTP服务器
    Windows10下mysql-5.7.19免安装版配置
    Windows下dubbo环境搭建及初步使用
  • 原文地址:https://www.cnblogs.com/SlashOut/p/807750.html
Copyright © 2011-2022 走看看