Postagens

Mostrando postagens de junho, 2017

Postagem em destaque

Código Limpo: Nomes Significativos

Imagem
Às vezes fico com um assunto na cabeça por semanas, até achar uma situação ou um exemplo que esclareça a situação. Explico: estava querendo já a algum tempo escrever sobre boas práticas de programação, e pensei em iniciar por "Nomes Significativos", para seguir a nomenclatura utilizada pelo ótimo livro Código Limpo , de Robert C. Martin.  Entretanto, ficava sempre amarrado em exemplos que pareciam ser bons, mas que ainda eu não tinha visto a utilidade prática.  Antes de continuar preciso explicar que tenho um hábito de anotar num bloco de papel todas as ideias que surgem, pois elas desaparecem com a mesma velocidade que aparecem. Para isso tenho um bloco e caneta na mesa de cabeceira (além de um no banheiro), pois esses são os lugares onde tenho mais ideias... Vai entender... Semana passada, estava com um problema bem complicado e tive uma ideia: "vou criar uma variável para indicar que quando um arquivo tiver um certo tamanho deve gravar algumas informações no log. Pois

Faça o simples

Comecei a programar bem cedo, em 1985, num TK-2000 . Naquela época tinha que se virar com meros 48 KB (isso mesmo, não são 48 MB) de memória RAM e talvez por isso aprendi a fazer programas enxutos. Lembro que quando trabalhava com Clipper, tive que criar um módulo de abertura/fechamento de tabelas do BD, pois se ficasse com muitas tabelas abertas simultaneamente dava problema de falta de memória. Assim, o programa ficava monitorando as tabelas, e cada vez que uma era aberta, subia uma posição na fila. As que ficavam no final da fila, abaixo de um determinado limite, eram fechadas automaticamente. Em sistemas maiores, sempre tem quem tente cercar todas as possibilidades: "e se, o usuário quiser, mais tarde, um relatório por filial", "e se, no futuro, for preciso aplicar uma correção na tabela XYZ", "e se, ...". Reparem que são suposições ("e se") projetadas para um momento que não se sabe se ocorrerá ("mais tarde", "no futuro&