Mostrando postagens com marcador Basic. Mostrar todas as postagens
Mostrando postagens com marcador Basic. Mostrar todas as postagens

segunda-feira, 27 de dezembro de 2021

10 lições do Almirante McRaven Aplicadas em sua Carreira

O Almirante William H. McRaven foi um SEAL que serviu durante 37 anos na Marinha do Estados Unidos e através de seu livro “Arrume a sua Cama” exemplificou valiosas lições que aprendeu nesta organização e que podemos aplicar em nossas carreiras para ajudar no desenvolvimento profissional.


No livro, "A Montanha de Nuvem", acompanhe a trajetória de Elias, um camponês que parte em busca de um sonho distante, apenas para descobrir que as respostas sempre estiveram mais próximas do que imaginava. Assim como nas lições do Almirante McRaven, a história reforça que a jornada é tão importante quanto o destino e que nossas escolhas moldam quem nos tornamos.

Clique para baixar "A Montanha de Nuvem" de graça pelo Kindle Unlimited . 📚✨



Pequenas tarefas são importantes

Todos somos guiados a executar grandes feitos para aumentar a eficiência de nossas conquistas, entretanto para executar esses feitos é fundamental ter controle, planejamento, persistência, resiliência, tenacidade, sagacidade entre outras habilidades. E precisamos praticar todas essas habilidades várias vezes ao dia para aumentar nosso domínio delas, basicamente executando tarefas menores com primor, se você consegue criar um alto nível de comprometimento com a execução de uma tarefa, mesmo que pequena, sua mente irá se moldar a executar sempre os passos do procedimento para garantir o desempenho.

Ajude e permita-se ser ajudado

Todos nós atuamos em grupos, grandes ou pequenos, são raros os objetivos corporativos em que a atuação depende somente da nossa ação. Praticamente temos que fortalecer nossas relações para aumentar as chances de sucesso para conquistar as metas, entregas, indicadores entre outros fatores. E a melhor forma de criar relações fortes e ajudar e permitir ser ajudado, isso criará um vínculo mais forte, pois irá demonstrar seu comprometimento tanto em estender a mão, como humildade para solicitar uma mão estendida.

Seja humano com humanos

Nós sempre gostamos quando somos tratados com respeito, atenção e cuidado, se isso é tão importante para nós, devemos defender esses tratamentos e estendê-lo a todos que nos cercam. Mesmo estando no meio empresarial ainda somos pessoas com todo o pacote incluso, portanto se faz necessário que tenhamos a sublime sutileza de praticar empatia com o próximo.

Abrace suas falhas e aprenda com elas

Voltando ao tema que todos somos humanos, uma certeza universal é que humanos são falíveis, tendo essa certeza em mente como podemos transformar essa condição em vantagem na carreira? Simplesmente aprendendo com cada uma das suas falhas, mesmo que elas aconteçam repetidamente, porque será através da análise e conhecimento da causa e efeito, que poderemos gerar novos comportamentos preventivos para evitá-las e até mesmo aprimorar nossa eficiência.

Dificuldades são nicho das fortalezas

Sempre ouvimos o quanto é importante sair da zona de conforto, isso porque estar nesta conjuntura é garantia que obstáculos apareceram e precisaram ser superados, e durante esse processo nossa mente irá desenvolver nossos caminhos neurais e armazenar novos conhecimentos. Os resultados dessas dificuldades será criar novas habilidades que poderão ser transformadas em vantagens, por isso, é essencial se expor com controle nestas situações para possibilitar a criação de fortalezas.

Não tenha medo, de absolutamente nada

São insignificantes as situações dentro de uma empresa que você irá colocar sua vida em risco, o máximo que poderá acontecer é não dar certo. Dado que você está num ambiente seguro, você não precisa ter medo de nada para que possa arriscar em dar um próximo passo, assumir uma nova posição, atuar em outra área, ou seja, cada oportunidade sempre é um trampolim para o próximo nível, basta estar na prancha para produzir experiências e ter a chance de impulsionar sua carreira.

Exale confiança e coragem

Uma vez que o medo não faz parte do seu dia a dia, você tem a obrigação de estar sempre confiante no próximo passo, na execução de uma tarefa, assumir uma responsabilidade. Enfim, utilize todo seu histórico profissional e pessoal para balizar essa coragem e transmitir aos colegas sua confiança no sucesso de qualquer empreitada. O positivismo realista com certeza irá garantir que o caminho se torne mais leve.

Sempre esteja preparado

Não importa a situação, condição ou local, se você está previamente municiado de informações suas chances de sucesso aumentam vertiginosamente. Para as situações já conhecidas você tem a obrigação de se preparar antecipadamente, para as desconhecidas você poderá criar roteiros de aquisição de novos conhecimentos para ir aumentando suas habilidades em assuntos diversos.

Seja Pró-Realista

Resumidamente, o positivismo é a capacidade de ter domínio dos conhecimentos para tratar as situações, acoplando a isso, a realidade, podemos gerar um fator motivacional que fornecerá uma força extra para auxiliar na execução de tarefas. É mais ou menos como vislumbrar o destino antes mesmo de sair do lugar numa caminhada, se você conhecer o local que irá chegar a caminhada se torna mais fácil, pois você disparará um gatilho em sua mente que criará uma zona de segurança.

Para criar resiliência, você não pode evitá-la

Só podemos criar resistência se fortalecermos o material, neste caso o material é nossa mente e a resistência é expor-se a situação fora da nossa zona de conforto, mas só o fato de se expor- não é suficiente, é indispensável que não desistamos no caminho, porque tudo aquilo que é diferente gerará desconforto e muitas vezes tentamos nos convencer que não é mais necessário, são raras as ocasiões que devemos desistir, para isso faça sempre um excelente plano de execução para tomar ciência de todas as dificuldades que enfrentará e esteja preparado mentalmente para vencê-las.

Acredito que utilizando essas dicas, poderemos alavancar nossas carreiras em curto, médio e longo prazo. O mais importante, assim como arrumar sua cama diariamente explanado pelo Almirante McRaven, é criar consciência da sua responsabilidade sobre sua carreira, conduzi-la para a direção que deseja e trará-lá com planejamento para garantir um crescimento contínuo e eficaz.

Marcelo Goberto de Azevedo 

Arquiteto Corporativo Nuvem

//marcelogoberto.com.br

sábado, 22 de agosto de 2020

Principios SOLID em Imagens

A maioria dos desenvolvedores utilizam a POO - Programação Orientada à Objeto e devem ter ouvido falar sobre SOLID, essa sigla é acrônimo para (iniciais do nome em inglês) para os principios para construção de software com qualidade e manutentabilidade. 

Para facilitar a compreensão desses conceitos, foi criado as imagens abaixo, afinal de contas nada melhor que desenhar para se fazer entender.

Princípio da responsabilidade única - (Single-responsibility principle)

Uma classe, microsserviços, componentes devem ser responsável por apenas uma atividade. Utilizando esse principio você poderá garantir que qualquer alteração que venha a acontecer no código irá impactar somente seus dependentes diretos. 

Princípio aberto-fechado (Open–closed principle)

As entidades de (classes, módulos, funções) devem estar abertas para extensão, entretanto  fechado para modificação. Utilizando esse principio podemos garantir que as alterações sendo realizadas através de extensão da entidade base nada será afetado no contexto dos códigos que utilizam a classe original. 

Princípio da substituição de Liskov (Liskov substitution principle)

O objetivo desse princípio é verificar que uma subclasse poderá ser substituída pela sua classe base sem erros. O principio é uma homenagem a Barbara Liskov, ela definiu que "se S é um subtipo de T, então os objetos do tipo T, em um programa, podem ser substituídos pelos objetos de tipo S sem que seja necessário alterar as propriedades deste programa".

Princípio de segregação de Interface (Interface segregation principle)

Crie interfaces refinadas e específicas, porque elas são melhores que interfaces genéricas. Não devemos ser forçados a depender das interfaces que não iremos utilizar. Esse princípio lida com as desvantagens da implementação de grandes interfaces únicas.

Princípio da inversão de dependência (Dependency inversion principle)

Chega um momento no desenvolvimento de software em que nosso aplicativo será amplamente composto por módulos. Quando isso acontece, precisamos esclarecer as coisas usando a injeção de dependência. De uma forma objetiva o princípio nos faz entender que sempre devemos depender de abstrações e não das implementações.

Todos os desenvolvedores devem seguir esses cinco princípios, porque eles irão garantir um código mais limpo, eficiente e mais fácil de ser testado.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil

As imagens são traduções das orignais do artigo de Ugonna Thelma em https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898

segunda-feira, 10 de agosto de 2020

Enviando o Resultado de uma Consulta SQL em formato HTML via Logic App

É um requisito bem simples, você precisa que um resultado de consulta ao banco de dados, ou seja, uma saída direta de uma tabela ou um resultado retornado de procedimento precisa ser enviado por email. Esse e-mail pode ser um retrato do momento da execução, algumas verificação diária de um processamento ou simplesmente uma notificação de algo que não deveria ter acontecido. E para facilitar o entendimento enviaremos o resultado formatado em HTML.

Existem inúmeras maneiras mais ou menos eficazes de realizar essa atividade, essa é uma forma de exemplificar um processo simples e rápido de ser implementado.

Consulta SQL

Suponhamos que precisamos enviar uma listagem dos produtos mais vendidos nos últimos sete dias e para isso criamos a consulta abaixo:

Abaixo fazemos pequenas adaptações na consulta, para formatar o resultado para que seja enviado por email e tenha um visual mais legível.

  1. Aplicamos a tag <li> a tag para listar todos os registros de conjunto de dados

  2. Em seguida, envolvemos a lista de itens com a tag HTML <ul>.

O resultado da consulta não é visualmente bonito, já o resultado em HTML :-)

Azure Logic App

Agora vamos criar o nosso Logic App com um gatilho recorrência, a execução da consulta e uma ação "Enviar um e-mail"

Gatilho

Vamos programar para que o aplicativo execute diariamente às 20h.

Ação

Para facilitar vamos executar diretamente o comando SQL, entretanto poderíamos optar por executar um procedimento. Importante configurar o método de autenticação.

Resultado

Agora basta selecionarmos a plataforma que irá efetuar o disparo do email, neste caso está configurado o disparo por uma conta do Gmail. Além da possibilidade de adicionar texto extra ao corpo do email, podemos ainda utilizar fórmulas para coletar outras informações.



Importante, como o resultado de uma consulta pode ser mais de uma linha, essa ação criará um laço que será executado para cada linha, entretanto nossa consulta sempre irá retornar somente uma linha, logo somente um email será disparado.

Execução 

Após a execução podemos verificar se as etapas foram concluídas com êxito e tempo de execução.

Checando o Email

E podemos ver o e-mail que será entregue todo dia, uma forma simples para atingir um objetivo. 

Até a próxima! :-)

Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br


domingo, 7 de junho de 2020

Basic Cloud Architecture

 **Matéria Publicada no The TechnologyJournal da GFT na edição de jun-2020**

Some concepts that every developer should know before starting in the cloud.

Marcelo Goberto Azevedo –  marcelo.azevedo@gft.com 

The diagram below is a representation of a well-structured basic web application, if you are not a cloud developer, you will probably find it complicated.

 

Next, we will get to know each one of this component and give an introduction so that you can have the necessary knowledge when including it in the project architecture.

(1) DNS

The acronym DNS (Domain Name System) is the technology that allows the internet. This component allows all IP and domains to be referenced and found. Imagine a giant phone book on the internet, it is through it that you can find where a particular address is. When we enter a domain in our browser, for example, http://www.pudim.com.br, that address will be searched in this phone book to find where it should be directed to, it is always behind an IP, in the case of that address it is 54.207.20.104.

(2) LOAD BALANCE

Load Balance is an essential component for cloud architecture, one of the main characteristics of cloud applications is its horizontal scalability, that is, we can create numerous instances (replicas) of applications to meet a large demand of requests, thus ensuring availability It is in this scenario that Load Balance enters because it will be responsible for distributing this demand among all existing instances, ensuring that the rules defined therein are met to avoid overload in a given instance and provide high performance of requests.

(3) WEB APP SERVER

These are the web application servers, basically, it is where the application is installed and will respond to the user by receiving the request and providing an HTML response. As the brain of the application, it will be responsible for communicating with a variety of other components, such as databases, queues, caches, microservices and, much more. Server implementations require a choice a language (C # .NET, Node.js, Ruby, Scala, Java, etc.).

(4) DATABASE

Basically, every application uses a database to store information. It is through them that we can store and update the data captured or generated by the application. In the cloud model, mainly with microservices, it is quite common to use several databases. Also, there are currently two database versions, the most used being the relational database (SQL Server, Oracle, MySql, etc.) and the non-relational database (CosmoDB, MongoDB, DynamoDB, etc.), basically, the difference is that the relational offers greater consistency and reliability and non-relational has the advantage of greater scalability, with the information grouped and stored in the same record.

(5) CACHE SERVER

The cache service basically provides query and persistence of data in virtually real-time. Applications generally use database queries that are executed several times and return the same value, to avoid processing this information, the cache stores this result in memory and keep it available for the time configured for the application, thus making a big gain performance.

(6) JOBS

Most applications need to work asynchronously, that is, that is not associated with responding to a user's request. For that, the "work queues" are used, it is through them that routines are scheduled to be executed from time to time to perform jobs that do not need to happen directly associated with users. The language options and underlying structures are as numerous as for web servers and most of them can be created in the "serverless" concept, which are algorithms that run without a server and are event-oriented.

(7) STORAGE

These repositories are a simple and scalable way to store and access data in the cloud. They are perfect for any type of information you would store on a local file system, with the benefit of being accessible via http from anywhere. And you can also count on the redundancy configuration to guarantee its high availability.

(8) CDN

CDN (Content Delivery Network) is a technology that offers a way to allow access to static files (html, css, javascript, images, etc.) faster than allowing the user to reach the web application to receive their content. Basically, it works by distributing a copy of the most current content among many servers worldwide, so when a user accesses the web application, this content will be delivered by the CDN closest to the user and thus avoiding consumption of server traffic, this will guarantee much lower latency for the user and a better experience.

Working with the cloud is simple and complex at the same time. These elements presented are a small part of the countless possibilities that exist to build an architecture, however, I hope that it will be useful to give the initial kick in its use. Believe that the future of applications will inevitably be in the cloud.

________________________________________________________________________

Marcelo Goberto Azevedo, is a Software Architect at GFT. More than 30 years coding, analyzing and enjoying every moment. - marcelo.azevedo@gft.com