apresentacao_scala

25
Conceitos básicos da linguagem Scala David Padilha Coelho de Lucca

Transcript of apresentacao_scala

Page 1: apresentacao_scala

Conceitos básicos da linguagem ScalaDavid Padilha Coelho de Lucca

Page 2: apresentacao_scala

Confidencial © UNEAR 2014

Page 3: apresentacao_scala

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.

Page 4: apresentacao_scala

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;

Page 5: apresentacao_scala

Confidencial © UNEAR 2014

Quem utiliza Scala atualmente?

Page 6: apresentacao_scala

Confidencial © UNEAR 2014

Page 7: apresentacao_scala

Confidencial © UNEAR 2014

Migração C# para Scala

• Apenas alguns componentes;

• Performance;

• Escalabilidade;

• Produtividade;

• Redução de custos;

Page 8: apresentacao_scala

Confidencial © UNEAR 2014

Page 9: apresentacao_scala

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.

Page 10: apresentacao_scala

Confidencial © UNEAR 2014

Declaração de variáveis

• <identificador> <var/val> <nomeAtributo:tipo> = <valor>

Page 11: apresentacao_scala

Confidencial © UNEAR 2014

Uso de valores imutáveis

• Auxilia na implementação sem efeitos colaterais;

• Evita problemas de concorrência;

Page 12: apresentacao_scala

Confidencial © UNEAR 2014

Declaração de funções

• def <nomeFuncao> : <Tipo Retorno> = {}

• def <nomeFuncao> = {}

Page 13: apresentacao_scala

Confidencial © UNEAR 2014

Models

• Tuples– Typed

• Case Classes– Tipo imutáveis

Page 14: apresentacao_scala

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.

Page 15: apresentacao_scala

Confidencial © UNEAR 2014

Loops

Page 16: apresentacao_scala

Confidencial © UNEAR 2014

Pattern Matching

• Similar ao Switch-Case e ao If/Else

Page 17: apresentacao_scala

Confidencial © UNEAR 2014

Tratamento de Exceções

Page 18: apresentacao_scala

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>

Page 19: apresentacao_scala

Confidencial © UNEAR 2014

Build

• SBT:– Criação dos binários do projeto;

• Precisam da JVM para serem executados;

– universal:PackageBin

Page 20: apresentacao_scala

Confidencial © UNEAR 2014

Frameworks

• Persistência de dados:– Slick, Anorm, Scalike

• Testes:– ScalaTest

• MongoDB:– Casbah

• …

• Todo o ecossistema Java

Page 21: apresentacao_scala

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>

Page 22: apresentacao_scala

Confidencial © UNEAR 2014

IDEs

• IntelliJ– Necessário a instalação do plugin Scala

• ScalaIDE– Baseada no Eclipse

• Sublime, Netbeans, Notepad++...

Page 23: apresentacao_scala

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/

Page 24: apresentacao_scala

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

Page 25: apresentacao_scala

Conceitos básicos da linguagem Scala