Category Archives: javace

Retrospectiva JavaCE 2012

Esse ano foi de grandes realizações na nossa comunidade, fizemos nossa primeira grande conferência, o primeiro Hackathon com prêmios no ceará, continuamos as ações filantrópicas, eventos menores, mantivemos a cordialidade nas regras da lista e organização de caravanas com descontos para os principais eventos nacionais.

Palestrantes da JavaCE Conference

Agora a força de uma comunidade é medida pelas ações de seus membros, pedimos à própria comunidade para analisar o ano com uma retrospectiva no formulário enviado ao grupo. Destaquei algumas respostas dentre as que recebemos:

Quais os pontos positivos na nossa comunidade em 2012?

“Integração com a rede de desenvolvedores, troca de conhecimento que é extremamente importante.”

“Ponto positivo o sucesso na organização da javace conference, um evento de altissimo nivel a preço acessivel e muito bem organizado. As açoes filantropicas tambem é um ponto positivo principalmente quando são ministrados mini cursos a preços irrisorios como uma lata de leite em pó.”

“Amizade”

“Compartilhamento de informações relevantes à comunidade.”

“Achei excelente  a iniciativa do evento JavaCE Community Conference.”

“Caravana QCON JAVA CE”

“Partilha de conteúdo, sempre ajudando quem tah com dúvidas. Caravanas e participação em eventos a nível nacional”

“Lista bem movimentada e com boa participação.”

“Troca de infomações, possibilitando assim o crescimento homogeneo d comunidade”

Quais os pontos negativos?

“bom se todos os eventos fossem em fins de semana…”

“o ponto negativo não se enquadra aos organizadores mas sim aos amantes de tecnologia do ceará que ainda não despertaram para importancia que certos eventos tem, deixando a desejar em presença nos mesmos”

“Ainda precisa de mais organização”

“Como sempre, as pessoas, quando chegam a um determinado patamar de conhecimento, acho que elas perdem um pouco a humildade, ou pelo menos esquecem que não nasceram sabendo, e quando uma dúvida, por mais simples que seja é postada, o pessoal fica diminuindo, menosprezando, caçoando e até mesmo humilhando os detentores pouco conhecimento. Creio que isso seja um mal do ser humano, pois vejo isso em outros lugares. Consequência disso, algumas pessoas se sentem inibidas quanto a perguntar, como nas salas de aula, que alguém perguntava alguma coisa e os outros “mangavam”! Contudo, creio que esse comportamento, pode ser modificado, poderia ser feito uma campanha mostrando e pedindo humildade na passagem de conhecimento, por mais simples que seja a dúvida. ”

“Gostaria de mais eventos pago de alto porte. Adoraria a organização de dojos de algumas linguagens.”

“Sucessivas discussões acerca de assuntos de sindicato. Não dá em nada e geram threads gigantescas.”

“Poderia haver mais discussões técnicas na lista. Nos últimos tempos só vejo gente tirando dúvida sobre frameworks ou dúvidas que não vão além do feijão com arroz que usa pra trabalhar com Java. Poderia haver discussões sobre arquitetura de sistemas, boas práticas de programação, uso de metodologias ágeis, técnicas de teste de software e por aí vai. Não sei se isso fugiria aos objetivos da lista, mas eu creio que não.”

“Discussões boas que as vezes se arrastam com colegas perdendo a noção de quando o assunto já deu o que tinha que dar.”

“As threads as vezes tem muita discussão desnecessária.”

“Algumas postagens na lista sao meio com a intenção de propaganda, mas acho que isso é normal e não compromete.”

Deveríamos repetir o evento JavaCE Community em 2013?

Todos em uníssono escreveram: SIM

Sua impressão sobre o evento JavaCE Community realizado em agosto

“Muito bom, palestras de alto nivel tecnico e muito bem organizado.”

“Muito bom o evento! divertido e aproveitador…”

“Ótima organização, ótimos palestrantes e boa pontualidade. Exemplo a ser seguido.”

“Muito bom. Quero mais.”

“O evento tem tudo para crescer mais a cada edição.”

“Evento bem organizado com a presença de grandes nomes do desenvolvimento de software no Brasil. Palestras bem diversificadas e com temas bem selecionados.”

“Boa organização e bom conteúdo.”

“Evento muito bom, excelente. Nível dos palestrantes altíssimo. Só achei um pouco longo, quase todo mundo saiu antes do evento terminar.”

Extra

“Uma sugestão poderia se fazer workshops/mini-cursos no javaCe.”

“Parabéns aos que dedicam seu tempo à comunidade”

Considerações

Vamos analisar as respostas e planejar todas as ações do grupo tendo em mente a melhoria contínua sobre as opiniões dos próprios membros dessa comunidade vibrante.

Guilherme Silveira

Guilherme Silveira

Temas destaques para 2013

Deixo minha impressão sobre alguns temas que abocanharão as discussões e relevâncias nos principais eventos agora em 2013 pelos “ventos que nos assopram”:

HTML 5, FP (Programação funcional) entrando no Mainstream, Mobile – tudo indica que aparentemente Android terá um destaque maior, Rails 4 e ecossistema em volta do Java 7 (inclusive reforçando programação funcional).

Minha grande dúvida é: Java retoma dando uma freada em Scala na JVM como principal destaque na plataforma?

Investigaremos esses tópicos e muito mais em eventos ao longo do ano, até lá!

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated matter. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may turn on erectile malfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Desenvolver em Java em pleno 2012, mesmos erros de 2005

Post já nasce datado, mas só faz sentido para agora mesmo. Passei uns 10 anos da minha vida programando na linguagem Java e nos últimos 3 anos eu peguei poucos projetos, mas o que me impressiona nesses poucos projetos é que as coisas não mudam, inclusive a tara por patterns desnecessários e antipatterns.

Comecemos por Nomenclatura

Se voce chama sua classes de WhateverController, WhateverService e ou WhateverDAO, voce está usando notação hungara desnecessária e complicando a modelagem do seu negócio. Se o seu framework te obriga a nomear as classes com sufixos ou prefixos, ele está errado e é melhor procurar uma solução.

Se voce chama classes como WhateverModel ou WhateverEntity aí voce está estragando a amizade, se mate.

Se voce tem uma classe chamada Whatever e tem propriedades como nameWhatever, leia urgente Clean Code.

 

BOLOVO

As pessoas criavam entidades chamadas WhateverManager por não saberem orientação a objetos, se existe isso no seu projeto na maioria das vezes não tem muito o que fazer, mude de emprego ou de projeto. Mas… se for corajoso comece a refatorar isso guiado por testes, o livro “Growing Object-Oriented Software, Guided by Tests” vai te ajudar bastante. O Paulo Silveira e o Phillip Calçado nomearam esse anti-pattern de BOLOVO.

DAO

DAO é o pattern inútil quando falamos de negócios, principalmente CRUD. A não ser que você esteja codando Framework ou comittando em projetos como o Hibernate, voce não precisa escrever DAO. Voce usa Hibernate, a Session é seu DAO.

Se voce precisa de uma entidade para agrupar alguma lógica de ORM mais complexa no seu negócio – como algumas transações com rollback lógicos, uma alternativa é Repository. Mas por favor, leia o artigo do Phillip primeiro e não faça WhateverRepository. Não há problema nenhum voce ter Criteria dentro de um controller por exemplo, afinal isso é um pattern bem estabelecido e o mapeamento um-pra-um com outra entidade só vai complicar e não traz ganho algum.

Só uma dica aproveitando o tema ORM, o Hibernate trabalha e sempre trabalhou com convenções usando anotações, então não precisa mapear tudo. Basta um @Entity na maioria das vezes. Nos relacionamentos observe se ele já não mapeia tranquilo apenas com o @ManyToOne e diminua o ruído.

Em termos de Patterns, por mais caduco que já esteja, o PoEAA do Fowler ainda reina.

 

Interface e Implementação

Existe uma boa prática como guia que é desenvolver orientado a interface, só que isso não é lei e deve ser usado o bom senso como sempre. A maioria dos desenvolvedores criam a Interface Whatever e uma – e apenas uma – implementação WhateverImpl. Isso é desnecessário e muita gente nem sabe que o Spring sempre funcionou injetar em classes concretas e não apenas em Interface. Deixe a Interface gritar na sua cara para refatorar.

Service e Domain Driven Design

Aqui que mora o perigo, sempre quando eu vejo WhateverService a implementação dessa classe é o mesmo código do antigo WhateverManager. Depois que Domain Driven Design fez sucesso todo mundo finje que modela o domínio.

As classes do seu domínio devem e podem ter métodos de negócios, se ela apenas tem propriedades é sinal do BOLOVO e representa uma tabela do banco de dados vitaminada. Um Service não é a parte de negócios do seu domain, a grosso modo de explicar o código dele explodiu na sua cara por manipular duas ou mais entidades e não ser responsabilidade de nenhuma delas.

ANUNCIO EM LETRAS GARRAFAIS

Cuidado com os livros que eu indiquei, quando foram escritos o Hibernate e o Spring estavam nascendo ou ainda não tinham nascidos, portanto leia com moderação. Várias coisas já forma implementadas pelos Frameworks e não vá fazer uma roda por cima de outra roda.

TL;DR

Cuidado com o código que voce escreve, faça-o guiado por testes, leia bons livros de Orientação a objetos e Patterns. Não escreva código igual aos outros porque é assim que todo mundo faz.

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a extremely complicated problem. Matters, like “coupons for viagra“, are united numerous types of health problems. If you need to take recipe medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an hard-on. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

QCON São Paulo 2011

Diferente do ano passado, eu não consegui assistir muitas palestras e ignorei todos os keynotes após o carinha do Twitter.

O Evento

Começamos o sábado com a abertura do Paulo SilveiraLeonardo GalvãoFloyd Marinescu [os 3 não precisam de apresentação].

Logo em seguida veio a palestra morna do Jim Webber que tentou ser “engraçaralho”, mas … sou cearense, entendo um pouco de humor. Nada de novo e sinceramente, falar de Rest, WebServices, SOA, etc é que nem falar de Agile hoje em dia, precisa muita criatividade para não ficar enfadonho.

Sérgio Lopes apresentou um Keynote que eu já sabia tudo decorado, assunto batidão e… surpreendeu. Sério, apesar do assunto ser algo que eu já dominava e até já escrevi algumas coisas no blog há muito tempo, ele conseguiu pegar um enfoque – que foi analisar os sites de todos os inscritos – e dissecar em estatísticas na apresentação. Ou seja, não foi apenas uma listinha de boas práticas e TODOs para se fazer no seu site ou WebApp, ele encaixou as estatísticas e provou para todos “`a quente” o mal que isso provoca e quais prejuízos podem ocorrer, além disso publicou no blog da Caelum um dos posts mais completos que já li. Melhor do evento.

Aí entrou o cara do Twitter… saí com menos de 5 minutos. Não deu, o cara estava totalmente nem aí e tamanha apatia me deixou sem vontade alguma de assistir aquilo. Depois desse cara eu resolvi não assistir mais nenhum Keynote por puro preconceito mesmo, hoje em dia os Kyenotes em todos os eventos é a parte mais chata, experiência do AgileBrazil também. Provavelmente perdi palestras fantásticas, inclusive ouvi falarem muito bem do cara da NASA.

Minha sugestão é acabar com esse lance de Keynote nos eventos, isso é muito século 20.

Na parte da tarde do sábado e domingo eu assisti algumas palestras escolhidas a dedo, mas esse lance de trilhas me deixa doido, nunca consigo ficar parado.

No sábado eu fiquei pulando de palestra em palestra e assistindo um pedaço de cada. Vi um pouco do Vinicius Quaiato, outro pedaço do  Guilherme Silveira e um pedaço dos guys Alberto SouzaLucas Cavalcanti, enfim, maluquice. Assisti na íntegra a palestra iOS e sincronização de dados do Mauricio Linhares. Tentei assistir ao mesmo tempo as palestra do Rodrigo Kumpera, Raphael Lacerda e do Renato Willi, aí pirei e desci para conversar com a galera. Tudo que assisti estava muito bom o que me deixa sempre apreensivo de perder alguma coisa, acabo perdendo tudo.

Depois assisti todos os Lightning Talks do Host: Ricardo Valeriano.

Como essa estratégia de tentar assistir parte das palestras tinha sido loucura no sábado, no domingo eu me concentrei e assiti do Vinícius Baggio, Emerson Macedo e quase totalmente a do Cristiano SanchezWladimir Domingues. Todas fantásticas e sempre com alguma coisa que te deixa com aquela curiosidade de googlar depois de assistir. Um pequeno destaque para o Vinícius Baggio que tocou num assunto muito importante na comunidade ruby, essa história de que não faz uma boa prática ou não se preocupa com qualidade do código porque isso é coisa de Java ou whatever.

Primeiro período da tarde eu passei terminando meus slides e apresentando minha palestra 🙂

Minhas Palestras

No sábado eu apresentei um Lightning Talk: “Engine de template em Javascript com HTML Sprites”.

Engine de template em Javascript com HTML Sprites
[slideshare id=9243650&doc=qconsp2011-lightningtalk-110913114319-phpapp01]

No domingo eu apresentei a palestra: “Combinando OO e Funcional em javascript de forma prática”.

Combinando OO e Funcional em javascript de forma prática
[slideshare id=9245234&doc=qconsp2011-palestra-110913141923-phpapp02]


Foto engorda a gente, né?

Networking

É muito importante para a comunidade cearense participar de grandes conferências fora do nosso estado, acabar com essa barreira geográfica e colher a sabedoria dessa galerinha lá na origem. Esse ano conseguimos levar em torno de 40 pessoas pela #caravanajavace e foi fantástico.

Não vou citar o nome de nenhum amigo que reencontrei ou conheci “ao vivo” porque não vai caber todo mundo, mas a experiência é sempre indescritível.

Visita a Empresas

Eu me programei para visitar algumas empresas e conhecer o ambiente de vários amigos e pessoas que admiro, mas infelizmente a correria de SP não nos deixa otimizar o tempo, só consegui dar uma passada na sexta de manhã pela Caelum e um pulo na manhã da segunda na Concrete Solutions – SP. Abaixo um vídeo que o Luca Bastos gravou na Concrete.
[iframe http://player.vimeo.com/video/28998439?title=0&byline=0&portrait=0 398 224]

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very much complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may switch on erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.