Created
September 12, 2016 18:12
-
-
Save renatodex/9f787607b79eda1f1ff25d18ee93d490 to your computer and use it in GitHub Desktop.
App Model Idea
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var AppModel = function() { | |
this.extend = function(model_setup) { | |
return function(model_data) { | |
return new factory_methods(model_setup, model_data); | |
} | |
} | |
this.factory_methods = function(model_setup, model_data) { | |
var custom_methods = model_setup["methods"]; | |
var base_methods = { | |
get: function(key){ | |
return model_data[key]; | |
}, | |
set: function(key, value) { | |
model_data[key] = value; | |
}, | |
attributes: function() { | |
return model_data; | |
} | |
} | |
return $.extend(base_methods, custom_methods); | |
} | |
return { | |
extend: extend | |
} | |
}(); |
Faz sentido uma abordagem com 1 e 2. Só acho que validação é inerente quando falamos de model, ainda que desacoplados.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
2. Sobre Validações e Atributos
Acho que validação é validação, e atributo é atributo, é mais interessante a gente separar esses conceitos, pra possibilitar uma modularização da coisa.
Pegando o exemplo da sua DSL:
Penso que poderia ser algo mais desacoplado, exemplo:
Dessa forma, teríamos mais liberdade para desacoplar os conceitos.
Tô seguindo meio que a inspiração de um cara do Meteor chamado Simple Schema. Ele usa uns blocos de Schema que são acoplados ao banco. É interessante. (https://github.com/aldeed/meteor-simple-schema)
Seguindo a abordagem do tópico anterior, a gente consegue desacoplar cada parte da definição da model, olha só que legal: