Postagens

Mostrando postagens de julho, 2020

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

GO: "try/catch" ou "if err != nil"

Assim que comecei a programar em GO, fiquei bastante preocupado pelo fato dele não ter try/catch. Eu já estava (mal) acostumado a usar try/catch em tudo que é lugar. E isso é um erro. Bom, não chega a ser um erro, mas descobri que usar IF de maneira inteligente, o código fica muito mais claro. Como o Rob Pike, diz: " Errors are values ". Além disso, se você tem um bloco de código grande dentro de um try, logicamente terá que tratar todos os possíveis erros dentro do catch, o que visualmente não fica tão claro. Diante disso, passei a não mais encadear um IF dentro de outro (sempre que possível, lógico), e já trato (e retorno) os erros tão logo quanto possível. Parece bobo, mas nem sempre fiz isso. E agora, me parece algo tão óbvio!