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 <[email protected]>
> *To:* CodeIgniter Brasil <[email protected]>
> *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 <[email protected]>
>> *To:* CodeIgniter Brasil <[email protected]>
>>  *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<http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29>
>>>> .[*citation needed<http://en.wikipedia.org/wiki/Wikipedia: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<http://en.wikipedia.org/wiki/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.netcaso 
>>>>>>> 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

Responder a