Pular para o conteúdo principal

Postagens

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? ...

TDC 2012, Trilha Scala e a Comunidade Scala no Brasil

Já faz quase um mês desde que tivemos o TDC 20 12 em São Paulo . Neste post, quero falar um pouco sobre uma das novidades que tivemos este ano: a Trilha Scala - e da comunidade dessa linguagem em geral. Na globalcode, temos um mini-curso sobre scala . Nele, sempre gosto de lembrar o quanto Scala vem crescendo nos últimos anos. Essa linguagem vem sendo utilizada por empresas como twiter, foursquare, the guardian... Isso ilustra bem como as coisas estão lá fora. Mas e no Brasil? A comunidade scala brasileira ainda é bem nova, mas está crescendo. No ano passado iniciei, com um amigo, um grupo de usuários de Scala, os Scaladores . Também no ano passado, palestrei sobre Scala no TDC 2011. E o Just Java 2011 e 2012 também contaram com palestras sobre o assunto. Agora, mais interessante do que isso é notar que começaram a aparecer vagas de emprego por aqui. Ainda não exclusivamente, mas empresas que pedem "outras linguagens na JVM", estão começando a incluir Scala na lista. C...

Primeiro módulo AA1 online finalizado

Semana passada finalizei meu primeiro módulo online. Foram 40 horas ministrando o módulo "AA1 - ALM e Testes" da Academia do Arquiteto. Foi uma experiência bem legal e vou falar um pouquinho sobre ela. A idéia dos módulos online surgiu como forma de atender alunos que moram fora de São Paulo e em cidades onde não existem unidades parceiras da Globalcode. Começou com os minicursos transmitidos via Webcast e agora está chegando aos outros cursos. Eu já tinha ministrado vários minicursos com transmissão via Web, mas um curso totalmente online é diferente em vários aspectos: No minicurso há pessoas no auditório, então ele é um curso misto presencial e online. Você tem que acompanhar a ferramenta de transmissão periodicamente para verificar se algum aluno remoto está tentando fazer alguma pergunta, mas não há tanta diferença em relação a um curso presencial tradicional. O feedback também é mais rápido pois você está olhando a cara dos alunos. Na verdade existe até o risco d...