Seção: Apanhando da… UML, e também do Hibernate (ao vivo) (3)

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido. Mas não se assuste, como esse texto tem alguma coisa de interessante, eu farei uma versão atualizada lá. E só removerei este texto depois de passar o link aqui.

Bom, resolvi tomar vergonha na cara, e usar o Hibernate embaixo do JPA. A configuração foi um parto, tava acostumado com o Toplink, que vem junto com o Glassfish; quer dizer, acostumado entre aspas, pois o negócio é ruim, MUUUUITO ruim, porque se dá algum erro, não dá pra ter a mínima idéia do que ocorreu. Com o Hibernate não, os logs são detalhados e dá pra descobrir o erro se algum problema ocorre.

Mas repito, o Hibernate é difícil de configurar, têm muitas dependências. O Struts 2, por exemplo, precisa no mínimo os jars struts2, o xwork, o ognl e o commons-logging, só. Já Hibernate, pra rodar standalone (porque eu estou criando um jar, não um aplicativo no servidor) precisa de 14 jars, são:

  • ejb3-persistence.jar
  • hibernate3.jar
  • hibernate-annotations.jar
  • hibernate-entitymanager.jar
  • jboss-archive-browser.jar
  • dom4j-1.6.1.jar
  • commons-logging-1.0.4.jar
  • hibernate-commons-annotations.jar
  • javassist.jar
  • commons-collections-2.1.1.jar
  • cglib-2.1.3.jar
  • asm.jar
  • jta.jar
  • antlr-2.7.6.jar

Se o Hibernate é assim, mal posso esperar pra ver como se faz pra rodar Seam no Glassfish, vou ter que colocar o JBoss AS inteiro no lib do Glassfish!

Tentei também usar o DbUnit pra testar, mas achei um lixo, não é uma abstração muito boa da base de dados, preferi usar o JUnit 4 mesmo.

Bom, veja como ficou:

Leia o resto deste post »

Apanhando da… UML (ao vivo) (2)

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido. Mas não se assuste, como esse texto tem alguma coisa de interessante, eu farei uma versão atualizada lá. E só removerei este texto depois de passar o link aqui.

Martin Fowler, também conhecido no meio como Fofó, disse sobre certos maus cheiros no código. Pois bem, aconteceu comigo!

Eu não sei por que eu tive essa idéia, mas achei que se eu usasse JDBC puro seria mais fácil. Nossa senhora, parecia cheiro de quem comeu quilos de ovo, repolho e batata-doce! E pra piorar, havia um certo probleminha que eu passei por cima: livro pode ter múltiplos autores e autor pode ter muitos livros, então deveríamos ter uma entidade livro, uma entidade autor e um relacionamento muitos-para-muitos entre eles. Não foi o que eu fiz, coloquei uma lista de String na classe Livro e achei que isso mapearia fácil para um relacionamento na base onde realmente tem uma tabela “autores”, porém como seria a inserção de um livro em um caso desse? O que eu quase ia fazer era pedir uma busca na tabela “autores” passando o nome do autor para retornar o id (uma busca full scan!) e se retornasse algum id, eu iria fazer a inserção. A atualização teria complicações piores que é melhor nem comentar.

Leia o resto deste post »

Seção: Apanhando da… UML (ao vivo)

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido. Mas não se assuste, como esse texto tem alguma coisa de interessante, eu farei uma versão atualizada lá. E só removerei este texto depois de passar o link aqui.

Olá, semana passada eu apresentei o Wicket e prometi fazer algo melhor que aquele Hello World chinfrim. Porém, não consigo fazer nada sem planejamento prévio. Meu cérebro (e acredito que o seu também) não consegue fazer uma coisa muito complicada que envolve muitas variáveis ao mesmo tempo. É como diria a Gostosinha Burrinha: “Que-nem Jack ‘Estuprador’ Vamos por partes!” Uma vez eu li um livro meio intelectual, meio povão chamado “Blink” que fala exatamente sobre como as pessoas conseguem realizar suas atividades melhor com um mínimo de informações. E sigo isso à risca.

Uma frase que eu gosto de repetir é:

Eu admiro as pessoas que conseguem fazer suas aplicações na raça, sem planejamento. Contanto que não seja eu a fazer a manutenção depois.

Portanto, muito melhor planejar-se antes de fazer, e muito melhor ainda é usar a UML para o nosso planejamento.

“Mas peraí, o que esse ‘ao vivo’ do título tem a ver?”

Calma! É que nada está pronto pra essa apresentação e estou fazendo o sistema enquanto vocês leêm isso aqui. Esse post só tem a introdução, nos próximos posts eu mostro o meu progresso.

Leia o resto deste post »

Fuja do Exame e da Info

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido.

A imprensa escrita brasileira está lentamente apodrecendo a olhos vistos. A razão disso é simples, perdendo leitores qualificados para a internet, a imprensa resolveu, ao invés de investir pesadamente em uma nova frente de mídia, apelar para uma imprensa mais popular, focado em celebridades e reportagens de comportamento em detrimento de assuntos mais sérios. Claro que a imprensa de qualidade ainda está lá, porém vive uma fase de estagnação (a não ser as tão comum reformas gráficas) e falta de criatividade.

As revistas Exame e Info parecem viver num mundo pré-internet. Às vezes, até chegam a falar em algo do século XXI, mas falam como se eles próprios não entendessem. E o resultado são reportagens que não informam bem.

Um exemplo de confusão da mídia sobre as coisas do século XXI foi o surgimento do Orkut, que, tecnicamente falando, era e ainda é um dos serviços mais pobres de relacionamento social. Toda a imprensa brasileira noticiou seu surgimento, dando ênfase ao fantástico número de brasileiros, e a característica peculiar de só poder entrar com um convite de outra pessoa. Porém faltou o básico, o outro lado da notícia! Faltou dizer que não havia nada de especial nos brasileiros por ser maioria numa rede de relacionamento, já haviam outros antes do Orkut, como o Friendster, onde o número de americanos ultrapassava o de brasileiros. Faltou fazer uma crítica à própria imprensa for fazer uma de relações públicas do Google. Faltou mencionar a existência de outras redes como o MySpace e o Facebook e compará-las de maneira independente. Agora, a Info, especificamente, produz mais um desserviço ao fazer esse mesmo oba-oba com o Second Life.

A vacina? Bom, essa é só pra quem sabe inglês. Troque a assinatura de Info e Exame, por uma assinatura de Wired (americana) e The Economist (britânica), respectivamente. Tudo bem, as assinaturas são caras, mas você pode ler as edições impressas na internet.

Duas sugestões de leitura: uma fala sobre a internet, é do ano passado, mas até agora nenhuma revista brasileira escreveu algo comparável.

http://www.economist.com/surveys/displaystory.cfm?story_id=6794156

E outra que fala sobre o Second Life de maneira muito mais imparcial que o pessoal da Info.

http://www.wired.com/techbiz/media/magazine/15-08/ff_sheep

Boa leitura.

Voce sabe desenhar o MVC?

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido. Mas não se assuste, como esse texto tem alguma coisa de interessante, eu farei uma versão atualizada lá. E só removerei este texto depois de passar o link aqui.

Ei! Você programa em Web? Ou então programa em Swing? Ou faz telas em C#.NET? Então você já deve ter ouvido falar em MVC?!

“MVC? ” Eh… Ah! Claro! O MVC! He… he… Como eu poderia deixar de esquecer!”

Então, você seria capaz de explicar para a platéia o conceito por trás do MVC? (Perái, eu disse “conceito por trás do”? Credo! Eu estou parecendo aqueles pseudo-intelectuais do GUJ!)

“Eh? Agora? Assim de improviso?”

Isso.

“Ah não! O MVC é um negócio muito complicado!”

Meu, não é mais fácil admitir que você não sabe? Não vai doer.

“Tá bom. Eu ouvi falar mas eu não sei o que que é.”

Bom, calma. Você não é o único. Se bobear eu tambem não sei direito! E eu gostaria de lançar um desafio pra mim, pra você e pra todos vocês. Desenhem o esquema do MVC, sem fazer consulta a nenhum livro ou site, e expliquem-no! Tá, também não precisa responder pra mim com o seu desenho, é só pra ver se vocês mesmo sabem. Eu vou fazer o meu, sem consultar fonte nenhuma, e mostrá-los pra vocês. E aí, farei uma consulta na web e nos meus livros pra ver se está certo.

Portanto, não cliquem no more antes de terminar esse exercício (a menos que você realmente não queira fazer, óbvio).

Leia o resto deste post »

Pobrema de iscrita

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido.

Eu vi isso no site da APINFO.

24 Horas e a filosofia

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido.

Ou também você pode chamar este post de “Jack Bauer: o Maior Coordenador de Projetos que já Existiu”, ou então de “Bauer e o Executivo”, ou então “As 7 Horas das Pessoas Altamente Eficazes”, ou… Ah, você já entendeu.

O que você ainda não entendeu é o quanto um seriado de ação como 24 Horas pode nos ensinar a gerenciar projetos de software de maneira que-nem o RUP ou os processos ágeis chegaram sequer a sonhar. A Metodologia Jack Bauer é ideal para projetos que precisam correr contra o tempo, como é o caso da CTU quando ocorre uma ameaça terrorista.

O primeiro passo para adotar a metodologia Jack Bauer é dizer para si mesmo: “Eu possuo o espírito de Jack Bauer?”. Lembre-se de que o agente é capaz de largar sua própria vida em nome da destruição do terrorismo. E talvez só com isso você acredite que já é Jack Bauer, mas não é. O que diferencia Jack Bauer e você não é o fato de ambos trabalharem 24 horas ininterruptas, é o fato do agente da CTU usar essas horas de maneira muito mais divertida.

Vou te dar um exemplo: imagine que seu chefe tenha te passado um trabalho e dissesse: “Olha, o cliente precisa disso pra ontem, precisaríamos de 2 anos pra fazer um projeto como esse, mas nosso cronograma é de apenas 1 mês. Temos que fazer esforço redobrado.”

O que você faria? Nem RUP, nem processo ágil tem uma solução para essa situação, mas a metodologia Jack Bauer tem.
Leia o resto deste post »

O dia em que NetBeans 6 virou beta

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido.

Hoje foi um dia de cão! Justamente no mesmo dia em que o NetBeans 6 virou beta (já tinha um link escondido que o pessoal do GUJ publicou na semana passada, mas oficialmente mesmo é hoje). A primeira impressão minha foi: “Nossa! Que lento!”. É, demora pra carregar, principalmente a primeira vez. Depois é: “Nossa! Que chique!”. Mudaram a janela incial do NetBeans, parece mais amigável. Aí então vira: “Nossa! Que alívio!”. Porque agora tem gerador automático de getters, setters, construtores baseados em propriedades, equals e hashCode, além de sinalizar erros com uma bolinha vermelha nos arquivos com problemas, e de sinalizar imports e variáveis desnecessárias. Aí finalmente vira: “Nossa! Que bosta!”. Não tente editar o web.xml manualmente e via formulários ao mesmo tempo, não tente inserir e remover jars do projeto várias vezes e não tente descobrir porque que fica mostrando uma bolinha vermelha, porque às vezes não tem erro nenhum.

Claro que é beta, isso pode mudar (ou não). Apesar de não ter me apaixonado pelo NetBeans, gostei dele. Mas quem se apaixonou mesmo foi o fanzoca do java! Segundo ele, o NetBeans é a melhor coisa do mundo depois do próprio Java. Mas isso constrasta com sua própria opinião de que Java é tão fácil que se poderia programar uma aplicação enterprise com apenas o application server, o ant e o vim. Claro que não passa de uma mentira deslavada! Ele vive copiando e colando o build.xml, mas ele nem entende direito o que está nesse arquivo, e se ele estiver no vim e apertar ESC sem querer, ele grita: “Ih! Não tô conseguindo mais digitar!”. Mas fazer o que, né? Cada um acredita no que quer.

Nem tudo em Java são flores

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido. Mas não se assuste, como esse texto tem alguma coisa de interessante, eu farei uma versão atualizada lá. E só removerei este texto depois de passar o link aqui.

Tem gente que é muito fã da linguagem Java. Tem gente que além de ser muito fã, considera-a perfeita, linda e maravilhosa. Tem gente que além de ser muito fã e considerá-la perfeita, linda e maravilhosa, seria capaz de comê-la se fosse mulher.

Se você se enquadra entre os itens acima, amigo, nem tudo em Java são flores! Não sei se você sabe, mas algumas coisas em Java são cabeludas, mais até do que outras linguagens, sejam elas mais novas ou mais velhas que Java.

Um exemplo é o mecanismo de template do C++ que em Java é chamado de generic. Quando o Java 5 veio muita gente olhou é disse: “Ah! Agora Java tem template que-nem C++!” Peraí, essa pessoa disse “que-nem”? “QUE-NEM”?! Ora! Vai dormir! Nunca desconfiou porque em Java o mecanismo não é chamado de template? É porque generics é pior, é mais fraco, é mais “for dummies” que template! Se você não acredita, vou te mostrar.
Leia o resto deste post »

Publicado em C++, Java. 2 Comentários »

Seção: Apanhando do… Apache Wicket

Agora em novo endereço: www.objectzilla.com.br. Atualize-se, este conteúdo será logo removido. Mas não se assuste, como esse texto tem alguma coisa de interessante, eu farei uma versão atualizada lá. E só removerei este texto depois de passar o link aqui.

Existem duas verdades sobre frameworks Java:

1- Framework Java é que-nem espaço do Gmail, mais de 2900 e aumentando.

2- Não importa o quão cuidadoso você é na codificação. A primeira tela da sua aplicação é o do seu servidor com todos aqueles stacktraces.

Wicket, é sim, mais um daqueles frameworks que seu chefe só aprovaria colocar no sistema da empresa se estiver bêbado. E AINDA! Assim como todos frameworks Java existentes, a primeira aplicação sua nesse novo framework não vai funcionar.

Mas depois desse susto inicial você vai gostar dele. Sabe por que? Leia o resto deste post »