Boas Práticas

Adicionando coluna com valor default em tabelas volumosas

Adicionando coluna com valor default em tabelas volumosas

menos de 1 minuto Fala pessoal, como vão vocês? Espero que bem! Nestes últimos meses venho trabalhando bastante com banco de dados Oracle, com isso acabei me deparando com alguns problemas relacionados a performance. Um deles, foi ao adicionar uma nova coluna com valor default definido em tabelas volumosas com mais de 5.000.000 de registros. Como tinha criado um script para cada uma das alterações, percebi que alguns scripts demoraram quase uma hora para finalizar o procedimento. Ficaria inviável coloca-los na aplicação. Então pesquisando Leia mais

Injeção de dependência com Guice #2: Anotações

Injeção de dependência com Guice #2: Anotações

menos de 1 minuto Fala galera! Dando continuidade ao post Injeção de dependência com Guice #1: Introdução, hoje vou falar sobre as anotações da JSR e do Guice e como usa-las. Anotações @Inject A @Inject com certeza é a anotação mais usada quando falamos de injeção de dependência com Guice. Ela é usada para informar ao Guice quando a classe depende da instância do um objeto qualquer e quer que o Guice se encarregue de “entregar” esta instância. Existem 3 formas de declarar a pendência de uma Leia mais

Injeção de dependência com Guice #1: Introdução

Injeção de dependência com Guice #1: Introdução

menos de 1 minuto Começamos a falar sobre Injeção de dependência em uma das nosso reuniões de melhoria continua, que ocorre todo mês aqui na empresa. Falei sobre essa reunião no post Git #1 – Por onde começar?, falei a pena ler, pois é uma das melhores reuniões que temos no nosso projeto. Eu e o Wander Mudo estudamos o tema e apresentamos para a equipe na ocasião. Optamos por estudar o Framework Guice (se diz Juice), por ser simples, pequeno, é uma implementação de referencia Leia mais

TDD

TDD

menos de 1 minuto TDD (Test Driven Development) é desenvolvimento orientado por teste. Mais que testar seu código, TDD é uma filosofia, uma cultura. Antes de entrar na Synchro, nunca tinha ouvido falar nesta técnica, se bem que antes disso, teste para mim era entrar na tela e simular o usuário fazendo uma ação, o tal do teste exploratório. No projeto que trabalho, por ser de alta complexidade, a preocupação com a qualidade é muito grande, sendo assim já era usual escrever muitos teste. Há Leia mais

Oracle: Update de milhões de registros

Oracle: Update de milhões de registros

menos de 1 minuto Nesse último mês, andei trabalhando bastante com SQL, melhor dizendo PL/SQL. Basicamente minha tarefa era migração de dados, especificamente, alteração da PK de uma tabela que é referenciada por várias outras tabelas. No entanto, precisava fazer isso com a melhor performance possível. Como não sou um DBA, faço apenas o “feijão com arroz”, estudei as formas de update que o Oracle disponibiliza. Duas delas me chamaram bastante atenção, pois são as mais usadas pelos DBAs, são elas Create Table as Select e Merge Update. Leia mais

Thread Local

Thread Local

menos de 1 minuto Numa aplicação web em Java, em vários momentos é muito útil manter informações em um contexto maior que o request, mas também nem tão grande com a session ou application. Nessas situações o Thead Local, pode ajudar bastante. Mas o que é Thread Local? Thread Local é utilizado para definir ciclo de vida dos objetos, trata-se de um tipo de escopo de acesso onde apenas a thread que está sendo executada tem acesso a esses objetos. Por tanto, se a thread Leia mais

Interface Fluente e StepBuilders

Interface Fluente e StepBuilders

menos de 1 minuto Interface Fluente Por que criar interfaces fluentes (Fluent Interfaces)? Simples, lembra do Builder, esse padrões de projeto nos ajudam a escrever códigos menos complexos e intuitivos, minimizando os erros durante o desenvolvimento. A interface fluente é muito parecida com o builder, é muito usada na criação de API e utilitários, fazendo com que desenvolvedor seja guiado, auto explicando seu uso a cada passo. Mas por onde começar? Vejamos um exemplo. A classe abaixo é composta por outras duas classes: Eu gosto muito de escrever interfaces fluentes, Leia mais

Construindo objetos através de Builders

Construindo objetos através de Builders

menos de 1 minuto E aí pessoal, como vão as boas práticas de desenvolvimento? Quando comecei a programar Java, um professor me disse que um objeto bem construído deveria ter todos atributos obrigatórios inicializados pelo construtor da classe. Então vejamos, imagine que tenhamos a seguinte classe: Até mais pessoal!