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

