segunda-feira, 13 de setembro de 2021

Seu amigo Pato de Borracha

 

Normalmente quem trabalha com construção de alguma solução tecnológica, já se encontrou em uma situação em que a solução não parecia ser possível ou muito difícil. Entretanto, foi somente começar a falar sobre o problema para alguém, que a resolução magicamente apareceu. Ou seja, esse alguém foi uma inspiração? Não exatamente, ela simplesmente prestou o papel de ouvinte para a explanação do problema. Então, visto que esse ouvinte não teve um papel de interação ou contribuição, poderíamos meramente substituí-lo por qualquer coisa? A resposta é SIM.

O processo de explicar ou ensinar aumenta as ligações neurais em nosso cérebro, o que nos proporcionar mais acessos as informações retidas, o resultado disso é que durante a explanação passamos a fornecer mais perspectivas baseadas nas novas informações acessadas. Ou seja, faz seu cérebro alternar de faixa e funcionar de uma maneira diferente da mentalidade usual. 

O Pato de Borracha é basicamente uma técnica utilizar por muitos desenvolvedores para auxiliar esse processo de aumentar o acesso às informações, evitando a “visão de túnel", para explicar algo a outra pessoa, primeiro você precisa entendê-lo completamente. No livro O Programador Pragmático, de Andy Hunt e Dave Thomas, é descrita uma passagem em que o programador repassa linha a linha seu código explicando para o pato, e como resultado consegue identificar a falha e corrigi-la.

Pode parecer um processo ingênuo, entretanto existe um método para que o Pato de Borracha possa ativar, vamos a ele:

  1. Verbalize o contexto resumido do problema para o Pato de Borracha;

  2. Vá revisando e falando passo a passo todas as informações (código, diagramas, listas);

  3. Por fim, dê um alguns momentos ao Pato de Borracha, que a solução aparecerá em sua mente.

Claro que o último passo é só uma figura de linguagem, posso garantir que funcionará em 99% dos casos. O ato de dividir um problema em termos mais simples, passo a passo, costuma ser suficiente para tornar o problema mais solucionável. Vamos lá, fale com seu amigo Pato de Borracha.


Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br


sábado, 10 de julho de 2021

Pegada Ecológica (CO2) de um WebSite com foco em Green Coding

 

Até o dia 2 de janeiro de 2021 havia 1,826,089,359 sites disponíveis para acesso. Cada site contém propósitos distintos, entretanto o ponto comum entre eles é entregar algo de valor para o internauta. Essa entrega deve acontecer da melhor forma possível, nos formatos de experiência, entre eles existem vários fatores, como velocidade, usabilidade, facilidade, acessibilidade etc. Logo, se conseguimos um site que tenha um perfil de sustentabilidade também no foco, podemos otimizar vários fatores, gerando a entrega de valores mais eficientes.

Seja você iniciante ou expert no desenvolvimento de um site, saiba que existe um plugin para o navegador Chrome que consegue efetuar uma análise do site, através da verificação de boas práticas na utilização de código. O processo para utilização é bem simples:

  1. Instalar o Pluginhttps://chrome.google.com/webstore/detail/greenit-analysis/mofbfhffeklkbebfclfaiifefjflcpad
  1. Carregar o site e abrir o Console DevTools (F12)
  1. Ir até a aba “GreenIT”, marcar a opção “Activate best practices analysis
  2. Clicar no botão “Launch Analysis

Após isto, será apresentada uma lista das verificações e os resultados coletados, além de uma nota geral para o site, que varia de A (mais eficiente) para G (menos eficiente), com base na Tabela de Eficiência Energética.

Add expires or cache-control headers (>= 95%)

Manter recursos (folhas de estilo CSSscripts JavaScript e imagens) o maior tempo possível, para que o navegador não os solicite novamente do servidor. Economiza solicitações HTTP, largura de banda e potência da CPU no servidor.

Compress ressources (>= 95%)

O conteúdo das páginas HTML deve ser compactado para minimizar o consumo de largura de banda, entre o cliente e o servidor. 

Limit the number of domains (<3)

Limitar um máximo de três domínios para os recursos. Porque recursos hospedados em outro domínio lento, pode aumentar o tempo de renderização da página. A boa prática deve ser agrupar todos os recursos em um único domínio.

Don’t resize image in browser

Redimensionar imagens usando atributos HTML de altura e largura. Envia as imagens em seu tamanho original, desperdiçando largura de banda e energia da CPU. 

Avoid empty src tag

Tag de imagem com um atributo src vazio, gera solicitações HTTP adicionais desnecessárias.

Externalize css

Código CSS deve estar separado do código HTML da página, para evitar o aumento do volume de dados enviados. 

Externalize js

Garanta que o código JavaScript está separado do código HTML da página, para evitar o aumento do volume de dados enviados. 

Avoid HTTP request errors

As solicitações com erros HTTP consomem recursos desnecessariamente.

Limit the number of HTTP requests (<27)

Reduzir o número de solicitações por página é fundamental para diminuir o número de requisições HTTP necessários para executar o site e, consequentemente, o seu impacto ambiental.

Do not download unecessary image

Baixar imagens que não serão exibidas consome recursos desnecessários.

Validate js

Validar o seu código JavaScript com boas práticas garante a utilização eficiente da CPU por um período mais curto. O JSLint é uma ferramenta de qualidade de código JavaScript.

Max cookies length (<512 Bytes)

O comprimento do cookie deve ser pequeno, pois é enviado com cada solicitação.

Minified css (>= 95%)

Comprimir os recursos CSS garante somente itens essenciais para serem transferidos, removendo, por exemplo, espaços desnecessários e quebras de linha.

Minified js (>= 95%)

Comprimir os recursos JavaScript garante somente itens essenciais para serem transferidos, removendo, por exemplo, espaços desnecessários, quebras de linha, ponto e vírgula e encurtar nomes de variáveis locais.

No cookie for static resources

Recursos estáticos não utilizam cookies, logo consome largura de banda sem propósito.

Avoid redirect

Os redirecionamentos devem ser evitados, tanto quanto possível, pois tornam a resposta mais lenta.

Optimize bitmap images

Todas as imagens devem ser otimizadas, pois são os recursos que mais impactam na largura da banda consumida.

Optimize svg images

Imagens Svg também devem ser otimizadas e minimizadas.

Do not use plugins

Evite usar plugins (máquinas virtuais Flash PlayerJava e Silverlight etc.) porque eles podem consumir muitos recursos (CPU e RAM). Dê preferência à tecnologia padrão, como HTML5 e ECMAScript

Provide print stylesheet

A folha de estilo deve ser o mais simples possível, e utilizar fontes leves (exemplo: Century Gothic)

Do not use standards social button

Coloque links diretos para as redes sociais, pois os seus plugins, em 99% das vezes, não são utilizados e geram consumo desnecessário.

Limit Stylesheet files (<3)

Minimize o número de arquivos CSS para reduzir o número de solicitações HTTP

Use ETags (>= 95%)

Utilize as ETags (assinatura anexada a uma resposta do servidor), porque elas economizam uma grande quantidade de largura de banda. 

Agora é possível verificar a existência de inúmeras ações simples, e algumas mais complexas, que podem fazer toda diferença no consumo de energia que automaticamente gera emissão de CO2. 

Esse é um dos principais propósitos da iniciativa Green Coding, iniciada pela GFT. Ela fomenta a adoção da sustentabilidade, como parte do processo de desenvolvimento de soluções. É nossa obrigação oferecer métodos mais eficientes para gerar maiores impactos na redução de emissão de CO2, e assim salvar o nosso precioso planeta. 

Você pode encontrar informações mais completas no documento do programa da GFT:

https://www.gft.com/int/en/index/technology-and-innovation/greencoding-tailored-it-solutions-for-banks-insurers-and-industry/

E no atalho abaixo, contribuir para a ferramenta:

https://github.com/cnumr/GreenIT-Analysis

Para mais informações acesse a EcoIndex e confira a sua metodologia: http://www.ecoindex.fr/

Vamos juntos salvar o nosso acolhedor planeta!

Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br

Artigo original publicado em https://blog.gft.com/br/2021/07/06/pegada-ecologica-co2-de-um-website-com-foco-em-green-coding/


quinta-feira, 10 de junho de 2021

Comentários Engraçados D+

 Os comentários em código tem uma importância para auxiliar num futuro próximo na manutentabilidade de sistemas, tornando mais fácil ser entediado por humanos. Porém, muitos desenvolvedores, transformação essas linhas não compiláveis em verdadeira partes engraçadas do trabalho. 

Obvio, talvez sim, talvez não

// return 1; # retornar 1


int getRandomNumber()

{

Return 4; // escolhido por um lançamento de dados

}


Erro, para quê serve?


Catch (Exception e) {

//Melhor não...

}


try {

} finally { // Nunca deveria acontecer

}


Exception up = new Exception("Alguma coisa deu errado!");

throw up;  //rs


}catch(Exception ex){

// Houston, nós temos uma problema

}


catch (Ex as Exception) {

// oh merda, devemos fazer algo.

}


Só Ameaças

// Se este comentário for removido o código vai parar de funcionar


// Abandone todas as esperanças aos que entrarem além deste ponto


// Fiz isso sob ameaça, se estiver lendo isso, você é a próxima vítima, corra enquanto há tempo!!!!!


// Remova isso se você quiser ser demitido


// Mágida. NÃO TOQUE!


/* Rs rs rs! Você nunca vai entender por que isso funciona. */


Referência 

options.BatchSize = 300; //Loucura?!? ISSO É SPARTA!


last = first; /* Biblíco */


long long ago; /* Em uma galáxia muito, muito distante */


float boat;   // deve ser um barco, caso contrário, ele afunda! :D


<!-- 0101010001101000011001010111001001100101001000000110100101110011001000000110111001101111001000000111001101110000011011110110111101101110 -->


Filosofando

// bebado, arrumar isso depois


// Quando escrevi esse código, somente Deus e eu entedemos o que está sendo feito

// Agora, somente Deus. ;)


// Querido eu do futuro. Por favor, me perdoe.

// Não consigo começar a dizer o quanto estou arrependido.


// Pelos códigos que estou prestes a escrever, que Ada Lovelace me perdoe


Promessas e são promessas


// Eu preciso arrumar um emprego melhor


// Fazer comentários depois


// TODO Fazer isso funcionar


Verdades Nuas e Cruas


// Programador bons não comentam seus códigos

// O código por si se expressa, é uma arte 


// Se você está lendo isso, quer dizer que você está no meu projeto antigo

// Eu sinto muito, muito mesmo. Boa sorte.


// Não sei por que isso funciona, entretanto corrigi o problema. ;)


// São 3 da madruga, está código está horrível, porém funcionou.


// Este código é uma porcaria, você sabe e eu sei disso.

// Siga em frente, faça o que tem que fazer e passe para o próximo idiota.


Tem uns que são verdadeiras pérolas! kkk

Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br

Fontes:

https://loudprogrammer.net/best-comments-in-source-code-i-ever-encountered/

https://meetpd.com/funny-code-comments/

https://fuzzzyblog.blogspot.com/2014/09/40-most-funny-code-comments.html