|
Eu participo de algumas listas de discussão sobre Java, e procuro
responder o máximo de perguntas possível. Além disso,
dentro da Sun do Brasil eu sou o ponto de referência para qualquer
assunto de Java, seja técnico, comercial ou produtos. É claro
que não é possível para uma pessoa saber sobre tudo
o que se passa no gigantesco mundo de Java, mas de uma forma ou de outra,
acabam esperando isso quando essa pessoa é o "Java Man".
Esse é um dos ossos do ofício...
Portanto, eu posso dizer que eu tenho uma certa experiência em
encontrar soluções de problemas relacionados com Java, e
vou tentar descrever o meu "método" - na verdade, chamar de método
é um pouco de pretensão, pois não passa de uma série
de recursos que eu utilizo no dia-a-dia. É claro que no processo
de busca existe um certo nível de conhecimento embutido, e que muitas
vezes é difícil de perceber, mas ainda assim, acredito que
os recursos que eu uso serão de grande valia para qualquer desenvolvedor
Java.
Antes de mais nada, existem alguns recursos no meu artigo sobre começando
a aprender Java, e vale a pena você dar uma olhada lá,
em especial se você não é muito experiente na tecnologia.
Recursos Básicos
Todo programador Java precisa ter alguns links básicos na cabeça,
não importa se você é um expert ou um novato. Alguns
desses links são:
-
java.sun.com [http://java.sun.com] -
site oficial de Java da Sun. Esse é o ponto de partida para qualquer
coisa relacionada com Java.
-
Produtos Java [http://java.sun.com/products]
- nessa página você encontra links para todo e qualquer API
Java já especificada. Fundamental, e sempre é bom você
saber pelo menos o básico sobre cada um desses produtos (saber do
que se trata já é um bom começo). Eu costumo indicar
para quem quer se tornar profissional, para seguir cada um dos links dessa
página, e ler a página inicial de cada tecnologia, só
pra saber do que se trata.
-
Java Tutorial [http://java.sun.com/tutorial]
- o Tutorial Java. Muitas vezes programadores experientes acham que tutorial
é para iniciantes. Eu nunca encontrei um desenvolvedor Java, por
mais experiente que seja (eu inclusive), que não tenha nada para
aprender no Java Tutorial. Você precisa pelo menos conhecer quais
são os tópicos abordados por esse tutorial, para poder recorrer
a ele quando for necessário.
-
JavaWorld [http://www.javaworld.com]
- a JavaWorld é uma revista online bastante técnica, e os
artigos em geral são de excelente qualidade. Você deve dar
sempre uma olhada para ver se não existe um artigo sobre o que você
esta precisando.
-
JavaWorld
- topical index - dentro da JavaWorld esse talvez seja um bom ponto
para começar, já que lista os vários tópicos
que a revista trata ou já tratou.
-
Gamelan [http://www.gamelan.com] e
JARS
[http://www.jars.com] - esses dois são locais para encontrar
componentes, produtos, bibliotecas, etc, desenvolvidos em Java. Muita coisa
é gratuita (freeware, domínio público), mas muita
coisa é comercial também. Observe que esses dois sites possuem
página de busca, mas no caso do Gamelan, o link para a página
de buscas está escondido no menu no final da página, e pode
passar despercebido para quem não conhece.
-
Java Platform
1.2 API Specification - Principal documentação das APIs
Java, gerada automaticamente através do JavaDoc. Essa documentação
pode ser acessada via web, mas o melhor é instalá-la junto
do seu ambiente. Apesar de muitas ferramentas de desenvolvimento já
virem com essa documentação embutida de uma forma ou de outra,
é importante você ter sempre a versão oficial com você.
Se você baixar e instalar essa documentação, ela em
geral é colocada em <instalação_do_jdk>/docs/api/index.html.
OBS: os links que escritos por [extenso] são aqueles que eu considero
importante saber de cabeça - é isso mesmo, saber "de cor"!
Os outros, você pode ter nos seus bookmarks, ou vir acessar a partir
dessa página.
Tipos de Perguntas
Existem diversos tipos de perguntas que tenho que responder no dia-a-dia.
Para cada tipo, muitas vezes é necessário uma forma diferente
de resolver.
Preciso de um produto/biblioteca em Java que faça
???
Diversas variações dessa pergunta podem vir desde do pessoal
de vendas (meu cliente quer fazer isso e isso, tem algum produto em Java?),
até desenvolvedores (preciso de um componente que faça tal
e tal, existe?).
A forma mais fácil é você usar a web. Antes de mais
nada, verifique se não tem nada parecido nas bibliotecas
padrão da tecnologia Java. Tirando essas, eu faço uma
busca pelos search engines genéricos (Altavista
e Yahoo), e também busco nos
sites específicos sobre Java: Gamelan
e JARS.
O problema que muita gente tem é de saber que busca realizar.
Faça a busca no mínimo em inglês, inclua o português
se você quiser. Traduza para o inglês algumas palavras que
indiquem a principal caracteristica do produto que você está
procurando, e se você estiver em um search engine genérico,
não esqueça de colocar "+java" para encontrar coisas relacionadas
com Java. Nos engines genéricos, você poderá ter que
tentar algumas combinações até encontrar alguma coisa,
enquanto que nos engines específicos sobre Java, eu aconselho que
você olhe o máximo de resultados possível, pois as
vezes o que você está procurando está escondido no
meio de outras coisas sem muita relação.
Outros lugares para você realizar a sua busca:
Vale a pena de vez em quando navegar nos sites acima, como forma de ter
uma noção do que existe por ai. Esse conhecimento sempre
é útil.
Como faço ??? com Java?
Essa pergunta pode ser bem básica (como faço para abrir um
arquivo com Java), ou ser bem abrangente e complexa (como faço para
desenvolver uma aplicação de comércio eletrônico
com Java?). O importante é se começar com o entendimento
que qualquer coisa que queira fazer, você consegue fazer com Java,
você só precisa se acostumar a pensar no problema sob uma
perspectiva Java.
E o que significa essa "perspectiva" Java? Pense como o seu produto
se beneficiaria das principais características da tecnologia Java:
independência
de plataforma, carregamento dinâmico de código
pela rede e a facilidade de uso da rede.
Muita gente que esta começando (e alguns veteranos) me dizem
que tem dificuldade em pensar em uma solução em Java para
um determinado problema. Observe que se você consegue ver vantagens
nos tres pontos que coloquei acima, nenhuma outra tecnologia vai te permitir
tirar proveito disso, e você já tem um forte argmento para
desenvolver em Java.
E como costurar efetivamente uma arquitetura Java? Só existe
um caminho seguro: conheça todas (ou pelo menos o maior número
possível) as bibliotecas Java listadas na página
de produtos. Se parece muito, pelo menos tente ler a descrição
de cada uma das tecnologias (siga o link na página de produtos e
leia a primeira página). Só assim você terá
jogo de cintura para saber relacionar as diversas tecnologias. Mas você
pode também dar uma lida no documento "Sun
BluePrintsTM Design Guidelines for Java 2 Enterprise Edition", que
discute algumas das principais decisões que você tem que tomar
em uma arquitetura Java sofisticada.
Para as perguntas mais simples, eu sugiro o conhecimento da documentação.
Um bom lugar para começar é na primeira página da
Java Platform 1.2 API Specification (que se você instalou no
seu sistema, deve estar em <instalação_do_jdk>/docs/api/index.html).
Nessa primeira página você encontra uma rápida descrição
dos diversos pakages existentes na biblioteca Java básica. Você
precisa conhecer esses pacotes, e a descrição geral de cada
um deles. Caso você não conheça, vá sempre em
primeiro lugar nessa página da documentação, e verifique
se a funcionalidade que você precisa está listada em algum
deles.
Outro bom lugar para você procurar, se também for algo
mais simples que não envolva arquitetura, é o Java Tutorial.
verifique se algum dos "trails" (caminhos) do Java Tutorial cobre o assunto
que você precisa. Isso pode te obrigar a olhar o que cada um dos
trails cobre, mas você precisa conhecê-los mesmo, então,
não adianta adiar.
Outros links interessantes para tentar resolver o seu problema:
Estou usando a biblioteca XYZ, e estou tendo problemas
para fazer ???
Essa é a típica questão que você precisa utilizar
a documentação para responder, ou então algum artigo
sobre o assunto. Nesse caso, alguns links que você poderá
utilizar são:
A documentação fala uma coisa, mas não
está funcionando...
Nessa caso, você tem dois recursos pricipais: algum dos vários
FAQs (quem sabe você identifique o que está fazendo de errado)
ou no Bug Parade, a lista de bugs conhecidos (nesse caso você descobre
que o erro não é seu, e possivelmente encontra uma forma
de contornar o problema).
-
Java
Bug Parade - lista de bugs conhecidos. Além de procurar por
bugs, ou enviar um novo bug, você pode inclusive "votar" pelos bugs
mais importantes a serem resolvidos. Se houver um "workaround" conhecido,
ele estará listado.
-
FAQs (frequently asked questions)
Conclusão...
Um artigo como esse não se conclui, já que novos recursos
deverão ser incluidas no decorrer do tempo. Acredito que se você
conhecer e fizer bom uso do que está disponível na web, e
aprender a utilizar os recursos aqui listados efetivamente, você
se tornará um desenvolvedor Java cada vez melhor, e isso te valorizará
muito no mercado.
Caso você queira compartilhar com outros desenvolvedores os seus
próprios recursos para a resolução de problemas, envie-me
as suas sugestões.
|