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?