Categoria: desenvolvimento de software

  • Apodrecendo seu software com rebeldia

    Apodrecendo seu software com rebeldia

    Rebeldia é algo muito lindo, mas em software pode ser uma desgraça.

  • Groovy/Grails, Spring e JavaScript Brasil por dentro – nossa arquitetura de comunidades

    Groovy/Grails, Spring e JavaScript Brasil por dentro – nossa arquitetura de comunidades

    Como é a arquitetura do sistema que mantém as comunidades Groovy/Grails, Spring e JavaScript Brasil e como foi evoluída no decorrer destes 7 anos.

  • Acabo de publicar mais um guia: Usando Webpack

    Acabo de publicar mais um guia: Usando Webpack

    Acabei de publicar um guia sobre Webpack para aqueles que, como eu, pensam mais no back-end que no front-end.

  • Quando o comentário realmente documenta o código

    Quando o comentário realmente documenta o código

    Algumas dicas rápidas e fáceis que lhe ajudarão a escrever comentários mais úteis em seu código fonte.

  • “Legado” é um termo maldito

    “Legado” é um termo maldito

    Por que não uso mais o termo “legado” com meus clientes e colegas de trabalho (e o que uso em seu lugar)

  • Minimizando a necessidade do deploy em aplicações web monolíticas

    Minimizando a necessidade do deploy em aplicações web monolíticas

    Como minimizar os procedimentos de implantação em aplicações web monolíticas usando como exemplo o código fonte do Grails Brasil

  • Modularizando JavaScript com Spring MVC e Jawr

    Modularizando JavaScript com Spring MVC e Jawr

    Como modularizar JavaScript em um projeto Spring MVC usando o excelente projeto Jawr.

  • Repensando micro serviços (microservices)

    Repensando micro serviços (microservices)

    A questão dos micro serviços ainda me acompanha. Desde a publicação do meu último post sobre o assunto venho recebendo feedback de diversas pessoas além de ter entrado em contato com tantas outras. Com a mente um pouco mais clara (ao menos espero) chegou a hora de expor minhas conclusões correntes sobre o assunto.

  • O que é arquitetura baseada em micro serviços?

    O que é arquitetura baseada em micro serviços?

    O que é uma arquietura baseada em micro serviços? O que ela nos trás de novidade (se é que há novidades) e como muda o nosso modo de pensar o desenvolvimento de aplicações Java?

  • Uma proposta para melhorar o mercado de software

    Uma proposta para melhorar o mercado de software

    Há dois diálogos que escuto constantemente quando o assunto é mercado de desenvolvimento de software. O primeiro se dá entre desenvolvedores ou pessoas que atuem neste mercado como fornecedores: _ Nossa, eu fico vendo o pessoal das áreas de engenharia e medicina. O sujeito já sai da faculdade com um salário melhor que o nosso. _…

  • Armadilha: evitando o programador picareta

    Está precisando contratar um programador? Este post talvez lhe economize uma fortuna. Vou expor a seguir algumas dicas para lhe ajudar a negociar com bons programadores e, ainda mais importante: te ajudar a detectar “profissionais” ruins. Estas diretivas devem ser aplicadas principalmente no seu primeiro contato com o provedor de serviços.

  • Que “tempo real” é este de que falam tanto?

    O que é tempo-real? O que o pessoal anda chamando de tempo-real é realmente tempo-real? Node.js ou websocket realmente me propiciam uma web “real time”? Vou tentar responder a todas estas perguntas neste post com a visão de alguém que trabalha em um sistema de tempo-real de verdade (eu). Como a computação define tempo-real Quando…

  • Como otimizei /dev/Kico com php, httpd e mysql

    Como otimizei /dev/Kico com php, httpd e mysql

    Como /dev/Kico foi otimizado com Wordpress, PHP, HTTPD e MySQL

  • Desenvolvendo com armas secretas

    Desenvolvendo com armas secretas

    Sempre quando vou apresentar uma plataforma de desenvolvimento que não seja “mainstream” topo com argumentos do tipo “aonde vou encontrar mão de obra que saiba lidar com isto?”, “ninguém que eu conheço usa isto!” ou mesmo “para nos mantermos competitivos temos de usar as ferramentas que o mercado adota”. Papo furado! “Competitividade” “Gente em terno”…

  • Quando o diagrama te emburrece: involução linguística por UML em excesso

    Quando o diagrama te emburrece: involução linguística por UML em excesso

    A humanidade levou milênios para aperfeiçoar a arte de transmissão do conhecimento. Infelizmente muitos preferem uma visão “retrô”. Neste post pretendo discutir uma idéia que passeia na minha cabeça a um bom tempo: o efeito negativo do excesso de conteúdo gráfico pode causar em uma equipe de desenvolvimento. Vou além: como vou mostrar neste post,…

  • Corpo estranho: questionando a orientação a objetos

    Corpo estranho: questionando a orientação a objetos

    Raríssimas vezes me deparo com uma equipe questionando se deve ou não adotar orientação a objetos em seus novos projetos. Dado que sabemos não existir bala de prata em software este é o tipo de comportamento que levanta minhas antenas para a possibilidade de sermos vítimas de determinismo linguístico. Será? No mundo dos bancos de…

  • Armadilhas para desenvolvedores: em busca do componente perdido

    O sonho de todo desenvolvedor é a componentização, mas a partir de algumas conversas das quais participo me pergunto: será que as pessoas realmente sabem do quê estão falando? Componentes aniquilam a repetição desnecessária, e  ingênuamente pensando, nada poderia dar errado, certo? Definindo Uma definição inicial de componente de software é: código que implementa determinada funcionalidade…

  • O Valor, o Hype e o Hypista no desenvolvimento de software

    Semana passada participei de um evento que me fez perceber algo que até então achava ser óbvio para a comunidade de desenvolvimento de software e simplesmente não é. Sei que muitos vão rir de mim em um primeiro momento, mas que se dane: vou jogar aqui de uma vez: as pessoas não sabem ou simplesmente…

  • Como o tal do SOLID pode melhorar seu projeto orientado a objetos

    É chocante ver o quão subaproveitada a orientação a objetos é. Interessante é que só se percebe isto quando mudamos nossas leituras. No “Panteão Kiconiano de Heróis” há um chamado Robert C. Martin, que agrupou cinco princípios básicos do design orientado a objetos sob o acrônimo SOLID. Quando tomei conhecimento deste acrônimo minha vida melhorou…

  • Armadilhas para desenvolvedores: a síndrome do conhecimento imediato

    Sintoma: um indivíduo em seu local de trabalho é informado de que deverá trabalhar com a tecnologia X mas nunca teve qualquer contato com esta e imediatamente começa a cuspir código como se a compreendesse inteiramente só de olhar. Desenvolvimento Estágio inicial O indivíduo é informado de que deverá trabalhar com a tecnologia X. Esta…

  • Armadilhas para desenvolvedores: a síndrome do contato alienígena

    Nos últimos dias tenho pensado muito sobre os poucos casos que conheço nos quais o uso do Grails foi um fracasso. Nisto encontrei um elemento em comum que, acredito, pode ser aplicado à adoção de qualquer tecnologia. Chamo-o de síndrome do contato alienígena. Analogia alienígena Considero alienígena qualquer objeto com o qual me deparo e…

  • Java: como a serialização de objetos pode salvar sua aplicação desktop

    Em um dos meus clientes é muito comum o desenvolvimento de aplicações Java voltadas para o ambiente desktop, aonde não raro enfrento problemas sérios de performance e consumo de recursos. O objetivo deste post é expor como usando o recurso de serialização de objetos oferecido pela plataforma Java consegui resolver (ou ao menos minimizar ao…

  • Pascal e o nerd tiraninho

    E não é que Pascal, no século XVII, ao expor o seu conceito de tirania sem querer descreve os nerds tiraninhos que implicam com todos aqueles que usam tecnologias diferentes das suas favoritas em pleno século XXI? A definição é feita no fragmento 58 da sua obra inacabada “Pensées” (em português “Pensamentos”). Segue o fragmento:…

  • Por que resolvi largar o HTML e partir pro Flash (Flex na realidade)

    No decorrer de 2009 iniciei um projeto cujo principal objetivo técnico consistiu em levar ao extremo o que consigo fazer atualmente usando Grails na camada de controle e domínio e a dobradinha HTML/CSS/Javascript na camada de visualização (atualmente, só de ver uma interface 100% baseada em campos textuais e caixas de seleção já começo a…