SlideShare una empresa de Scribd logo
1 de 25
Conceitos básicos da linguagem Scala
David Padilha Coelho de Lucca
Confidencial © UNEAR 2014
Confidencial © UNEAR 2014
O que é Scala?
• Linguagem criada em 2001 por Martin Odersky na
Escola Politécnica de Lousana;
• Roda na JVM;
• Compatível com as bibliotecas Java;
• Tem sido adotado por grandes empresas.
Confidencial © UNEAR 2014
Por que utilizar Scala?
• Linguagem híbrida;
• Independente do SO;
• Suporta as bibliotecas Java;
• Código mais limpo e conciso do que em C# ou Java;
• Open-Source;
• Fácil de entender;
Confidencial © UNEAR 2014
Quem utiliza Scala atualmente?
Confidencial © UNEAR 2014
Confidencial © UNEAR 2014
Migração C# para Scala
• Apenas alguns componentes;
• Performance;
• Escalabilidade;
• Produtividade;
• Redução de custos;
Confidencial © UNEAR 2014
Confidencial © UNEAR 2014
Diferenças nos modificadores
C# Scala
•Private por padrão.
•Não são virtual por padrão -
não podem ser ser
substítuidos em classes
derivadas. (override)
•Public por padrão.
•Virtual por padrão - qualquer
método pode ser substituído
em classes derivadas.
Confidencial © UNEAR 2014
Declaração de variáveis
• <identificador> <var/val> <nomeAtributo:tipo> =
<valor>
Confidencial © UNEAR 2014
Uso de valores imutáveis
• Auxilia na implementação sem efeitos
colaterais;
• Evita problemas de concorrência;
Confidencial © UNEAR 2014
Declaração de funções
• def <nomeFuncao> : <Tipo Retorno> = {}
• def <nomeFuncao> = {}
Confidencial © UNEAR 2014
Models
• Tuples
– Typed
• Case Classes
– Tipo imutáveis
Confidencial © UNEAR 2014
Interfaces
• Traits:
– Especifíca a assinatura dos métodos;
– Diferentemente do Java, Scala permite que os métodos sejam
parcialmente implementados;
– Não suportam construtores.
Confidencial © UNEAR 2014
Loops
Confidencial © UNEAR 2014
Pattern Matching
• Similar ao Switch-Case e ao If/Else
Confidencial © UNEAR 2014
Tratamento de Exceções
Confidencial © UNEAR 2014
Play Framework
• Framework desenvolvimento Web;
• Possui suporte nativo para Json;
• Fácil de escalar
• Criação de novos projetos
– activator new <nome_projeto>
Confidencial © UNEAR 2014
Build
• SBT:
– Criação dos binários do projeto;
• Precisam da JVM para serem executados;
– universal:PackageBin
Confidencial © UNEAR 2014
Frameworks
• Persistência de dados:
– Slick, Anorm, Scalike
• Testes:
– ScalaTest
• MongoDB:
– Casbah
• …
• Todo o ecossistema Java
Confidencial © UNEAR 2014
Play Framework
• Framework desenvolvimento Web;
• Possui suporte nativo para Json;
• Fácil de escalar
• Criação de novos projetos
– activator new <nome_projeto>
Confidencial © UNEAR 2014
IDEs
• IntelliJ
– Necessário a instalação do plugin Scala
• ScalaIDE
– Baseada no Eclipse
• Sublime, Netbeans, Notepad++...
Confidencial © UNEAR 2014
Links Úteis
• http://www.scala-lang.org/
• http://www.tutorialspoint.com/scala/
• https://twitter.github.io/scala_school/
• https://www.playframework.com/
Confidencial © UNEAR 2014
Referências
• http://www.scala-lang.org/
• http://www.scala-sbt.org
• https://www.playframework.com/
• https://msdn.microsoft.com/en-s/library/ms123401.aspx
Conceitos básicos da linguagem Scala

Más contenido relacionado

La actualidad más candente

Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemFernando Ike
 
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...iMasters
 
Conhecendo o asp.net core
Conhecendo o asp.net coreConhecendo o asp.net core
Conhecendo o asp.net coreNicolas Takashi
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETEduardo Pires
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...Bruno Luiz Pereira da Silva
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...iMasters
 
Explorando o mundo serverless
Explorando o mundo serverlessExplorando o mundo serverless
Explorando o mundo serverlessRoberto Alves
 

La actualidad más candente (14)

Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvem
 
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
 
Conhecendo o asp.net core
Conhecendo o asp.net coreConhecendo o asp.net core
Conhecendo o asp.net core
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
 
Explorando o mundo serverless
Explorando o mundo serverlessExplorando o mundo serverless
Explorando o mundo serverless
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 

Destacado

Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfweerabahu
 
OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010
OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010
OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010Saide OER Africa
 

Destacado (6)

Peter van Roste
Peter van RostePeter van Roste
Peter van Roste
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
 
OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010
OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010
OER Africa – An Introduction (Kenya Methodist University, Meru) January 2010
 
Beautiful India
Beautiful IndiaBeautiful India
Beautiful India
 
Folleto semana cultural 2012
Folleto semana cultural 2012 Folleto semana cultural 2012
Folleto semana cultural 2012
 
Android: Componentes (II)
Android: Componentes (II)Android: Componentes (II)
Android: Componentes (II)
 

Similar a Conceitos Scala

Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Leandro Gomes
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJSEmmanuel Neri
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cBruno Borges
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Achieving DevSecOps Outcomes with Tanzu Advanced - Portuguese
Achieving DevSecOps Outcomes with Tanzu Advanced - PortugueseAchieving DevSecOps Outcomes with Tanzu Advanced - Portuguese
Achieving DevSecOps Outcomes with Tanzu Advanced - PortugueseVMware Tanzu
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
Java one
Java oneJava one
Java oneIsmael
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise EditionDaniel Arndt Alves
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Renato Groffe
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com HudsonLuis Reis
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 

Similar a Conceitos Scala (20)

Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
 
Sistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOASistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOA
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Achieving DevSecOps Outcomes with Tanzu Advanced - Portuguese
Achieving DevSecOps Outcomes with Tanzu Advanced - PortugueseAchieving DevSecOps Outcomes with Tanzu Advanced - Portuguese
Achieving DevSecOps Outcomes with Tanzu Advanced - Portuguese
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
12 Factor Apps
12 Factor Apps12 Factor Apps
12 Factor Apps
 
Java one
Java oneJava one
Java one
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 

Conceitos Scala

  • 1. Conceitos básicos da linguagem Scala David Padilha Coelho de Lucca
  • 3. Confidencial © UNEAR 2014 O que é Scala? • Linguagem criada em 2001 por Martin Odersky na Escola Politécnica de Lousana; • Roda na JVM; • Compatível com as bibliotecas Java; • Tem sido adotado por grandes empresas.
  • 4. Confidencial © UNEAR 2014 Por que utilizar Scala? • Linguagem híbrida; • Independente do SO; • Suporta as bibliotecas Java; • Código mais limpo e conciso do que em C# ou Java; • Open-Source; • Fácil de entender;
  • 5. Confidencial © UNEAR 2014 Quem utiliza Scala atualmente?
  • 7. Confidencial © UNEAR 2014 Migração C# para Scala • Apenas alguns componentes; • Performance; • Escalabilidade; • Produtividade; • Redução de custos;
  • 9. Confidencial © UNEAR 2014 Diferenças nos modificadores C# Scala •Private por padrão. •Não são virtual por padrão - não podem ser ser substítuidos em classes derivadas. (override) •Public por padrão. •Virtual por padrão - qualquer método pode ser substituído em classes derivadas.
  • 10. Confidencial © UNEAR 2014 Declaração de variáveis • <identificador> <var/val> <nomeAtributo:tipo> = <valor>
  • 11. Confidencial © UNEAR 2014 Uso de valores imutáveis • Auxilia na implementação sem efeitos colaterais; • Evita problemas de concorrência;
  • 12. Confidencial © UNEAR 2014 Declaração de funções • def <nomeFuncao> : <Tipo Retorno> = {} • def <nomeFuncao> = {}
  • 13. Confidencial © UNEAR 2014 Models • Tuples – Typed • Case Classes – Tipo imutáveis
  • 14. Confidencial © UNEAR 2014 Interfaces • Traits: – Especifíca a assinatura dos métodos; – Diferentemente do Java, Scala permite que os métodos sejam parcialmente implementados; – Não suportam construtores.
  • 15. Confidencial © UNEAR 2014 Loops
  • 16. Confidencial © UNEAR 2014 Pattern Matching • Similar ao Switch-Case e ao If/Else
  • 17. Confidencial © UNEAR 2014 Tratamento de Exceções
  • 18. Confidencial © UNEAR 2014 Play Framework • Framework desenvolvimento Web; • Possui suporte nativo para Json; • Fácil de escalar • Criação de novos projetos – activator new <nome_projeto>
  • 19. Confidencial © UNEAR 2014 Build • SBT: – Criação dos binários do projeto; • Precisam da JVM para serem executados; – universal:PackageBin
  • 20. Confidencial © UNEAR 2014 Frameworks • Persistência de dados: – Slick, Anorm, Scalike • Testes: – ScalaTest • MongoDB: – Casbah • … • Todo o ecossistema Java
  • 21. Confidencial © UNEAR 2014 Play Framework • Framework desenvolvimento Web; • Possui suporte nativo para Json; • Fácil de escalar • Criação de novos projetos – activator new <nome_projeto>
  • 22. Confidencial © UNEAR 2014 IDEs • IntelliJ – Necessário a instalação do plugin Scala • ScalaIDE – Baseada no Eclipse • Sublime, Netbeans, Notepad++...
  • 23. Confidencial © UNEAR 2014 Links Úteis • http://www.scala-lang.org/ • http://www.tutorialspoint.com/scala/ • https://twitter.github.io/scala_school/ • https://www.playframework.com/
  • 24. Confidencial © UNEAR 2014 Referências • http://www.scala-lang.org/ • http://www.scala-sbt.org • https://www.playframework.com/ • https://msdn.microsoft.com/en-s/library/ms123401.aspx
  • 25. Conceitos básicos da linguagem Scala