library_architecture_mvvm_modify 0.2.4
library_architecture_mvvm_modify: ^0.2.4 copied to clipboard
MVVM Modify for Dart but you can also port to another language
Getting Starting #
- Example
- Documentation
- Later I will provide a larger project to see the true result
Documentation #
- In general, I will try to describe the architecture in detail (Modification of MVVM)
General Rules #
- Class names, Global variable names:
-
- Forbidden words (
):
- Forbidden words (
-
-
And
-
-
-
Or
-
-
-
Where
-
-
-
For
-
-
-
From
-
-
-
Parameter/Parameters
-
-
- Alternative to forbidden words (
):
- Alternative to forbidden words (
-
-
W
-
Model #
- Method names (Type:get,void,bool):
-
- Forbidden words (
):
- Forbidden words (
-
-
And
-
-
-
Or
-
-
-
Where
-
-
-
For
-
-
-
From
-
-
-
Parameter/Parameters
-
-
- Alternative to forbidden words (
):
- Alternative to forbidden words (
-
-
W
-
-
Where to apply (And)
-
- Type 'get':
-
-
- get(Named)(WhereNamed)[FromNamed][ParameterNamed]:
-
-
-
-
- () - optional
-
-
-
-
-
- [] - if available
-
-
-
-
-
- get - required word
-
-
-
-
-
- (Named) - we get primitive type or another model or briefly describe what we are taking
-
-
-
-
-
- (WhereNamed) - describe in as much detail as possible what this method does, you can use the [FromNamed] context (
And - for iteration)
- (WhereNamed) - describe in as much detail as possible what this method does, you can use the [FromNamed] context (
-
-
-
-
-
- [FromNamed] - if the method has parameters, then list (
And - for iteration)
- [FromNamed] - if the method has parameters, then list (
-
-
-
-
-
- [ParameterNamed] - what global variables were used (
And - for iteration)
- [ParameterNamed] - what global variables were used (
-
-
-
-
-
- Method name length - no more than 100 characters (if more than 100, then use numbers (Example - getNamedWhereNamedFromOneParametersTwo))
-
-
-
-
-
- Regarding duplicates - at the end add 'FIRST', 'SECOND', etc...
-
-
-
-
-
- Local variable name - named(WhereNamed)[FromNamed][ParameterNamed]
-
-
-
- Type 'void':
-
-
- operation[OtherModelOrPrimitiveType] (WhereNamed)[FromNamed][ParameterNamed]
-
-
-
-
- () - optional
-
-
-
-
-
- [] - if available
-
-
-
-
-
- operation - insert, update, delete, set, init, etc...
-
-
-
-
-
- [OtherModelOrPrimitiveType] - if your class has a model list or primitive type list parameter. But if you specify a different model or primitive type in [FromNamed] then there is no point in specifying that. If you add the same "Model" to your "ListModel" then there is no point in specifying this
-
-
-
-
-
- (WhereNamed) - describe in as much detail as possible what this method does, you can use the [FromNamed] context (
And - for iteration)
- (WhereNamed) - describe in as much detail as possible what this method does, you can use the [FromNamed] context (
-
-
-
-
-
- [FromNamed] - if the method has parameters, then list (
And - for iteration)
- [FromNamed] - if the method has parameters, then list (
-
-
-
-
-
- [ParameterNamed] - what global variables were used (
And - for iteration)
- [ParameterNamed] - what global variables were used (
-
-
-
-
-
- Method name length - no more than 100 characters (if more than 100, then use numbers (Example - operationOtherModelOrPrimitiveTypeWhereNamedFromOneParameterOne))
-
-
-
-
-
- Regarding duplicates - at the end add 'FIRST', 'SECOND', etc...
-
-
-
- Type 'bool':
-
-
- isWhereNamed[FromNamed][ParameterNamed]:
-
-
-
-
- [] - if available
-
-
-
-
-
- isWhereNamed - describe in as much detail as possible what this method does, you can use the [FromNamed] context (
And - for iteration)
- isWhereNamed - describe in as much detail as possible what this method does, you can use the [FromNamed] context (
-
-
-
-
-
- [FromNamed] - if the method has parameters, then list (
And - for iteration)
- [FromNamed] - if the method has parameters, then list (
-
-
-
-
-
- [ParameterNamed] - what global variables were used (
And - for iteration)
- [ParameterNamed] - what global variables were used (
-
-
-
-
-
- Method name length - no more than 100 characters (if more than 100, then use numbers (Example - isWhereNamedFromOneParametersTwo))
-
-
-
-
-
- Regarding duplicates - at the end add 'FIRST', 'SECOND', etc...
-
-
ListModel #
- The same rules as the 'Model'
NamedService #
- The same rules as the 'Model'
OperationEEModel(EEWhereNamed)[EEFromNamed]EEParameterNamedService #
- Forbidden words (
):
-
And
-
Or
-
Where
-
For
-
From
-
Parameter/Parameters
- Alternative to forbidden words (
):
-
W
Where to apply (And)
- Minimum two 'EE'. Maximum four 'EE' - needed as a separator that helps to quickly understand what this class does
- () - optional
- [] - if available
- Operation - insert, update, delete, set, init, etc...
- EEModel - name model
- (EEWhereNamed) - describe in as much detail as possible what this class does (
And - for iteration)
- [EEFromNamed] - if the method has parameters, then list (
And - for iteration)
- EEParameterNamedService - what service do you use (
And - for iteration)
- Global variable names - _operationModel(WhereNamed)[FromNamed]ParameterNamedService
- Local variable names - operationModel(WhereNamed)[FromNamed]ParameterNamedService
DataForMainView #
- The same rules as the 'Model'
NamedViewModel #
- How are private methods created in this class ?
-
- numberQQ${InWhatMethod?}QQ${WhichMethodTriggersTheCreationOfAPrivateMethod?}
-
-
- How are private methods to private methods created in this class ?
-
-
-
-
- numberBranchNumberQQ${InWhatMethod?}QQ${WhichMethodTriggersTheCreationOfAPrivateMethod?}
-
-
-
-
-
-
- How are private methods to private methods to private methods created in this class ?
-
-
-
-
-
-
-
-
- numberBranchNumberBranchNumberQQ${InWhatMethod?}QQ${WhichMethodTriggersTheCreationOfAPrivateMethod?}
-
-
-
-
-
- Example:
-
-
- firstQQ${InWhatMethod?}QQ${WhichMethodTriggersTheCreationOfAPrivateMethod?}
-
-
-
-
- firstBranchOneQQ${InWhatMethod?}QQ${WhichMethodTriggersTheCreationOfAPrivateMethod?}
-
-
-
-
-
-
- firstBranchOneBranchOneQQ${InWhatMethod?}QQ${WhichMethodTriggersTheCreationOfAPrivateMethod?}
-
-
-
-
- Minimum and maximum two 'QQ' - needed as a separator that helps to quickly understand what this method does
MainView #
- The same rules as the 'Model'
NamedUtility #
- Type classes (KeysNamedServiceUtility, KeysNamedUtility, NamedUtility):
-
- KeysNamedServiceUtility - a class where the keys of a specific service are stored, and the keys are distributed across models
-
-
- Example - Model 'IPAddress', Key 'Ip' (static const String iPAddressQQIp = "ip")
-
-
-
-
- QQ - needed as a separator that helps to quickly understand what this constant does
-
-
-
- KeysNamedUtility - a class whose keys belong to other classes and are attached to methods and can be used to store errors and various successes, etc.
-
-
- Example - Class 'DataForAntiDDosSystemView', Key 'GetExceptionInStringWhereNotEqualsParametersCodeAndInputCode' (static const String dataForAntiDDosSystemViewQQGetExceptionInStringWhereNotEqualsParametersCodeAndInputCode = "dataForAntiDDosSystemViewQQGetExceptionInStringWhereNotEqualsParametersCodeAndInputCode")
-
-
-
-
- QQ - needed as a separator that helps to quickly understand what this constant does
-
-
-
- NamedUtility - it could be anything
-
-
- Example - TimerUtility,InsertUserUtility (To NamedService), etc...
-