O mais legal do Java

março 23rd, 2013

Muitos podem dizer que o mais legal do Java é linguagem de programação, outros a característica de rodar numa máquina virtual e ser multi-plataforma, ou então por ser amplamente utilizada e aberta, ou até mesmo pela riqueza de bibliotecas, APIs e frameworks. Mas eu digo que é outro fator, a sua organização. Quero falar um pouco de algo que pouca gente sabe, principalmente para os iniciantes e para quem não esta muito envolvido com o ambiente Java. Que é comunidade dos desenvolvedores da especificação da tecnologia Java, ou seja, a JCP (Java Community Process).

A JCP é a comunidade que define todo o futuro e evolução da tecnologia Java, no qual não é possível falar dela sem falar da JSR (Java Specification Request). Que nada mais é do que a especificação de uma funcionalidade, característica que plataforma Java deve possuir. Ou seja, a plataforma Java nada mais é do que uma composição de várias JSRs. Por exemplo, a JSR 220 possui toda a especificação da EJB 3.0, ou seja, é um documento contendo tudo o que o EJB 3.0 possui e mais uma implementação de referência. Um paralelo na orientação a objeto seria:  a JSR definiria a interface, a implementação de referência seria uma classe que nós implementaríamos de referência, e todos os servidores de aplicação com EJB 3.0 teriam que implementar esta interface.

E tudo que o Java possui, considero que isto é o mais legal do Java.  Ou seja, é uma comunidade livre, aberta e quem tiver interesse pode participar e até mesmo abrir uma JSR ou liderar uma. E cá entre nós, acredito que esse é o segredo do grande sucesso e da ampla utilização da plataforma Java pelo mundo.

Só para você ter uma ideia do poder da JCP, entre os membros do comitê executivo, estes membros são quem votam e escolhem quais são as JSRs que entrarão nas próximas versões e evoluções da tecnologia Java estão gigantes como: HP, IBM, Intel, Nokia, Oracle e SAP.

Aqui tem alguns dos membros da comunidade, e da pra ver que ela é composta por profissionais com muita bagagem, muita experiência e que trabalham em grandes empresas que são fornecedoras de tecnologia. E o mais importante, são de VÁRIAS empresas, é uma comunidade, quem quiser pode abrir uma JSR e várias empresas votam em prol da evolução do Java, o seja, não é algo fechado e definido internamente por uma única empresa.

Enfim, é isso que eu acho o mais legal do Java, ela é aberta, em constante evolução e praticamente formada por um consórcio de empresas e profissionais engajados na sua evolução. E além de tudo isso, É DE GRAÇA!

 

abraços,

Tadeu Gois

Java code conventions

março 16th, 2013

Meu primeiro post é sobre um tópico não muito valorizado e pouco discutido, pelo menos nas equipes no qual trabalhei, que é sobre convenção do código Java.

Acho que todo desenvolvedor Java, antes mesmo de começar a escrever uma linha de código, deveria ler esta documentação de padronização. O documento em PDF pode ser acessado por http://www.oracle.com/technetwork/java/codeconventions-150003.pdf . e é a convenção que o pessoal da SUN, criadores do Java,  seguiam e recomendavam. Abrange nomes de arquivos, organização de arquivos, recuo, comentários, declarações, espaço em branco, convenções de nomenclatura, as práticas de programação. Além de um exemplo de código.

Como mesmo diz no próprio site da Oracle que fala sobre estes padrões http://www.oracle.com/technetwork/java/codeconv-138413.html ,

– 80% do custo do tempo de vida de uma peça de software vai para manutenção.

– Dificilmente qualquer software é mantido por toda a sua vida pelo autor original.

– Convenções de código melhoram a legibilidade do software, facilitando o entendimento para os desenvolvedores no novo código. Ou seja,  um entendimento mais rápido e completo.

Portanto, não é difícil conhecer estas convenções, pode ser um pouco chato no início, mas com certeza vale a pena. Depois que acostumar a ler um código nesses padrões, quando você encontrar um código que esta fora das convenções você vai achar ele muito bagunçado e até mesmo um pouco sujo. Além do que, o documento esta bem escrito e abrange praticamente todas as situações possíveis e com um exemplo bem completo de código no final do documento.

 

abraços,

Tadeu Gois

 

 

 

 

Meu Início na Informática

março 11th, 2013

Meu primeiro contato com computador foi por volta de 1996 no computador do meu primo que tinha aquela clássica tela preta doDOS que digitava o comando win para iniciar o windows 3.1 ou 3.11, não lembro exatamente qual versão era. Mais o jogo DOOM e o futebol com FIFA foram inesquecíveis. Lembro que esse micro era um 486 e tinha entrada para o disquete de 5″1/4!!

Minha querida mãe vendo o meu interesse em informática, comprou o meu primeiro computador em 1997. Com MS Windows 95 e o pacote Office completo, com um curso de MS Word em CD-ROM e livro. Em poucos dias dominava o MS Word e aos 14 anos já tinha decidido que curso de graduação iria fazer, era na área de tecnologia da informação sem sombra de dúvidas.

Em 1998 lembro que comprei minha primeira revista INFO buscando por conhecimentos mais avançados em informática. E a linguagem do momento era Delphi, ou seja, vou aprender Delphi! Mas antes pensei, vou fazer graduação numa universidade pública de qualidade, ou seja, UDESC ou UFSC. Ou seja, agora o desafio era passar no vestibular. Mas vale registrar que o meu primeiro contato com programação foi em Python, encontrei um tutorial na internet e embora fazer os programinhas de Hello World, entrada de dados e print da tela, fantástico!! Não via a hora de aprender a programar de verdade!

Em 2001 foi um ano fundamental na minha vida. Como terminei o 2º grau em 2000 e não passei nos vestibulares da UDESC e UFSC, 2001 foi o ano de pré-vestibular. Muito estudo, muitas madrugadas estudando, mas valeu muito a pena! Final de 2001 passei em 1ª chamada para UDESC em Ciência da Computação e 8ª ou 9ª chamada na opção 1-A na UFSC que era Sistemas de informação. Ou seja, vamos para Joinville estudar Ciência da Computação na UDESC.

Então em 2002 começou a brincadeira… Aprender algoritmos em portugol e depois a programar em Linguagem C foi muito legal! Os trabalhos eram entregues num disquete e rodar os programas feitos por você mesmo em C eram a realização de um sonho. Em apenas 1 semestre era bastante conteúdo, além de aprender a resolver problemas e pensar como algoritmos, (quem não lembra da sequência de Fibonacci e do fatorial) a linguagem C era vista num bom nível. Além de resolver problemas relativamente complexos em C terminamos trabalhando com struct e geração e leitura de arquivos binários. Ponteiros em C? Isso era ainda algo muito misterioso, o melhor ainda esta por vir no 2º semestre com AED (algoritmos e estrutura de dados). Aprender TDA (Tipo de Dados Abstratos) foi algo que muda a cabe&ccdil;a do programador, e linguagem C com ponteiros e alocação dinâmica de memória, tava tudo dominado.

Mas o que me ajudou muito a entrar de cabeça mesmo na área de desenvolvimento de softwares foi em 2003 quando me tornei monitor na disciplina de AED, ajudar os colegas a resolver os BUGs dos programas em C me fez aprender muito. Quero agradecer muito aos professores Gerson, meu primeiro professor de programação na disciplina de LPG-1, e ao Gilmário de AED. Que depois foi por mais 1 ano meu professor orientador na monitoria de AED. E este ano foi fundamental para minha carreira e meu crescimento como desenvolvedor de software. Também quero deixar um agradecimento a todos os professores que fizeram parte da minha formação tanto na graduação como na especialização, muito obrigado aos mestres!

Meu primeiro contato com a linguagem Java foi em 2004, até lá, pouco sabia a respeito do Java, o meu negócio era C. O que sabia era apenas que era uma linguagem orientada a objetos, não precisava se preocupar com alocação de memória e rodava multi-plataforma pela sua máquina virtual. Mas o primeiro trabalho nesta linguagem foi inesquecível. Era em sistemas distribuídos e era para desenvolver um sistema cliente-servidor se comunicando por RMI, e o cliente tinha interface com o usuário em Swing. Consegui fazer, mas foram algumas madrugadas acordadas e aprendi muito.

O ano de 2006 concluí o curso de graduação e meu TCC foi sobre análise e projeto de sistemas orientado a objetos. Que tem uma ótima abordagem do assunto baseando se muito no livro de WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Ed Campus Ltda, 2004.

A minha experiência profissional em Java começou em 2007, me lembro que era uma customização com Apache WebDav, e ai percebi o tamanho da plataforma Java, tudo que ela oferece, todas as ferramentas, APIS, etc… Era algo gigantesco para um programador que conhecia o C, um pouco de C++ e também PHP. Mas decidi que iria dominar esta linguagem e plataforma, sabia que não era algo rápido e que levaria anos, mas teria que ter um começo. E assim começou minha carreira como desenvolvedor em JAVA. Com muita dedicação, estudo e leitura de livros com forte embasamento teórico e prático, estudo para obtenção de certificações, pós-graduação com especialização em tecnologias Web com foco na linguagem Java, cursos por webcast e principalmente desenvolvendo programas com qualidade que ajudem e resolvam problemas para os usuários. E assim contínuo apredendo e evoluíndo para me tornar um profissional cada vez melhor.