Archive for October, 2006

Curso de Spring: Última Semana para Inscrições e Apostila Sendo Liberada!

Sunday, October 22nd, 2006

O curso de Spring entra na sua última semana de inscrições com a turma quase fechada. Ainda existem vagas, mas corra.

Seguindo o estilo difundido pela Caelum, empresa de amigos GUJeiros, a apostila utilizada no curso será liberada. Neste primeiro momento estou disponibilizando os primeiros capítulos, em breve teremos a íntegra.

Por que fazer isso? Bem, porque se o valor do treinamento fosse exclusivo do material adotado eu lançaria um livro, não um curso. Além do mais, eu não sou “inocente” o suficiente para achar que esse material não vai estar no emule depois de alguns dias. Então, ele está liberado através de uma licença CreativeCommons.

Bem, dêem uma olhada. Feedback, como sempre, é muito apreciado por estas bandas.

Curso de Spring: Primeira Turma em Novembro!

Friday, October 13th, 2006

Como falei antes, vou começar uma experiência de cursos para pessoas físicas. Na página de cursos você encontra informações sobre o curso de Spring framework que começa no início do próximo mês (Novembro).

O curso mudou de lugar, agora será ministrado em Botafogo. Falta de lugares com laboratórios decentes é um problema no RJ.

Artigo Ressuscitado

Sunday, October 8th, 2006

Devido a pedidos, acabo de disponibilizar o artigo Identificando e Convertendo Código Orientado a Objetos e Código Procedural em PDF.

Este artigo foi publicado no PortalJava há alguns meses, mas infelizmente por problemas técnicos saiu do ar. Agora está disponível ;)

Cursos Fragmental TI: Spring Framework

Thursday, October 5th, 2006

Nestes anos tenho tido demanda para transformar o conteúdo de palestras e artigos em cursos. Após um tempo hibernando neste segundo semestre, resolvi colocar a idéia em prática!

Você pode notar uma nova “aba” aqui no Fragmental, a parte de treinamentos. A parte de serviços já contava (e ainda conta) com uma seção de treinamentos, mas estes são mais voltados para turmas fechados adquiridos por organizações como um pacote.

Agora existirão turmas (a princípio uma) abertas para pessoas físicas ou empresas que desejam capacitar apenas um ou poucos desenvolvedores (se você vai treinar um número razoável ainda é melhor fechar um pacote).

O primeiro curso é uma capacitação no Spring Framework. Não me recordo de quando eu de fato conheci o Spring mas se você acompanha este blog (se não acompanha pode conferir nos posts passados) sabe que há muito tempo eu sou um grande entusiasta da sua filosofia de desenvolvimento simplificado.

spring framework

Agopra o Spring é adotado e apoiado por grandes empresas e sua filosofia de desenvolvimento serve de base conceitual para o Java EE 5.0. Mesmo os desenvolvedores mais conservadores não têm como ficar fora desta realidade, e este curso é apra levar quem ainda não tira proveito desta plataforma a o fazer.

Se você foi pego agora pela onda do desenvolvimento simplificado Java, se quer se preparar para o Java EE 5.0 ou se usa o Spring mas quer melhorar sua compreensão, esta é uma grande oportunidade!

E aguardem, mais cursos vêm por aí!

DSL: A Nova Velha Onda

Tuesday, October 3rd, 2006

Toda vez que alguém fala em DSLs no GUJ vem um troll e fala ‘bah, mas isso existe há anos e ninguém nunca se importou, por que essa comoção agora?’. Apesar do comentário refletir a presença de espírito do clássico Troll de internet, uma coisa é certa: linguagens de domínio existem há muito tempo. O que está errado é que o hype sobre elas não é de agora.

Linguagens de domínio, mini-linguagens, etc. sempre foram utilizadas para tarefas onde uma linguagem de programação atrapalha a entender conceitos complexos. Há alguns anos, estes conceitos eram bem diferentes do que enfrentamos hoje.

Quem programa há algum tempo deve lembrar de quando, por exemplo, não existiam servidores de aplicação amplamente disponíveis. Para usar transações distribuídas, cache, gerenciamento de conexões, etc. ou você implementava na unha ou comprava produtos de fornecedores e tentava arduamente fazer com que conversassem.

A USENIX organizou duas edições de sua Conference on Domain-Specific Languages. A primeira edição, em 1997, traz nos seus papers o uso de DSLs para ajudar ans dificuldades da época. Uma das publicações fala sobre a implementação de uma linguagem específica para geração de formulários HTML.

Hoje em dia você pode usar uma DSL para isso dentre as várias existentes: Struts tags, JSF, Microsoft WebForms ou algo do tipo, além de outras DSL como ASP, JSP e PHP facilitarem o desenvolvimento de formulários mesmo antes destas DSLs surgirem.

Apesar do foco acadêmico dos papers (mesmo contando que a maioria dos interessantes, bem como a própria organização da cofnerência, não vem da academia), os problemas enfrentados pelas DSLs descritas era o problema do dia-a-dia dos programadores.

A grande maioria destes problemas foi resolvido nestes últimos 7 anos, pelo menos para o programador de aplicativos. Hoje você adquire um servidor de aplicações padronizado e não precisa se preocupar tanto com a ifnra-estrutura, com qual protocolo seu cache distribuído trabalha, etc. O problema do programador de aplicações hoje é diferente, cada vez mais ele precisa se relacionar com o domínio do problema de negócios sendo resolvido, e daí vêm uma nova safra de DSLs.

Hoje as DSL estão surgindo para resolver os problemas de negócios. mesmo utilizando linguagens Orientadas a Objetos de alto nível, no fim das contas o artefato produzido (o código) é formado por um agrupamento de convenções. para um exemplo simples, o que é mais legível? Isso:

BigDecimal um = new BigDecimal("1");
BigDecimal dois = new BigDecimal("2");

BigDecimal soma = um.add(dois);

Ou isso:

int soma = 1 + 2;

Se Java não possuísse literais numéricos e operadores aritméticos seria simplesmente terrivalmente chato e tendencioso a erros o ato de implementar qualquer soma básica. Esse problema já acontece, por exemplo, com números de ponto flutuante. Fazer aritmética com ponto flutuante utilizando double e literais numéricos ao invés de BigDecimals é o erro básico de qualquer iniciante (e muitos e muitos veteranos) em Java.

Assim como uma linguagem específica facilita cálculos, pode facilitar a modelagem de diversos processos de negócio.

Talvez o maior impeditivo para que se propaguem hoje está na ausência de uma infra-estrutura, frameworks e utilitários para sua geração, mas JBoss, Microsoft, JetBrains e outras empresas já trabalham nisso há algum tempo.