apresentacao_scala
-
Upload
david-de-lucca -
Category
Documents
-
view
14 -
download
0
Transcript of apresentacao_scala
Conceitos básicos da linguagem ScalaDavid 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