Arquivo da tag: mvc

Acelerando o desenvolvimento de GUI’s

Um dia desses, estava refletindo sobre o processo de desenvolvimento de aplicações comerciais desktop. Fiz um retrospecto da minha evolução em um projeto e notei que estava gastando demasiadamente meu precioso tempo me precupando  com coisas chatas e repetitivas como o desenvolvimento de GUI. É muito chato se comportar como um “macaco digitador de código”.

Toda essa carga de precaução em cada código que crio para essa aplicação vem se acentuando desde que comecei a babar pelo Grails e pela plataforma WEB. Definitivamente, quando tiver a primeira oportunidade mudo a plataforma dessa aplicação p/ a WEB sem pena e nem dó, sorte minha que o core da lógica de negócio está bem separada da UI.

Enfim, voltemos ao Desktop. Aquela papagiada de CRUD tava me dando nos nervos … Eram JTextFields para cá, JComboBox para lá, os malditos JTables e seus TableModels … enfim Swing. Nuss …

Muito código repetido, requisitos transversais à lógica de negócio, setters p/ cá, getters p/ lá … aí estão os bedsmells em meu código. Na minha mente logo vem o Martin Fowler gritando, exigindo e experniando: REFRACTORING !!!!!!! Calma Fowler, todo esse código que estou fazendo no braço pode ser gerado automaticamente. Vejamos, cada tela representa um POJO que deve ser carregado através do mecanismo de persistência. Eu preciso encapsular esse objeto de forma a acessar cada um de seus atributos, assim como conhecer de ante-mão os próprios. Estudei a geração de código-fonte com templates através do FreeMarker .

Blz, montei toda a estrutura baseado no modelo MVC do framework CoCoa, tava indo muito bem e tava ganhando caras de um “Lucas MVC Style Framework”. Depois de um tempo, um incômodo: Por que telas de cadastro tão ridículas, com uma mísera quantidade de campos requer tanto código-fonte gerado ?? Comecei a pensar sobre o impacto na performance à longo prazo e na facilidade de manutenção. É … meu “Lucas MVC Style Framework”  tinha tomado o caminho errado …

Então fui em busca de soluções e lembrei-me de um tal de Gênesis, um framework brazuca que ouvi falar tempo atrás mas ñ havia dado confiança. O gênesis trazia tudo que estava precisando de forma clean:

  • Swing binding
  • Formatadores, conversores
  • Remoting
  • Suporte a transações
  • Paginação

O uso é simples, o framework é bem documentado, há uma lista de discussão p/ usuários, já tem alguns componentes out of the box “à lá” plug-and-play style e funcionalidades como o binding de componentes e atributos de beans que economizaram-me linhas de código e tempo p/respirar aliviado. Bendito sejão os @Forms e @ViewHandlers. Vale a pena conferir.

Deixe um comentário

Arquivado em desktop, freemarker, genesis, mvc