Rules For Robust Application
Rules For A Robust Application
In order for an application to be future proof, there are some basic rules that should be followed.
1. Use value-as-cents for monetary values
Lets say that a customer is trying to insure his digital camera. One of the pieces of information that must be collected is the value of the camera.
The customer knows the value of this item in EUR. In the KASKO platform monetary values are used as cents.
This means that if the customer types in 1200.34 EUR
, it must be converted to 120034
when sent to the KASKO API.
For this to happen automatically, form-input-monetary
component can be used.
2. Field names must follow common convention
Field names must be lowercased;
Field names must use underscores;
Some field names are not acceptable (see table below);
Examples:
Wrong field names:
postal_code
postcode
postalcode
postcode
zip_code
postcode
zip
postcode
surname
last_name
3. Dates & Times
Datetime values MUST always be in UTC. Storing times in UTC has HUGE advantages compared to storing them in local timezone.
When API needs to accept a date/time value, it must always accept the date/time values formatted as ISO 8601 string. iso_date
validation rule can be used for this.
When using date input components in the frontend (i.e. form-datepicker
), the custom input is automatically converted to an ISO 8601 date if iso_date
validation rule has been set.
4. Percentages
When dealing with percentages, use decimal
values. For example, if you need to store 15%
, then you should store it as decimal 0.15
.
Rules For Defining Components
There are some rules to follow when creating a new component either custom one or internal framework component.
1. Fields
When there's need to use a name for some input field, config property name for it must be either field_name
or should end with _field_name
. And this should be in root of component config. This way framework and webapp builder know what to track.
Note: Component can have multiple fields defined this way at the same time.
Examples:
Full good example of component definition:
2. Contents
Using content keys is a crutial way to get translated text into component. For this we use content keys. These must always be defined in component config with property name content_key
or should end with _content_key
. Values for these properties can be string
or Record<string, string>
. This way our content extraction scripts and webapp builder know what keys are used.
Examples:
Full good example of component definition:
3. Child Components
Components can contain child components and must be defined in root of component config in property named components
or ending with _components
. This way framework and webapp builder know how to handle child components.
Note: For custom webapp components that contain child components with e.g. header_components
name, slot name for it will be header
.
Examples:
Full good example of component definition:
Last updated