Layered Application Architecture Design Principles¶
Layered Application Architecture (LAA) is based on core design principles
- Model driven development
- Code generation
- Code template
Having code in different layers makes it easy to have a separation between the different layers.
Model driven development¶
Development should be model driven, meaning that a developers design decision should be able to be described in the model if possible. This gives us the fact that the model also must be layered in order to fulfill the first principle about layers. To help developers change their code from the model we have introduced something we call code generation properties. By changing these properties in the model our developers can change the behavior of the generated code in the template.
The source code that is store is not possible to deploy as it is, first the deployable code must be generated by our code generator. During code generation the generator gets information from the layered models and their code generation properties and also incorporates the different files in all the included layers.
To have the code generated from a template gives many advantages.
- The code will be easy to recognize
- Changing the template makes it easier to perform performance and scalability changes to the code
- Introducing new features will be much easier to change in the template rather than changing every source file.
The template gives us recognizable code in such way as even if you developed code in one component of IFS Cloud it will be easy to follow the code in another component in IFS Cloud. This makes it easier to maintain, develop and debug code in IFS Cloud.