In dialogs many input validation rules are used. Some (input) validations will be defined within the domain layer and used within dialogs (interface layer), others are only defined and used within dialogs (e.g. correct birthday, telephone numbers, etc.). Validation rules defined within the domain layer will cause coupling between dialogs and business rules which will leads to many undesirable effects.
Context
Input validations and suport attributes.
op een plek definieren zodat onderhoud eenvoudig is. Weinig werkt.
Validatie service
Different rules exists in every layer within the clean architecture.
Interface layer
(front-end)
Application layer
Domain layer
Input validation
Format validation (e.g. correct phone number, IBAN, postcode)
Type validation (e.g. only string is allowed)
Input required
Value validation (e.g. age > 18)
Can we process this value?
Authorization/authenticatie rules
Can this user (role) see/modify this?
Can they overrule these warnings?
Process rules
What is the next step?
Which activity is not allowed?
Deducation/integrity/calculation rules
e.g. Product/underwring/policy/law rules
declarative rules
Are the various choices compatible?
Is this application acceptable?
Calculation
Decision based on policy rule
Eigenschap
Omschrijving
Kennis ontsluiting
Implicit vs explicit call
Simple/Complex parameter
Truth maintenance
Implementatie kenmerken
Testable
Front-end and business rules are independently testable.
Maintainable
Business rules are easy to maintain. Front-end and domain logic are not intertwined.
Out of the box
Problem
Content of a value list changes more often compared to the application which uses the value list. Seperating application behaviour from maintenance of value list content which could be depend on external resources.
Solutions
Voor de oplossing wordt rekening gehouden met de kenmerken die benoemd zijn in de tabel onder "Context".
Er zijn verschillende oplossingen mogelijk waarbij de bovenstaande kenmerken in meer- of mindere mate gerealiseerd kunnen worden. Per geval dient de best passende oplossing te worden gekozen. In de tabel hieronder worden de belangrijkste eigenschappen getoond en hoe elke oplossing daarop scoort.
Pim:
Validatieregels
Property
Support attributes
Validation service
Knowledge
Implicit vs explicit call
implicit
explicit
Simple/Complex parameter
Truth maintenance
Implementation
property
Testable
*
Maintainable
/
*
Out of the box
*Business rules implemented in code, not in Blueriq.