Comparando DATAS no DB2

Este post serve como referência até pra mim, pois sempre esqueço como comparar datas no DB2. Na prática:

– Comparando TODA a data
SELECT * FROM XXX
where DATE(CAMPO)=DATE(‘2009-07-03′)
FETCH FIRST 100 ROWS ONLY FOR READ ONLY WITH UR;

– Comparando o ano – neste exemplo com a data atual
SELECT * FROM XXX
where YEAR(CAMPO)=YEAR(CURRENT TIMESTAMP)
FETCH FIRST 100 ROWS ONLY FOR READ ONLY WITH UR;

Um link completo sobre o assunto pode ser encontrado AQUI.

SQL: FOR READ e WITH UR

Muitas pessoas desconhecem as clausulas FOR READ e WITH UR, muito utilizadas em buscas em banco de dados, e que podem fazer uma imensa diferença na performance de sua aplicação/DB. Segue um pequeno exemplo que pode ser útil:

No caso:

SELECT * FROM TABELA FETCH FIRST 10 ROWS ONLY FOR READ ONLY WITH UR;

  • FETCH FIRST 10 ROWS ONLY -> quer dizer que é pra trazer somente as 10 primeiras linhas encontradas
  • FOR READ -> fala pro banco que esta trazendo dados somente para LEITURA, de forma superficial, quando você não usa isso, o banco deixa CURSORES posicionados na posição dos registros que você trouxe, ja preparando pra um update/delete – isso, consome recursos.
  • WITH UR -> quer dizer “with uncommited records”, ou seja, já traz os dados mais atualizados do banco, que sofreram um update, mesmo não tendo sofrido commit ainda.

Enjoy!

Os 7 pontos para o Sucesso

Acredito que em todos os projetos, o gerente ou o líder, deveria estar de olho nos 7 pontos que podem definir o sucesso do mesmo, para no momento adequado, tomar alguma ação. Resumidamente, os sete pontos são:

  1. Stakeholders (pessoas chave) estão comprometidos? (controle indireto – contexto)
  2. Os benefícios para o negócio estão sendo atingidos?  (controle indireto – contexto)
  3. Trabalho e agenda são previsíveis? (controle direto – conteúdo)
  4. Time está num alto nível de rendimento?  (controle direto – conteúdo)
  5. Escopo é realista e gerenciável?  (controle direto – conteúdo)
  6. Riscos estão sendo mitigados?  (controle indireto – contexto)
  7. Benefícios para a organização estão sendo notados? (controle indireto – contexto)

Para cada um, define-se um status: Verde, amarelo ou vermelho, que representariam algo do tipo: Ok, Atenção, Problema. De acordo com o status, deve-se definir um plano para mitigar o problema, embora alguns pontos não estejam no controle do projeto.

Para entender melhor, sugiro a apresentação abaixo que encontrei no slideshare, ela explica o que são os pontos em detalhes, como os examinar. Vale a pena dar uma conferida:

Enjoy

CategoriasCarreira Tags:,

Orientação a Objetos – slides

Disponibilizo para qualquer interessado os slides da primeira aula de Orientação a Objetos, uma introdução, ministrada na UNESP – São José do Rio Preto.

https://drive.google.com/file/d/0BxhdMuoEQRL-eEU0Y0JEWjNoZ00/view?usp=sharing

Enjoy!

C++: iostream vs cstdio

Featured imagePara os programadores C++ iniciantes, existem muitas dúvidas sobre qual biblioteca utilizar, ou mesmo, se devo utilizar cout ou printf.

Encontrei um tópico muito interessante aqui.

Tirando um comentário deste tópico, podemos resumir que iostrean é type safety, cstdio é mais performático (rápido), iostream é extensível. Todavia, vale uma leitura completa no tópico e como sempre, utilizar o que resolve seu problema de forma simples, sem quebrar nada no futuro.

FindBugs x Checkstyle x PMD

Featured imageInúmeras pessoas fazem a comparação entre as ferramentas FindBugs, Checkstyle e PMD. Vale dizer que as três permitem a escrita de um melhor código fonte, o inspecionando em busca de possíveis problemas e gerando relatórios para que o desenvolvedor possa tomar providências.

Porém, a abordagem delas é um pouco distinta:

  • FindBugs: Funciona procurando padrões de Bugs. Analise o Bytecode, e não o código fonte em si. Funciona como se tivesse um banco de dados interno com os bugs comuns, e vasculha seu código procurando por esses bugs. Eventualmente pode dar falsos positivos, apontando erros que no contexto de sua aplicação, não são erros. A própria documentação oficial do Findbugs diz: “In practice, the rate of false warnings reported by it is less than 50%”.
    http://findbugs.sourceforge.net/index.html
  • CheckStyle: Seu foco é em problemas relacionados as convenções e padrões Java, por exemplo: ausência de Java docs, abertura de chaves { depois de Ifs, etc. Ele varre o código fonte de seu projeto.
    http://checkstyle.sourceforge.net/
  • PMD: Vasculha o código fonte procurando por más práticas e problemas de código por exemplo: import com *, muitos métodos em classes, etc.
    http://pmd.sourceforge.net/

Em geral o PMD e o Checkstyle são mais similares. Todavia, eu recomendo o uso das 3 ferramentas em seu projeto, e além disso, que sejam criados arquivos de configurações para CADA ferramente e que os mesmos sejam utilizados por TODO o time, garantindo assim, a homogeneidade na produção do seu código fonte.

O uso principalmente do checkstyle e do PMD garantem um código fonte mais legível, de melhor manutenabilidade, tornando-se o trabalho com os mesmos mais eficiente e rápido.

Eu fiz video aulas introdutórias sobre as 3 ferramentas, que ensinam como instalar, configurar e utilizar, como sempre, de maneira simples e objetiva. Seguem os links:

  1. FindBugs
  2. Checkstyle
  3. PMD

Enjoy!

Introdução ao PMD

março 16, 2015 1 comentário

Featured imageUltimamente estou implementando algumas ferramentas para garantir maior qualidade em meu projeto, e a bola da vez é o PMD. O PMD é uma ferramenta que auxilia desenvolvedores efetuando varredura de código fonte buscando por problemas em potencial, tais como (retirado diretamente do site oficial):

  • Bugs – empty try/catch/finally/switch statements
  • Dead code – unused local variables, parameters and private methods
  • Suboptimal code – wasteful String/StringBuffer usage
  • Overcomplicated expressions – unnecessary if statements, for loops that could be while loops
  • Duplicate code – copied/pasted code means copied/pasted bugs

Assim como o Checkstyle, utilizar o PMD e efetuar os ajustes que o mesmo recomenda, ajuda a obter-se uma melhoria em seu código fonte, tornando-o mais legível e aumentando sua manutenabilidade.

Recomendo a todos os desenvolvedores que o utilizem em conjunto o o FindBugs e com o CheckStyle, pois são ferramentas com finalidades parecidas e garantem juntas um sólido código fonte. Neste post, você pode encontrar mais informações sobre o FindBugs. Neste outro post você encontra mais informações sobre o Checkstyle.

No vídeo abaixo, você pode ver facilmente como instalar e utilizar o PMD. Os slides utilizados no vídeo estão aqui.

Enjoy!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 317 outros seguidores