SAP UI5 General Coding Guidelines

The following blog explains some of the coding standards that should be followed while coding for SAP  UIapplications.

1. Routing and navigation:

As far as possibletry to work with navigation using component based routingFurther if an application requires more navigation within split apps like a double master or double detailuse the event bus mechanismThe navigation handling of the event bus should be specific to that split app controller and named uniquely to avoid multiple listeners for the same navigation bus.

2. Developing views in application:

While it is not mandatory that you will have to use only JSViews in all the applicationsit is however recommended to use same types of views in the same applicationsDifferent types of views in the same application will lead to problems while writing down the navigation logics.


3. Naming conventions:
The naming conventions for the applications should be as follows:
Variable namesfirst letter small and followed by camelcase on all the words.
  examples:
  • listItem (first letter small and second word first letter capital)
  • Listitem (wrongfirst letter to be small)
  • detailPageController (right)
  • detail_page_controller (wrong)

While naming parametersmake sure that the names are expressive and relevantToo much expressiveness on the variable name is also not encouraged.
EginvSplitApp is correctinvoiceOrderSplitAppController is wrong.

Class names While it is imperative that the classes be named according to the functionalityit is best to keep the names shortThe naming should be first letter capital followed by camel casing for the remaining words.
 examples:
  • invMaster
  • InvMaster
  • inv_master
Always have a naming space convention for these classesUIdevelopment by default follows that convention (egall classes in login folder to be named as login.ClassName).

Line SpacesEvery variable or local declaration needs to be put in single line as much as possible unless there is some custom filters or mapping or formatting is involvedPut single indentation for all the variables declared.

Function names: All the function names should have a verb as first word stating the general function it does (exception for Formatters and validators). EgcreateContentgetUserDetailsAll the functions need to be camel cased (same as variable names). Every function should have a brief description comment above it to state what it doesThe description should be brief and should always contain the input variable names and their type.

Referring to elements in Views: For all the JS viewsit is recommended to have the elements accessed  as member variablesUsage of global variables for referring to pages or elements is highly discouragedFor all the events on an elementgive two inputsthe function to be called and the context element that   is to be given for the functionThe context element will be referred as this  inside the function.


4. General Do's and Dont's :

  • Never have any variables outside the class (global variablesunless it is cannot be done away with.
  • Maintain all the configuration values (like meta data urletc.) as a config parameter in a separate Service class
  • When trying to customize the UIalways use class based styling by adding a new classChanging the theme classes is forbidden unless the style is applied throughout the application (like font)
  • Avoid writing ids for views created in JS views and reusable components (like side menu). You can always refer them as member variables.
  • Always have a unique name for id if it's necessaryCopy pasting is alright but always change the id parameter.
  • Custom controllers are encouraged for any kind of new functionality that may be out of the scope of UI5.
  • Do not use console.logUse jQuery.sap.log.info() or other levels for debugging purpose.
  • Make sure your code is reusable and simple. 




Comments

Popular posts from this blog

How to create Component-preload.js files for Fiori Applications

How to create a new user in Open DS LDAP server for Sybase Unwired Platform

Building Cost Effective Enterprise Mobile Applications