E é por isso que alguns frameworks criam outra camada além do Model, a
de Persistência. Aí fica mais bem separado ainda! :).

Realmente essa discussão já foi abordada aqui na lista... quem quiser
pode procurar no histórico.


2009/2/5 Cleyverson Costa <[email protected]>:
> OK Valeu!
>
> 2009/2/5 Eric Saboia (Fortes Informatica) <[email protected]>
>>
>> Cleyverson,
>> se você usa Active Record, teoricamente a mudança entre banco de dados é
>> transparente. além disso, nada impede que você isole as querys das regas de
>> negócio... da uma lida sobre DDD.
>>
>> Valeu!
>>
>> ----- Original Message -----
>> From: Cleyverson Costa
>> To: CodeIgniter Brasil
>> Sent: Thursday, February 05, 2009 3:32 PM
>> Subject: Re: [CodeIgniter] MVC de verdade
>> Mas pensem, se eu colocar a validação dentro do model e quiser trocar o
>> banco de dados...???
>>
>> Isso vai me dar uma grande dor d cabeça...
>>
>> Regra de negocio eu chamo de validações, ifs e elses etc que vai dizzer o
>> que fazer...pra mim nao ta tendo logica isso ficar dentro do model.
>>
>> Abraços
>>
>> 2009/2/5 Eric Saboia (Fortes Informatica) <[email protected]>
>>>
>>> Se os "criadores" do CI trabalham de forma errada, porque algum de nós
>>> faria diferente? Fiquei com a pulga atrás da orelha agora em relação ao CI
>>> :(
>>>
>>> ----- Original Message -----
>>> From: Vinicius Cruz
>>> To: CodeIgniter Brasil
>>> Sent: Thursday, February 05, 2009 3:00 PM
>>> Subject: Re: [CodeIgniter] MVC de verdade
>>> Acho que aprendi tudo errado ... O_o
>>> O sistema aqui do trampo tá igual ao Bamboo.
>>>
>>> 2009/2/5 Luciano Soares <[email protected]>
>>>>
>>>> Mais informações
>>>>
>>>> http://java.sun.com/blueprints/patterns/MVC-detailed.html
>>>>
>>>>
>>>> Participants & Responsibilities
>>>>
>>>> The MVC architecture has its roots in Smalltalk, where it was originally
>>>> applied to map the traditional input, processing, and output tasks to the
>>>> graphical user interaction model. However, it is straightforward to map
>>>> these concepts into the domain of multi-tier enterprise applications.
>>>>
>>>> Model - The model represents enterprise data and the business rules that
>>>> govern access to and updates of this data. Often the model serves as a
>>>> software approximation to a real-world process, so simple real-world
>>>> modeling techniques apply when defining the model.
>>>> View -The view renders the contents of a model. It accesses enterprise
>>>> data through the model and specifies how that data should be presented. It
>>>> is the view's responsibility to maintain consistency in its presentation
>>>> when the model changes. This can be achieved by using a push model, where
>>>> the view registers itself with the model for change notifications, or a 
>>>> pull
>>>> model, where the view is responsible for calling the model when it needs to
>>>> retrieve the most current data.
>>>> Controller - The controller translates interactions with the view into
>>>> actions to be performed by the model. In a stand-alone GUI client, user
>>>> interactions could be button clicks or menu selections, whereas in a Web
>>>> application, they appear as GET and POST HTTP requests. The actions
>>>> performed by the model include activating business processes or changing 
>>>> the
>>>> state of the model. Based on the user interactions and the outcome of the
>>>> model actions, the controller responds by selecting an appropriate view.
>>>>
>>>> 2009/2/5 Luciano Soares <[email protected]>
>>>>>
>>>>> Bom nesse link da wikiedia em ingles explica o tradicional modelo MVC
>>>>> (que é diferente daquele implementado pelo CI devido as restrições de não
>>>>> criãção de observers em PHP)
>>>>>
>>>>> http://en.wikipedia.org/wiki/Model-view-controller
>>>>>
>>>>> As a design pattern
>>>>>
>>>>> MVC encompasses more of the architecture of an application than is
>>>>> typical for a design pattern.[citation needed]
>>>>>
>>>>> Model Is the domain-specific representation of the information on which
>>>>> the application operates. Domain logic adds meaning to raw data (for
>>>>> example, calculating whether today is the user's birthday, or the totals,
>>>>> taxes, and shipping charges for shopping cart items). Many applications 
>>>>> use
>>>>> a persistent storage mechanism (such as a database) to store data. MVC 
>>>>> does
>>>>> not specifically mention the data access layer because it is understood to
>>>>> be underneath or encapsulated by the model. View Renders the model into a
>>>>> form suitable for interaction, typically a user interface element. 
>>>>> Multiple
>>>>> views can exist for a single model for different purposes. Controller
>>>>> Processes and responds to events (typically user actions) and may 
>>>>> indirectly
>>>>> invoke changes on the model.
>>>>>
>>>>> 2009/2/5 Luciano Soares <[email protected]>
>>>>>>
>>>>>> Controladores se preocupam apenas com o fluxo das operações dentro de
>>>>>> um modelo MVC.
>>>>>>
>>>>>> O modelo é onde ficam as regras de negócio.
>>>>>>
>>>>>> 2009/2/5 Cairo Noleto <[email protected]>
>>>>>>>
>>>>>>> No Rails, os métodos de um controller são chamadas de actions, que
>>>>>>> realmente passam a ação do que se vai fazer, em um crud temos as 
>>>>>>> seguintes
>>>>>>> ações:
>>>>>>> Create, Read, Update e Destroy.
>>>>>>>
>>>>>>> no rails teríamos os seguintes métodos
>>>>>>>
>>>>>>> def index
>>>>>>> end
>>>>>>> def new
>>>>>>> end
>>>>>>> def edit
>>>>>>> end
>>>>>>> def save
>>>>>>> end
>>>>>>> def destroy
>>>>>>> end
>>>>>>> def show
>>>>>>> end
>>>>>>>
>>>>>>> Isso seria as ações da aplicação.
>>>>>>>
>>>>>>> "Um colaborador pode criar uma nova venda" sales/new
>>>>>>> "Um colaborador pode vizualizar uma venda" sales/1/show
>>>>>>> "Um colaborador pode editar uma venda" sales/2/edit
>>>>>>> "Um colaborador pode excluir uma venda" sales/1/destroy
>>>>>>>
>>>>>>> Claro que isso é a grosso modo, hoje existe formas melhores de se
>>>>>>> fazer isso no rails usando o conceito de rest web service. Mas idéia é
>>>>>>> justamente essa, fazer com que um determinado controle expresse apenas 
>>>>>>> as
>>>>>>> ações
>>>>>>>
>>>>>>> 2009/2/5 Cleyverson Costa <[email protected]>
>>>>>>>>
>>>>>>>> Eric,
>>>>>>>>
>>>>>>>> De tudo o que ja li, o uso correto é da seguinte forma:
>>>>>>>>
>>>>>>>> Model >> Aqui tem basicamente as chamadas ao BD. Pense na se
>>>>>>>> seguinte situação. Opa minha empresa vai mudar de banco de dados, 
>>>>>>>> entao as
>>>>>>>> consultas SQL deverao ser modificadas. Se vc tiver no model apenas as
>>>>>>>> chamadas ao banco, vc modifica apenas esta camada. Vc modifica os sql 
>>>>>>>> e todo
>>>>>>>> o resto continua funcionando.
>>>>>>>>
>>>>>>>> Controller >> Aqui ficam as regras de negocio e validações etc. Tudo
>>>>>>>> fica aqui. Esta é sua camada de negocio.
>>>>>>>>
>>>>>>>> View >> Aqui fica a apresentação. Muita gente acaba colocando o
>>>>>>>> utf8_encode/decode na view, mas acho que nao seria uma boa pratica. 
>>>>>>>> Quanto
>>>>>>>> mais limpo vc puder deixar a view (usando o controller) melhor.
>>>>>>>>
>>>>>>>> Depois de muito apanhar esta foi a forma que eu acabei achando como
>>>>>>>> mais correta. Estou usando esta estrutura no site www.ezmatch.net caso
>>>>>>>> queira dar uma olhada.
>>>>>>>>
>>>>>>>> Abraços
>>>>>>>>
>>>>>>>> 2009/2/5 Eric Saboia (Fortes Informatica)
>>>>>>>> <[email protected]>
>>>>>>>>>
>>>>>>>>> Pessoal, pedi antes de ontem um exemplo de aplicação bem feita em
>>>>>>>>> CI, me indicaram o http://www.bambooinvoice.org/ . Eu estava querendo 
>>>>>>>>> checar
>>>>>>>>> o uso do MVC dentro de uma aplicação em CodeIgniter, mas me deparei 
>>>>>>>>> com o
>>>>>>>>> mesmo "erro" que julgava estar acontecendo aqui na empresa. O 
>>>>>>>>> controller tá
>>>>>>>>> cheio de regras de negócio, assim como validações e etc. Isso tudo não
>>>>>>>>> deveria estar no Model? Pois até onde sei o modelo representa tanto a
>>>>>>>>> persistência, quanto o negócio, enquanto o Controller é responsável
>>>>>>>>> unicamente pelo fluxo da aplicação.
>>>>>>>>>
>>>>>>>>> Opniões?
>>>>>>>>> Eric Saboia
>>>>>>>>> Desenvolvimento Web
>>>>>>>>> Fortes Informática (Fortaleza)
>>>>>>>>> Fone: (85) 4005-1111
>>>>>>>>> [email protected]
>>>>>>>>> www.grupofortes.com.br
>>>>>>>>> _______________________________________________
>>>>>>>>> Lista mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Lista mailing list
>>>>>>>> [email protected]
>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Cairo Noleto
>>>>>>> =========
>>>>>>> Cairo'sBlog - http://www.caironoleto.com/
>>>>>>> Web developer - Add4 Comunicação - http://www.add4.com.br/
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Lista mailing list
>>>>>>> [email protected]
>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Lista mailing list
>>>> [email protected]
>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>
>>>
>>> ________________________________
>>>
>>> _______________________________________________
>>> Lista mailing list
>>> [email protected]
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>> _______________________________________________
>>> Lista mailing list
>>> [email protected]
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>
>> ________________________________
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>



-- 
Newton Wagner

skype: newtonwagner
msn/gtalk: [email protected]

http://www.newtonwagner.net/
- http://www.owshit.com.br/

_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a