quarta-feira, 26 de fevereiro de 2020

Hábitos Desnecessários para um Desenvolvedor




Todos sabemos que existem vários tipos de desenvolvedores, mas o que realmente determina a qualidade de código, não é necessariamente o conhecimento somente por si só, nesta métrica temos que levar em consideração sua a postura e seus hábitos no dia a dia. Alguns desses hábitos que são cultivados não ajudam e nem auxiliam no crescimento do ambiente corporativo, por isso que são desnecessário e devem ser evitados.

Meu código é o MELHOR!

Um dos maiores obstáculos de qualquer profissional, é simplesmente seu "Ego", quando este começa a tomar proporções, atrapalha o seu envolvimento com o time, porque acaba sempre ocupando um espaço entre você e os demais. Procure manter-se sempre humilde, principalmente em questão de ajudar aqueles que estão ao seu redor no dia a dia, oferecendo dicas construtivas, mentoria para uma melhor qualidade e evite ao máximo comparativos competitivos. Lembre-se, quando acreditamos que somos os melhores, fechamos as portas para novos conhecimentos.

Arrumo isso num piscar de olhos!

Muitas vezes é tentador resolver problemas da forma mais rápida possível, garantindo assim notoriedade. A forma mais comum para dar velocidade é a utilização de atalhos que são aplicados no curto prazo, contudo na grande maioria das vezes ocasiona um grande prejuízo no decorrer do tempo. É importante concedermos tempo para o completo entendimento e analise da melhor solução possível, um visão inicial e global pode oferecer uma solução mais trabalhosa, porém mais consistente e eficiente.

Eu lembro de tudo, não é necessário documentar!

Primeira verdade absoluta, é que ninguém é eterno, somente os documentos, veja o exemplo dos hieróglifos. Os desenvolvedores em sua maioria são dotados de excelente memória e raciocínio rápido, toda via todos somos falíveis, desde um simples deslize, como um afastamento por saúde. Devemos pensar que documentar deve ser um processo natural e cotidiano, porque qualquer documentação pode ajudar mais que nenhuma documentação.
Um desenvolvedor que evita documentar ou compartilhar seu conhecimento, não será transformado num membro insubstituível, ele com certeza será tratado como um passivo "forçoso" para empresa.

Não fui Eu!

Lembrando que todos somos falíveis, os desenvolvedores também se enquadram neste conjunto, logo devem praticar o habito de assumir as responsabilidades por falhas cometidas ao longo do processo de desenvolvimento. É muita mais fácil colocar a culpa, em documentos, membros da equipe, usuários que não utilizam corretamente o sistema, etc. Assumir erros oferece dois grandes bônus, primeiramente a oportunidade de aprender, porque toda falha é uma oportunidade de aprendizado, e o outro é sinalizar para todos o alto grau de envolvimento, criando uma reputação de comprometimento na empresa.

Esses são alguns dos hábitos que devem ser evitados, porém podemos resumi-los em uma única palavra, atitude.  Ter uma atitude boa e positiva, aliado com um pensamento positivo, refletirá no que você faz e o tornará um desenvolvedor mais produtivo.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
https://marcelogoberto.blogspot.com/

terça-feira, 18 de fevereiro de 2020

Para que serve o Azure Logic Apps (Aplicativos Lógicos)?


Imagine o cenário, uma loja virtual contém na parte de produtos um espaço para que os clientes enviem seus comentários sobre os produtos que foram adquiridos, como são milhares de produtos e milhares de dezenas de clientes, em média são inseridos dez mil comentários, que podem ser positivos ou negativos. O comentários negativos podem gerar quedas nas vendas, se não for identificado rapidamente o motivo, como campo de comentários é aberto, fica quase impossível criar uma mecanismo de revisão humana para aprovar e classificar cada comentário. Entretanto é neste cenário criado que o Logic Apps podem solucionar o problema que seja necessário o desenvolvimento de código especifico. Vamos ao desenho da solução.


A cada entrada de comentários, a loja virtual efetuará o chamado de uma requisição HTTP que será configurada no fluxo de trabalho do Logic Apps, com essa informações será acionado o serviço cognitivo que irá efetuar a analise sentimental do texto inserido pelo cliente e será retorno uma pontuação (score) de 0 a 1 sobre essa analise, sendo em direção a zero negativamente e para um positivamente, através desse resultado o comentário será indicado para revisão manual e também será disparado um email para garantir a urgência da tratativa do comentário.

Logo podemos perceber que a utilização do Logic Apps, facilitar a integração de origens com destino através de vários conectores prontos, o que reduz drasticamente os desafios de leitura e escrita, além da garantia de segurança do trafego das informações em ambiente na nuvem para local sem a necessidade de abertura especiais de firewall, além da potência dos serviços com alto nível de escalonamento e estabilidade.

O preço também é um fator bem atrativo, para Ação de um Fluxo de Trabalho que for executada o valor referencial é de irrisórios R$0,000119, para cada utilização de conector para uma origem ou destino o valor por execução é R$0,000502. Numa conta rápida no cenário proposto o custo diário no Logic Apps será algo em torno de R$ 18,63 por dia, para ter analise sentimental de mais de 10000 comentários.

Através desse serviço, você poderá criar seus fluxos de trabalhos para integração de informações entre aplicações, conectando com diversos serviços como o Machine Learning e os Serviços Cognitivos, utilizando praticamente nenhuma linha de código para obter informações dos sistemas para ajudá-lo a tomar decisões de negócios.

Num próximo artigo vamos efetuar a criação dessa solução.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
https://marcelogoberto.blogspot.com/

quinta-feira, 13 de fevereiro de 2020

Principais Razões para uma Péssima Performance no SQL


Esses são os principais pontos que devem ser observados quando da construção de uma base de dados, porque alguns erros podem simplesmente transformar a performance numa verdadeira carroça, e acelerar uma carroça pode até funcionar, mas nãos será por muito tempo que ela vai aguentar o tranco. Vamos ver algumas ações que devemos evitar para garantir um bom desempenho de nossa base de dados.


#1: Desenho de Estrutura Ruim

Boa parte do sucesso de uma aplicação se sustenta nos dados que serão providos e nas velocidades em que eles estarão disponíveis. Por isso é importantíssimo a excelente na construção de uma estrutura do banco de dados, porque ela será a espinha dorsal para tudo que for construído em volta, listamos alguns erros que devem ser evitados para garantir um desenho funcional.

Normalização Baixa
Redundância de informações no banco de dados
Baixa integridade de referência entre tabelas (chaves primárias e estrangeiras)
Chaves primárias complexas demais (muitos campos)
Falta de teste de stress no desenho (cenários de crescimento dos dados)
     

#2: Queries e Códigos Ineficientes

Se você tem uma base sólida e bem construída, agora chegou a parte de criar as principais estruturas que transportaram e transformarão os dados, essas partes são muito importantes, porque será através delas que os dados serão coletados e entregues nas pontas, esses erros devem ser evitados:

Utilizar [NOT IN] ou [IN] em vez de [NOT EXISTS] ou [EXISTS]
Usar cursores ou loop fakes em vez de [INSERT… SELECT] ou [SELECT… INTO TABLE]
Usar [SELECT *] em vez de apenas os nomes de coluna necessários
Esquecendo de usar parênteses ao usar operadores lógicos [OR] ou [AND]
Alinhamento de subconsultas criando um plano de execução complexo
Usando funções na coluna indexada na cláusula [WHERE]
Uso excessivo de funções escalares definidas pelo usuário
Uso desnecessário de [DISTINCT] em qualquer lugar
SQL dinâmico

#3: Estratégia de Indicies Pobre

Os índices podem ser considerados aceleradores de um banco de dados, porém a criação, definição e utilização deve ser estudada e mensurada para que eles possam oferecer ganhos, porque indicies mal dimensionados à revelia podem acabar tendo um efeito contrário, por isso esses erros devem ser evitados:

Indexar todas chaves estrangeiras
Indexar todas as colunas de uma tabela
Muitos índices para uma simples coluna
Preferir tabelas sem índice clusterizado
Subindexiar suas tabelas
Não efetuar manutenção dos índices      

#4: Baixo Provisionamento de Equipamento

Mesmo que você utilize todas as boas práticas para a construção do seu banco de dados, nada disso surtirá efeito caso você não tenha recursos suficientes para as estruturas sejam utilizadas com uma folga no servidor, ou seja, é importante a metrificação do tamanho do equipamento ou instância que rodará o banco de dados, entre as principais métricas CPU, Memória, Espaço em Disco. Os erros listados devem ser evitados a qualquer custo:

CPU funcionando mais de 90% constantemente
95% da memória sendo utilizadas
Leitura e escrita (I/O) em disco muito alta

#Conhecimento

A palavra chave para criação de um banco de dados performático é conhecimento.

Um profissional de TI, deve continuar aprendendo e se desenvolvendo para ficar à frente de todos os novos desafios futuros, e através dessas informações poderá aplicar mais práticas relevantes para melhorar a qualidade final de seu trabalho.

A cada novo dia, novas ferramentas, metodologias e ferramentas são criadas, sendo disponibilizadas para auxiliar na criação de melhores soluções.

Mantenha-se atualizado sempre.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
https://marcelogoberto.blogspot.com/

quinta-feira, 6 de fevereiro de 2020

Criando um Agent local no Azure DevOps


Quando precisamos que um projeto será entregue num servidor local, ou ainda numa rede privada, cujo o acesso via internet seja restrito, temos que criar um Agent especifico que esteja sendo executado neste ambiente para executar o Release do resultado do Build do Pipeline. O processo é bem simples e fácil, vejamos como:



Passo 1 > Criação de um token para o usuário que será proprietário do Agent

2. Acessar o menu suspenso de usuário e selecionar a opção “Personal access token”



3. Clicar na opção “New Token”



4. Preencher os dados na tela


Importante:
  • A parte de expiração deve ser muito bem definida, porque após esse prazo, será necessário a alteração do token no Agent, o prazo máximo de vida é um ano.
  • Também importante a parte de escopo do agent, pois cada permissão fornecer permissões especificas (build, code, release, etc...)


5. Após a criação, você deve copiar o token exibido, pois o mesmo nunca mais será visível.


Passo 2 – Criação do Agent

 1. Acesso as configurações da organização



2.  Acessar o item “Agent Pool”



3. Criar ou acessar um pool onde será criado o novo Agent



4. Clicar no botão “New Agent”



5. Na tela que será aberto, terá as instruções para criação do Agent no local.



6. Faça o download e depois abra uma janela de comando com o PowerShell



7. Faça a execução do primeiro comando


Observação: Em algumas versões, o comando “mkdir” (criação de diretório) pode apresentar erro, caso isso aconteça, substituir pelo comando “md”

8. Após a execução, agora será a hora de execução a configuração do Agent



8.1. Informe a URL da sua organização ([organização].visualstudio.com)


8.2. Na opção de autenticação, utiliza a padrão [PAT], tecle [ENTER]



8.3. Informe o token que foi criado para o usuário no Passo 1


8.4. Você deve informar o nome do Agent Pool onde ficará alocado o Agent



8.5. Você deve informar o nome do seu Agent, ou deixar o padrão sugerido


8.6. Depois do teste de conectividade, ele solicitará o nome da pasta de trabalho, deixe a padrão

8.7. Você deverá informar se seu Agent será iniciado automaticamente com a instância do Windows, informe “Y” para seja criado um serviço que inicie seu Agent automaticamente



Importante:
  • Para registro do serviço é necessário que o usuário que esteja executando seja um administrador do local onde está sendo instalado.


8.8. Você pode informar qual será o usuário que executará o serviço, deixe o padrão do Windows

8.9. Espere o comando finalizar




10. Não será necessário a execução do último comando, pois como você registrou o Agent como serviço, ele já estará iniciado.


11. Verifique o status do Agent, deve estar Online



Pronto, seu Agent está instalado, configurado e aguardando os Jobs e Task para executar.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
https://marcelogoberto.blogspot.com/

domingo, 2 de fevereiro de 2020

Resenha do Livro: A SUTIL ARTE DE LIGAR O F*DE-SE

Uma estratégia inusitada para uma vida melhor



Esse livro foi lançado 2017 chegando rapidamente ao TOP 10, com certeza um dos principais fatores é seu título, inusitado e chamativo, porque utilizar-se de um palavrão, e neste caso um super expressivo palavrão, ajudou muito a despertar a curiosidade dos leitores.

O conteúdo que o livro apresenta é bem completo a respeito do seu tema, são várias mini histórias para exemplificar seus argumentos, boa parte dessas histórias estão embasadas na própria experiência do autor, o que cria um simpatia e facilitar a criação de um enredo metal. A leitura é muito agradável e de fácil entendimento, uma vez que os pontos abordados são curtos em média, de 5 a 15 minutos de leitura, facilitando a leitura em partes.

Transpondo os conceitos apresentados no livro para o ambiente da tecnologia, muitos profissionais acabam tendo uma postura conturbada e complicada por ter falta de maturidade em situações de stress, pressão ou ainda alto nível de comprometimento, e o resultado disso em muitos casos é ligar o fod*-se de uma forma negativa, gerando uma cadeia de prejuízos para todos envolvidos. Este livro oferece uma visão romântica do fod*-se, ou seja, ele explica como devemos se depreender dos pensamentos negativos e posturas pessimistas ao nossa jornada. Ou seja, ligar o fod*-se e ter uma consciência melhor do que realmente é importante, aquilo que deve ter uma energia empregada com qualidade que agregará valor ao final de cada ação. E isso, pode ser tranquilamente aplicado no cenário coorporativo de tecnologia, porque atualmente a quantidade de informações, ações e atividades estão crescendo exponencial com a criação acelerada de novas ferramentas, processos, metodologias, tecnologias em geral. Se não criarmos um mecanismo de priorizar e dar foco, na maioria da vezes estaremos caminhando em círculos, por estarmos demais preocupado com um resultado inatingível por falta de objetivo, metas e principalmente foco.

O encerramento do livro é bem dramático quando descrever o ultimo exercício como uma caminho para a morte, contudo  nos faz refletir a real importância de nossa importância como indivíduos único e especial em nosso dia a dia. Recomendo a leitura para profissionais de TI, porque o livro ajudará a criar uma nova perspectiva de você, onde você se encaixa e principalmente como deve ser sua forma de pensar em relação a sua postura profissional.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
https://marcelogoberto.blogspot.com/