Revisão de código: você faz?

No livro “97 things every programmer should know” Mattias Karlsson diz que “Você deve fazer revisão de códigos. Porquê? Porque elas tendem a aumentar a qualidade do código e reduzir o índice de erros”. Pode parecer óbvio, mas você lembra da última vez que revisou seu código?

Melhorando o código.

Revisar seu código é uma excelente forma de melhorar trechos que foram escritos há muito ou até mesmo pouco tempo atrás, há sempre pequenos detalhes que passam desperbecidos no momento em que você estava programando.

Porém o objetivo da revisão não é apenas melhorar ou corrigir o código programado e sim compartilhar ideias e definir um “guia” comum de como programar. Vale ressaltar que a revisão de código não deve ser vista como uma mesa julgadora, é apenas um processo que visa melhorar o sistema como um todo. Seja gentil, os comentários devem ser construtivos.

Vá com calma, fera.

Vá com calma, fera.

Evitando erros

Outra vantagem da revisão de código é detectar trechos que possam vir a causar futuros problemas, um delete sem where, um loop infinito, um objeto não inicializado etc. Uma revisão de código bem feita pode reduzir drasticamente o número de erros além de facilitar o trabalho do tester.

Jesus Cristo, o que é isso?

Jesus Cristo, o que é isso?

Dicas para uma boa revisão de código

No livro, Mattias descreve várias dicas para se fazer uma boa revisão de código:

  • Gaste um dia da semana para fazer uma revisão de código;
  • Escolha pessoas para se especializar em determinado tipo de revisão. Por exemplo, escolha uma pessoa que irá verificar as consultas, outra para exceções, uma terceira para as funcionalidades e assim por diante;
  • Envolva os estagiários ou recém contratados. Pessoas que estão há pouco tempo tendem a ter visões diferentes sobre determinado assunto, trazê-los para revisão pode resultar em novas perspectivas e novas ideias;
  • Revisões podem ser mais rápidas se o time possuir uma ferramenta que faça checagem automática de determinadas convenções de código. Desta forma, a indentação nunca será um assunto a ser discutido durante uma revisão.
Indenta com tab Não, é com espaço

Indenta com tab
Não, é com espaço

Conclusão

A revisão de código pode parecer chata e improdutiva, porém uma ou duas horas gastas por semana pode resultar numa melhora significativa no código escrito e reduzindo o número de possíveis bugs e falhas.

Hey mãe! Eu tenho um Amazon Kindle.

Em abril do ano passado comprei um Kindle Paperwhite. É bem verdade que achava e-readers sem graça pois não tinha a magia de pegar o livro na mão, sentir o cheiro aquele clichê todo etc. Mas resolvi dar uma chance.

Continuar lendo

Programar é praticar.

Muitos me perguntam como eu me tornei “fera” (não que eu seja, longe disso) em programação e sempre respondo: praticando.

É muito comum eu ver na faculdade pessoas que acham que ao entrar no curso já se tornarão programadores de verdade, algumas que logo irão se sentir frustradas e trocarão de curso no fim do semestre. É bem verdade que pode haver outras causas, professores que não motivam os alunos ou uma grade curricular fraca (particularmente na faculdade onde estudo eu a considero, sorte que já sabia programar quando ingressei).

frustration-600x450_1-100521350-orig
Pois bem, além de fazer os exercícios e tarefas propostos pelo professor é sempre bom procurar desafios que não são vistos em sala. Você pode procurar por listas de exercícios, procurar sistemas ou algoritmos prontos e analisar seu código fonte (há milhares no github).

gato_guitar

Programar é como tocar violão, praticar muito é essencial.

Na medida em que você vai adquirindo prática e confiança parta para desafios mais complexos. Aprendeu a trabalhar com matrizes? Desenvolva um sudoku ou jogo da velha. Programar jogos (mesmo que seja no console) é uma ótima maneira de utilizar tudo o que você aprendeu.

Por fim, se você está começando agora não desista! Lembre-se que os erros fazem parte do processo e ajudam na sua formação.

Se você quer aprender a programar on-line de forma interativa, existem vários sites que podem te auxiliar:

http://www.codecademy.com/

http://www.codeschool.com/

http://www.khanacademy.org/cs
Abraço e até a próxima.

Resolvendo problemas na impressão da DANFe – ACBr

Esta semana eu e um colega de trabalho passamos um sufoco com a impressão da DANFe com ACBr e Fast Report. Sempre que chamava o método de visualização do pdf, ocorria o erro:

cdsIdentificacao: Missing dataset provider

 

Na primeira ocasião, o problema estava no formulário que estava sendo criado automaticamente na inicialização do projeto. Até aí tudo bem, mas como a tela seria usada num outro módulo o erro voltou a ocorrer.

O que fazer? Simples, na unit ACBrNFeDANFEFRDM.pas, no componente frxReport carregue o arquivo danfe.fr3 e salve. Refaça um build do projeto e estará tudo ok.

Espero ter ajudado 😉

Capturando imagens da webcam com Python

Rapaz, há quanto tempo não posto aqui. 😛

Me surgiu a ideia de capturar pela webcam do notebook a imagem de quem logou no meu computador (futuramente tentarei implementar caso tente logar sem sucesso). Fuçando no google achei este exemplo usando PyGame.

#! /usr/bin/python

import pygame, sys
import pygame.camera
import time

WEBCAM_DIR = "/home/simasware/Imagens/Webcam"

pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0", (640,480))

# pegando foto da webcam

cam.start()
image = cam.get_image()
cam.stop

timestamp = time.strftime("%d-%m-%Y_%H-%M-%S", time.localtime())
filename = "%s/%s.jpg" % (WEBCAM_DIR, timestamp)

# salvando a imagem
pygame.image.save(image, filename)

print "Salvo"

Pensei em colocar no topo da imagem capturada a data e hora. Pesquisando achei a função blit:


# imprime a data/hora na imagem

font = pygame.font.SysFont("monospace",15) #carrega fonte
label = font.render(timestamp, 1, (255,255,255)) #renderiza
image.blit(label, (16,16)) #imprime o texto na imagem capturada pela webcam

Pra instalar o PyGame no Ubuntu basta rodar no bash:


sudo apt-get install python-pygame

Resultado:

18-10-2014_00-29-04

UNIVALI irá sediar reuniões do Comitê Gestor da Internet do Brasil.

A UNIVALI, Campus Itajaí, sediará nos dias 14 e 15 de maio a 37ª Reunião do GTER (Grupo de Trabalho de Engenharia e Operação de Redes) e a 23ª Reunião do GTS (Grupo de Trabalho em Segurança de Redes).

É a primeira vez que Santa Catarina sediará estas importantes reuniões do Comitê Gestor da Internet no Brasil, proporcionando o aprendizado diretamente com profissionais de TI de todo o país na área de segurança e redes de computadores. Segue, abaixo, algumas informações adicionais sobre o GTER / GTS.

A programação já está no site http://gter.nic.br e http://gts.nic.br

O link para fazer a inscrição é: https://eventos.nic.br/pt/registration/39/34

Resolvendo problema de “variant or safe array is locked” no Delphi

Boa noite!

Pode acontecer em alguns casos ao carregar um arquivo XML pelo Delphi o erro de variant or safe array is locked. O problema ocorre devido o arquivo MIDAS.DLL estar desatualizado.

Caso você atualize o arquivo e mesmo assim o problema persiste, na unit onde você faz uso do Client Data Set com xml basta adicionar a uses midaslib.

Fácil de resolver, porém me levou um certo tempo para descobrir. 😉

Abraços e até a próxima.