domingo, 6 de novembro de 2016

Hardcore Devel #63 - Registros - Enterprise vs. Open Source

O movimento do código aberto em contraste com as grandes desenvolvedoras de software geraram duas correntes e duas formas de produzir software.


E as duas formas possuem algumas curiosidades relacionadas a evolução da programação do software.

A forma básica de depuração de um programa é através de mensagens de registro. Isso nunca vai mudar independente da forma com a qual se programa um software, mas as formas como evoluem são completamente diferentes.

Softwares de código aberto, simplesmente divulgam seus codigos pela internet e assim ele se dissemina, tanto em evolução natural como em diversas coisas diferentes que nascem daquele proeto inicial. Em geral, não há muitas mensagens geradas para registro da atividade do programa, pois pelo próprio código é possível entender o que se passa.

Isso não acontece com os softwares empresariais. Esse segundo tipo de software depende dos registros para a evolução e a sobrevivência. A única forma de encontrar um bug em um software, é utilizando ele até encontrar o erro e esse erro aina deve ser relatado. Como um erro em um software pode ser tanto de programação como mal uso, se fazem necessário os arquivos de registro.

Se você estiver desenvolvendo um software, provavelmente já sentiu a necessidade de rastrear a atividade do programa. Códigos fontes de empresas dependem imensamente desse rastreio. Obviamente os softwares abertos também precisam de rastreio mas esses podem ser gerados por pessoas que estão trabalhando no desenvolvimento do próprio software.

Mas existe um problema. Gerar registro geralmente ocupa parte do tempo de processamento fazendo cair o desempenho do software. Quando o desempenho de um programa se torna importante demais, é necessário fazer com que gera uma quantidade mínima, ou nenhum registro para evitar sobrecarga n sistema.

Registrar ainda tem mais um custo: Espaço em disco. É necessário espaço em disco para guardar os eventos para análise posterior. Especialmente se o seu programa é um servidor. Erros não são relatados necessariamente no momento de um incidente, sendo que é possível que um bug só se manifeste devido a algo que aconteceu a diversos momentos atrás. Esses momentos podem ser dias.

Não é a toa que existe geralmente uma abstração única só pra gerar logs na arquitetura de softwares.

Um comentário: