Caelum | Ensino e Inovação - Cursos de Java, Scrum, Ruby on Rails


Visite também o
blog da Caelum

Conheça nossos cursos

Apostilas abertas para download

Os desenvolvedores da Caelum costumam publicar muitos artigos técnicos, a maioria deles é divulgado pelo blog da Caelum. Aqui centralizamos os artigos, tutoriais e experiências mais relevantes e que tiveram grande aceitação de público.

Boas práticas e Design

Como não aprender Java: getters e setters - getters e setters são práticas comuns, e nos habituamos a eles logo que começamos com o Java. Mas devemos usá-los tanto? Quando devemos usá-los?.

Como não aprender Java: herança - outro recurso que é facilmente abusado quando estamos iniciando na orientação a objetos. Herança possui várias limitações e gera um forte acoplamento entre classes, que deve ser medido antes de tomar essa decisão.

Relacionamento bidirecional entre classes - fala sobre os perigos e complicações de ter de manter um relacionamento bidireicional entre duas classes.

Domain Specific Language em ação - um exemplo de como DSL ajudou a encarar um problema enfrentado pela equipe da Caelum com os clientes de um projeto.

Design Patterns no Java SE: o template method - o InputStream como um excelente exemplo de template method.

Domain Driven Design - as idéias debatidas sobre Domain Driven Design no evento da Caelum.

Pequenos objetos imutáveis e Tiny Types - as vantagens (e desvantagens) de tipar estaticamente até mesmo a mais simples das Strings, e de criar esses objetos de maneira imutável.

Fundamentos do Java

O que é hashCode()?. Uma das principais dúvidas dos programadores iniciantes em Java é o funcionamento exato do hashCode() (juntamente com o equals()), assunto aqui debatido profundamente, junto com tabelas de espalhamento.

Entendendo Unicode e os character encodings - já teve problemas ao fazer a implantação do seu sistema e seus acentos não estarem corretos? Entenda corretamente a diferença entre o ISO 8859-1 e o UTF-8, e também saiba o porquê de que agora precisamos as vezes de mais de 2 bytes para representar um único caractere.

Lidando com exceptions - usar checked ou unchecked exceptions? onde fazer o try catch? devo relançar uma exceção?.

Internacionalização no código Java - como funciona a API do Java SE e de ResourceBundles.

Entendendo o servialVersionUID - artigo esclarecedor sobre essa dúvida que sempre sonda os desenvolvedores.

Processo de build com o Maven - um tutorial para os iniciantes nessa ferramente de build, que se tornou muito popular como o Ant.

Testes automatizados

Você acredita no seu código? - um artigo apaixonado sobre os benefícios dos testes de unidade e de aceite. Mais que isso, uma motivação para mostrar o quão essencial é ter testes automatizados.

Testes de aceitação com o Selenium - como usar essa poderosa ferramenta para automatizar seus testes de aceite.

Testes unitários com JMock 2 - trabalhando com mock objects para facilitar seus testes de unidade.

Integração contínua - o que é, para que serve e como o Cruise se enquadra.

Integração Continua - Builds rápidos com Grids e paralelismo - quando a performance dos seus testes começam a impactar o dinamismo da integração contínua, o que fazer?

Behavior Driven Development com JUnit - desmistificando o BDD e colocando-o na prática com o JUnit.

Coleções e generics

Performance: HashSetcode> em vez de ArrayList - é comum a escolha por uma ArrayList, mas será que essa coleção é uma boa opção em alguns casos?

A Collection genérica: métodos que recebem Object - mesmo com os generics, porque alguns métodos da interface Collection ainda trabalham com Object?

Generics, inferência de tipos e reificação no Java 7 - um post aavançado sobre as limitações da implementação de Generics no Java, dada a ausência de reificação.

Não posso descobrir nem instanciar tipos genéricos! Porque? - post avançado sobre a reificação de tipos.

Persistência, ORM e Hibernate

Screencast: primeiros passos para a JPA - aqui Fábio Kung faz um passo a passo para você começar a trabalhar com a JPA através de um screencast.

Ei, como é o seu DAO? Ele é tão abstraído quanto o meu? - com o generics no Java 5, abriu-se um leque de possibilidades para um typesafety maior. Diversas propostas de DAO genérico apareceram, e uma delas é tratada aqui.

JPA com Hibernate: henraça e mapeamentos - mostra as diversas possibilidades de trabalhar com herança usando JPA/Hibernate, e possíveis limitações de performance que podem ser encontradas.

Hibernate Search com Lucene - o Hibernate Search integra de maneira natural o framework de persistência com o Lucene.

Repository: seu modelo mais orientado a objeto - é a trasncrição de uma discussão entre Fábio Kung e Paulo Silveira sobre um dos assuntos mais debatidos sobre DDD e seus patterns.

Os 7 hábitos dos desenvovledores hibernate e JPA altamente eficazes - dicas e truques para você não passar sufoco e obter o máximo do Hibernate.

Divisions com Hibernate: uso avançado do Criteria API - como implementar operações de division com o Hibernate.

Java na Web

Trabalhando com coleções usando JSP e JSTL - um guia prático de funções e tags para trabalhar com as collections do Java nas suas páginas web.

I18N: internacionalização com JSTL - como estruturar sua aplicação Web para facilitar o processo de internacionalização através de tags JSTL.

Jetty, NIO e load balancing - como a migração do GUJ de Tomcat para Jetty melhorou a performance do servidor.

Vazamento de memória e de conexões - um passo a passo de como atacamos o problema de estouro de memória e vazamento de conexões em um projeto.

XML e Webservices

Webservices sem servidor de aplicação no Java SE 6 - o JAX-WS 2.0 entrou para dentro do Java SE 6, facilitando em muito o consumo e a exposição de serviços via Web.

Webservices com XFire - utilizando o XFire (hoje Apache CFX) com as anotações do JAX-WS.

Java 6, as APIs de XML, webservices e classloaders - discute os problemas que surgiram depois da entrada de diversas APIs JAX-?? dentro do Java 6, em especial em relação ao JAX-WS.

Os 7 hábitos dos desenvolvedores de webservices altamente eficazes - cuidados com granularidade e tipos de webservices que precisamos ter para preservar performance e escalabilidade.

JAX-B: Java e XML de mãos dadas - o JAX-B entrou para o Java SE a partir da versão 6 e é uma excelente opção para se trabalhar com XML.

Ruby e Ruby on Rails

Quão intuitivo é aprender Ruby? - um motivador artigo para você encarar uma nova linguagem.

2009: o ano do Ruby on Rails no Brasil - outro artigo inspirador em relação ao potencial do rails no Brasil!


Caelum | Ensino e Inovação
São Paulo: Rua Vergueiro, 3185, cj. 87, próximo ao Metrô Vila Mariana   |   Tel. (11) 5571-2751
Rio de Janeiro: Rua Senador Dantas, 80, cj. 307/308 - Centro   |   Tel. (21) 2220-4156 ou 2297-0033
Brasília: SCS Qd. 8 Bl. B-50, Sala 521 - Ed. Venâncio 2000   |   Tel. (61) 3039-4222
A Caelum roda no cloud