O primeiro vídeo do meu canal se chamará "A Péssima Prática de Seguir Boas Práticas".

Primeiro porque as pessoas fazem muito sem contexto e sem considerar todas as questões. E eu mesmo não considerarei todas aqui. A maioria das tais "boas práticas" de boas só tem o nome, e vou explicar isso melhor, conforme já fiz diversas vezes em palestras.

Não faz muito sentido criar 3 strings desnecessárias para a operação, poderia ler o stream e já filtrar o que vem. Dá um pouco mais de trabalho porque falta algo pronto que faça isso, mas faz sentido quando se fala em performence e consumo de memória. Pode ser que ela não importe, aí é um ponto a desconsiderar.

Consumo de memória inicial mais alto não sei se deveria ser considerado desvantagem, até porque eu precisaria medir para dar um parecer correto e analisar melhor se isso tem algum impacto, que pode até ser positivo.

De qualquer forma o acesso ao arquivo deveria ser considerado baixo em performance porque é centenas de vezes mais lento que o acesso em memória.

O problema do arquivo externo é a segurança bem mais fragilizada. Não que não dê para burlar no incorporado, e em muitos casos não importa já que o acesso será restrito mesmo, mas é bom falar sobre isso para certos contextos.

Não importa olhar para o tamanho do binário, o tamanho da solução é que é relevante, e em essência dá na mesma.

A flexibilidade é algo que pode ser vista de maneiras diferenets, então sem um critério bem definido essa ideia fica vaga e nem podemos avaliar/comparar.

Tenho medo dee queries que precisam ser atualizadas com tanta facilidade assim.

Usar apenas strings simples organizadas para forma que for mais conveniente e correta pode ser uma solução ótima para muitos casos. Inclusive pode ser uma forma de apenas recompilar essa parte e não toda a aplicação (acho que dá para fazer isso com o recurso no executável também). Dificuldade de versionamento pode ser a solução para versionar melhor, muitas vezes a facilidade implica em bagunça. Não é pior em segurança e a legibilidade só depende de como a pessoa programou. Pode ser mais legível dependendo do objetivo. Eu diria que a maioria dos projetos será mais legível assim, nem sempre esconder algo é uma boa opção. E pode facilitar a manutenção, tudo depende.

A recomendação geral é sempre entender toda a computação, o contexto e decidir o que é melhor para o caso específico. Em muitos casos tanto faz e o que for mais fácil de fazer é melhor.

Se tem "boas práticas" ruins recomendadas por alguns dos profisssionais mais repeitados do mercado, até porque pode não considerar o contexto, imagine o quanto tem pela internet toda sem controle algum.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).