Deixando tudo mais simples…

Sempre gostei de ensinar (e também de aprender). Trabalho com ensino de computação desde 2003, com monitorias na faculdade em linguagens de programação, bancos de dados, passando por aulas de web design, e, de 3 anos para cá, com aulas na Pós de Java e na graduação. Desde 2003, toda aula é um novo ensinamento, consequentemente, uma nova forma de se enxergar cada assunto ministrado. Se este blog existisse desde a época mencionada, provavelmente já teria centenas de posts citando cada mancada que cometi. Vou colocar a última, que aconteceu na aula da sétima turma Pós Java.

A disciplina se chama “Persistência com Jpa e Jdbc”. Para esta disciplina, obviamente é necessário um banco de dados relacional. APIs como Jpa, juntamente com ORMs como Hibernate, abstraem quase toda a particularidade dos bancos, mas, mesmo assim, o ideal é seguir as aulas com um banco específico, para fazê-los acostumar com este e evitar perda de tempo com configurações desnecessárias.

Diante do que foi dito, o banco escolhido foi o Mysql. Fiz questão de efetuar o download de uma versão no-install e colocar em um diretório padrão das minhas aulas, para os alunos sempre efetuarem o download quando precisarem. Os Scripts de criação do banco também estavam em um diretório padrão das minhas aulas e, na prática, bastava executar poucos comandos como na figura abaixo para ter o banco com seus scripts de tabelas importados

Como eu gosto de saber comandos e escrever scripts, não via o menor problema em um aluno de pós de Java digitar isso, pois, se fazem pós de Java, obviamente, creio eu que gostam de programar. Mas, percebi que, alguns alunos demoravam para deixar o banco 100% configurado, e outros nem tentavam. Percebi que, estava cometendo 2 erros graves:

1) Conhecer comandos do banco não está na ementa da disciplina, logo, eles precisam de um banco para aprender os conceitos da disciplina, mas não de dominá-lo. Em casa, poderiam trabalhar com qualquer outro banco que dominam melhor, portanto, em sala, deveriam trabalhar com uma configuração o mais simples possível;

2) Dominando muito ou pouco de Mysql, gasta-se algum tempo para fazer isso. Seja buscando o banco nos meus diretórios da rede, descompactando o arquivo, efetuando um start no banco, importanto scripts. Algum tempo é gasto, e o pior, repetido toda aula. Este tempo deveria ser eliminado.

Com isso, para a aula de sábado passado (10/09/2011), preparei algo diferente. Como eles já utilizam a IDE Eclipse para criarem seus projetos, comecei a trabalhar com um banco que pudesse estar dentro de cada projeto, consequentemente, comandos como subir o servidor do banco, client do banco, poderia ser realizados cada um com 1 clique apenas. O banco escolhido foi o clássico Hsqldb e os scripts ficaram como na figura abaixo

Neste cenário, com 1 clique os alunos sobem o banco. Com outro clique, sobem uma instância do client, conforme figura abaixo

Com outro clique, atualizam no banco o estado de seus POJOS (Plain Old Java Objects). E, por fim, com outro clique, criam entidades para cada tabela do banco.

É óvbio que está muito mais fácil, muito mais simples. O único aspecto negativo é que, provavelmente, não trabalhariam com este banco em um ambiente de produção, mas, isso não é o foco da disciplina, pois frameworks como o Hibernate automatizam a persistência, seja em Oracle ou em Mysql ou neste banco simples de 600  kb, reduzindo problemas de vendor.

E nem me sinto culpado por “deixar os alunos mal acostumados” por apenas clicarem. Quem quiser, pode abrir o arquivo de script e ver como fiz as tasks. Podem pegar os comandos das tasks e usar em linha de comando ou trabalhar com outro banco. Mas, o mínimo esperado está pronto para todos trabalharem nas aulas com mais produtividade. Até a escolha do framework Ant foi pensada, pois, o Eclipse já possui embutido este framework. Se eu estivesse trabalhando com outra opção, talvez teria que trazer plugin para os alunos instalarem, consequentemente, mais perda de tempo desnecessária.

Enfim, para concluir, eu gosto disso. Não, não gosto de errar. Eu gosto é de detectar meus erros e procurar acertar. Gosto de ouvir críticas construtivas, gosto de me criticar, porque, quem está interessado em produzir o melhor, precisa sempre de evolução. E a evolução vem com os erros. Um dia, quem sabe, alcanço a sabedoria de uma forma melhor, deixando de errar vendo os erros dos outros.

 

About CarlosEduardoXP

Especialista em desenvolvimento de Sistemas Distribuídos, sempre aplicando boas práticas e padrões difundidos na comunidade. Auto didata, fanático por refatoração e performance, sempre buscando reutilização e testes automatizados cada vez mais eficazes.
This entry was posted in Software Development. Bookmark the permalink.

4 Responses to Deixando tudo mais simples…

  1. Leon Parreira Garcia says:

    Olá professor, seu site está ficando excelente!
    Abraço

  2. Para mim, como seu aluno, as duas abordagens estão sendo muito produtivas, pois nunca tinha trabalhado com MySQL e muito menos com Hsqldb. E, para quem quer aprender MESMO, o que vier é lucro rsrsrs

  3. rodolfo4j says:

    Olá Carlos, de fato, são raros os professores que tem uma atitude legal como a sua diante de críticas. Embora seja nobre a intenção de trazer mais conteúdo para a disciplina, eu vejo 2 problemas, no caso da pós: a escassez de tempo e a diversidade da turma. Por isso eu acho fundamental manter o foco no conteúdo proposto, pois assim, quem está vendo pela primeira vez consegue aprender e quem já tem algum domínio tem a chance de se aprofundar no assunto. Assim, cada um tem mais liberdade de procurar o conhecimento de acordo com sua necessidade e interesse.

  4. rodolfo4j says:

    De qualquer maneira, meus parabéns!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s