SlideShare uma empresa Scribd logo
Tutorial
AngularJS
Episódio 08
Serviços
SRP - WTF?!

SRP
Single Responsability Principle
Princípio da Responsabilidade Única
Uncle Bob Martin
Angular e SRP

Lembre-se: controllers são apenas a ponte de
ligação entre o model e a view.
Não devem ter lógica de negócio!
Entram os serviços
Regras de negócio?
Abstrair acesso a dados?
Compartilhar dados entre controllers?
DRY?
Seus problemas acabaram!
Serviços são para isso !!!
Pelo amor de Deus, código !

Um pequeno refactoring no nosso projeto de
estados e capitais…
http://plnkr.co/mF7WQP

Mais conteúdo relacionado

Mais de Jose Naves Moura Neto

Tutorial AngularJS - episódio 2 - mvc
Tutorial AngularJS - episódio 2 -  mvcTutorial AngularJS - episódio 2 -  mvc
Tutorial AngularJS - episódio 2 - mvc
Jose Naves Moura Neto
 
Tutorial AngularJS - episódio 2 - Hello World
Tutorial AngularJS - episódio 2 -  Hello WorldTutorial AngularJS - episódio 2 -  Hello World
Tutorial AngularJS - episódio 2 - Hello World
Jose Naves Moura Neto
 
Tutorial AngularJS - episódio 1 - ambiente
Tutorial AngularJS - episódio 1 - ambienteTutorial AngularJS - episódio 1 - ambiente
Tutorial AngularJS - episódio 1 - ambiente
Jose Naves Moura Neto
 
Tutorial AngularJS - episódio 5 - diretivas
Tutorial AngularJS - episódio 5 -  diretivasTutorial AngularJS - episódio 5 -  diretivas
Tutorial AngularJS - episódio 5 - diretivas
Jose Naves Moura Neto
 
Tutorial AngularJS - Episódio 4 - Controllers
Tutorial AngularJS - Episódio 4 - ControllersTutorial AngularJS - Episódio 4 - Controllers
Tutorial AngularJS - Episódio 4 - Controllers
Jose Naves Moura Neto
 
MEAN
MEANMEAN
Programação reativa com Meteor
Programação reativa com MeteorProgramação reativa com Meteor
Programação reativa com Meteor
Jose Naves Moura Neto
 
[Java] Contexts and Dependency Injection em JEE6
[Java] Contexts and Dependency Injection em JEE6[Java] Contexts and Dependency Injection em JEE6
[Java] Contexts and Dependency Injection em JEE6
Jose Naves Moura Neto
 

Mais de Jose Naves Moura Neto (8)

Tutorial AngularJS - episódio 2 - mvc
Tutorial AngularJS - episódio 2 -  mvcTutorial AngularJS - episódio 2 -  mvc
Tutorial AngularJS - episódio 2 - mvc
 
Tutorial AngularJS - episódio 2 - Hello World
Tutorial AngularJS - episódio 2 -  Hello WorldTutorial AngularJS - episódio 2 -  Hello World
Tutorial AngularJS - episódio 2 - Hello World
 
Tutorial AngularJS - episódio 1 - ambiente
Tutorial AngularJS - episódio 1 - ambienteTutorial AngularJS - episódio 1 - ambiente
Tutorial AngularJS - episódio 1 - ambiente
 
Tutorial AngularJS - episódio 5 - diretivas
Tutorial AngularJS - episódio 5 -  diretivasTutorial AngularJS - episódio 5 -  diretivas
Tutorial AngularJS - episódio 5 - diretivas
 
Tutorial AngularJS - Episódio 4 - Controllers
Tutorial AngularJS - Episódio 4 - ControllersTutorial AngularJS - Episódio 4 - Controllers
Tutorial AngularJS - Episódio 4 - Controllers
 
MEAN
MEANMEAN
MEAN
 
Programação reativa com Meteor
Programação reativa com MeteorProgramação reativa com Meteor
Programação reativa com Meteor
 
[Java] Contexts and Dependency Injection em JEE6
[Java] Contexts and Dependency Injection em JEE6[Java] Contexts and Dependency Injection em JEE6
[Java] Contexts and Dependency Injection em JEE6
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (6)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

Tutorial AngularJS - episódio 8 - serviços