Pular para o conteúdo principal

Postagens

Mostrando postagens de agosto, 2012

Como Scala melhorou meu código Java

Ontem publiquei no meu blog pessoal algumas críticas ao método clone . Eu diria que esse é um assunto um pouco delicado. Resolvi escrever um pouco aqui também em homenagem a uma discussão sobre este mesmo assunto que tivemos em uma das turmas da Academia do Arquiteto, alguns meses atrás. Antes de entrar nos detalhes, vamos deixar claro o ponto aonde vamos chegar: objetivos imutáveis podem ajudar muito na qualidade do nosso código, e estudar a linguagem Scala me ajudou a enxergar isso. Dito isso, vamos aos pormenores. O método clone tem pelo menos dois grandes problemas. O primeiro deles é conceitual. Para suportarmos operações de clone em nossos objetos, temos que implementar a interface Cloneable . Faria todo o sentido do mundo, se o método clone estivesse definido nesta interface, e não em Object . O segundo problema é de ordem mais prática. Vejamos o código abaixo, em Scala, que é o mesmo que usei no meu post mencionado acima: class A(b: B) extends Cloneable { override de...

Começando em Scala - Parte 2: Integração entre Maven e Scala

Na semana passada publiquei um post falando dos passos para começar o desenvolvimento em Scala . Também mencionei que uma alternativa a fazer o download do Scala do site oficial era configurá-lo via Maven. Hoje vou escrever mais sobre isso. Para utilizar o Scala via Maven é necessário utilizar um plugin denominado scala-maven-plugin. Há também um plugin mais antigo denominado maven-scala-plugin, mas foi substituido pela versão mais nova que iremos abordar. Vou apresentar os itens de configuração do pom.xml necessários para utilizar Scala A dependência com a versão desejada de Scala deve ser configurada no projeto: org.scala-lang scala-library 2.9.2 O plugin deve ser configurado: net.alchim31.maven scala-maven-plugin 3.1.0 compile testCompile O código fonte Scala deve ser escrito dentro do diretório src/main/scala e o código de testes dentro de src/tes...

Nova Unidade Globalcode e Profissão Java 2012 em Maringá/PR

É com um grande prazer e uma plena satisfação que anunciamos o lançamento da mais nova Academia Globalcode do Brasil: na cidade de Maringá, norte do Paraná. A Sergio Yamada Computação, uma empresa consolidada e conceituada com mais de 18 anos de experiência em treinamentos tecnológicos na região concretizou esta parceria com a Globalcode, que resultou no lançamento desta unidade. Maringá é um polo de referência que concentra toda uma região metropolitana cujo mote é "Qualidade de Vida e Excelência em Software". Sim, sempre acreditamos no potencial econômico da região e principalmente nas pessoas que vivem nesta região metropolitana. Mas também sempre acreditamos que para atingir o objetivo da excelência era necessário algo a mais. Era necessário conseguir uma qualificação diferenciada de profissionais de software para conseguir atingir a tão almejada excelência. Nós acreditamos que o momento em que o sonho da excelência se inicia e passa a se tornar algo palpável...

Iterando coleções com Scala

Em uma notícia de uns dias atrás nós anunciamos um novo curso , o Core Scala . Nele, havia um pequeno trecho de código: val alunosMaiores = alunos.filter(aluno => aluno.idade >= 18) Vamos entender como esse código funciona. Para começar, temos uma lista de alunos . Como essa lista foi criada não é muito importante. Poderíamos ter recuperado ela de um banco de dados, ou tê-la criado em Scala com o seguinte código: case class Aluno(nome: String, idade: Int) val alunos = List(Aluno("joao", 19), Aluno("jose", 17), Aluno("maria", 21))   Criamos acima uma case class que é, de forma simplificada, equivalente a um Java Bean completo, com getters, setters, toString etc. Em seguida criamos a lista em si. Para isso, usamos um recurso de Scala que nos permite criar objetos com a sintaxe Classe(params) - sem o new . Este recurso está disponível para a nossa classe Aluno também pelo fato dela ser uma case class ....

Começando em Scala

Há um tempinho atrás fui apresentado para uma nova linguagem de programação, que tem crescido bastante lá fora: Scala! Ela apresenta características interessantes como: roda na JVM, o que significa que não preciso abandonar todos os frameworks, bibliotecas e módulos já desenvolvidos em Java suporta o paradigma de programação funcional, que é algo que eu estava interessado em aprender, porém não abandona o paradigma de orientação a objetos, permitindo uma transição mais suave e escrita de programas mistos. Apesar disso eu estava meio relutante pois ouvi tanto elogios à linguagem, vindos de gurus Java conhecidos, quanto comentários sobre sua complexidade vindos de outros gurus. Mas resolvi dar uma chance à linguagem e formar minha própria opinião embasada em alguma experiência prática. Resultado: me apaixonei pela linguagem! É divertido programar em Scala! Todo mundo que gosta de programação deveria aprender Scala! Mas por que tanta gente reclama que a linguagem é muito complexa? ...