Avoid using internal path for your classes ** Answ** com.guidewire.* should be avoided.
These can always be potentially changed or replaced during an upgrade.
When referencing typecodes, use the static property on the typelist class instead of the string
representation ** Answ** Use TC_TYPECODE instead of "typecode", example:
LossCause.TC_REAREND instead of "rearend"
Use the text for logical operators instead of the symbols ** Answ** Use "and","or", and
"not" instead of "&&", "||", and "!"
Code placement ** Answ** 1) Avoid placing code within the CODE tab of a PCF. Create a
UI helper class instead
2) Avoid extending entity enhancements with code supporting UI operations
Avoid using deprecated classes and methods ** Answ** Guidewire will eventually remove
deprecated classes and methods.
Turn on and run Studio Inspections ** Answ** These analyze configuration resources
Use whitespace effectively ** Answ** Add spaces around operators
Do not add spaces between parentheses and operators
Indent logical blocks of code by two spaces only
Add a blank line after code blocks
Add two blank lines after methods, including the last method in a class
Comments and Annotations ** Answ** Document new classes and functions with Javadoc-
style comments
,Use single-line comments within functions and methods when you need to clarify the intent of
the code
Use GoseDoc annotations which are included when generating GosuDoc
"Upgrade-Safe" naming conventions: Add the suffix _Ext to ** Answ** Columns added to
existing entities
Typecodes added to existing typelists
The name of custom entities
The name of custom typelists
New PCF files
Script parameters
Package naming conventions ** Answ** Use the format
customer.application.featurecategory.feature
Customer - company name abbreviation
Application- InsuranceSuite application code (pc, bc, cc, suite)
Feature Category - major feature (delinquency, configuration, integration)
Feature - feature (rating, catastrophe, authentication)
Example: si.suite.integration.authentication
Class naming conventions ** Answ** Use UpperCamelCase
Do not add _Ext to classes within customer package spaces
Function naming conventions ** Answ** Use lowerCamelCase
Use a verb that describes that the function is doing i.e. verifyAddress
Do not add _Ext suffix to private functions or enhancements in customer package spaces
Variable naming conventions ** Answ** Member variable names use lowerCamelCase with
a leading underscore i.e. _pluginCallbackHandler
Local variable names use lowerCamelCase short names that describe the purpose i.e.
latestPolicyRevision
, Display key naming conventions ** Answ** Add suffix _Ext too all new display keys
Do not modify automatically generated display keys
Logging is ** Answ** The process of recording application actions and state to a secondary
interface
Logging is used for ** Answ** Application maintenance and troubleshooting
Creating statistics relating to application usage
Auditing by capturing significant events
Typical events to log are ** Answ** Success / Failure - a transaction or action has succeeded
or failed
Recovery - a system went down or connection failed, retried, and recovered
Identification - any large functional areas such as integration, rating, reinsurance, and rules
Logging components - Logger ** Answ** has a category and level, sends content to an
Appender
Logging components - Appender ** Answ** is an output destination (server console or
rolling file)
Logging components - Layout ** Answ** defines the format of the content sent to an
appender
Logging Level - Trace ** Answ** Description: Fine-grained informational events
When to use: Log method entry and exit
Logging Level - Debug ** Answ** Description: Detailed informational events
When to use: Log important steps and calculations for diagnosing problems