• (31) 99973-2709
  • hugomoraismendes@gmail.com

Arquivo por autor

Quando usar o TypeScript

Com TypeScript você pode criar funções tipadas e bem modeladas. Exemplo:

// Passa dois parâmetros (a e b) como números, e retorna um número
function soma(a: number, b: number): number { 
	return a + b;
}

Agora vamos errar propositalmente. Caso você tente fazer algo do tipo:

// ERRADO: Passa dois parâmetros (a e b) como números, e retorna uma string
function soma(a: number, b: number): string {
  return a + b;
}

Seu código não rodará porque você declarou o retorno da sua função como string, logo, nenhum outro tipo será aceito. Com isso, você garante a exatidão da tipagem nos dados que estão trafegando no seu software.

Desse modo, você deve ter percebido que para aplicações onde o erro NÃO PODE acontecer em hipótese alguma, o TypeScript é uma ótima opção. Isso é, aplicações grandes e complexas como: – sistema de saúde – sistema bancário – sistema de pagamento – entre outros

Por padrão, o Angular (framework web da Google para criação de SPAs) utiliza o TypeScript no desenvolvimento das aplicações, fazendo com que a comunidade impulsionasse mais ainda a linguagem.

Quando NÃO usar TypeScript

Em alguns casos, é inevitável, não tem como aplicar determinada tecnologia. Se você, seu time ou sua empresa preza por alguns dos tópicos abaixo, não faz tanto sentido você desenvolver com TypeScript: – agilidade no desenvolvimento – documentação de frameworks e módulos do JavaScript para TypeScript – dinamicidade

Hugo Mendes

5 formas de aumentar o compartilhamento de conhecimento

O compartilhamento de conhecimento aumenta a interação social no local de trabalho, leva a um aumento na resolução criativa de problemas, preserva o conhecimento pré-existente para que não se perca à medida que os funcionários se aposentam ou seguem em frente, e permite que todos os departamentos acessem as informações de que precisam, quando precisam, acelerando, portanto, o tempo de resposta.

1. Desenhe o espaço do seu escritório para ser propício à conversa.

Isso não é algo que muitos consideram ao fazer esforços para aumentar o compartilhamento de conhecimento dentro de uma organização, mas o impacto do espaço físico não deve ser negligenciado.

Pense em restaurantes de fast food; eles pretendem mover os clientes através de seu estabelecimento o mais rápido possível (daí o nome fast food). Restaurantes de fast food criam intencionalmente um ambiente destinado a desencorajar a discussão. Coisas como assentos intimamente lotados, desconfortáveis e divisórias altas entre os espaços devem funcionar como um modelo do que NÃO fazer no seu escritório.

Construir um espaço que incentive a colaboração não precisa ser uma reforma completa. Aqui estão alguns exemplos de correções fáceis para tornar o seu espaço de escritório socialmente:

  • Estações de caféConfigure várias estações de café em todo o escritório, e não apenas nas cozinhas. Nada tem o poder de reunir as pessoas como o café faz, e ter várias estações de café em todo o escritório incentivará as pessoas a falar com colegas de trabalho com quem eles geralmente não interagem enquanto esperam por sua plantação para se preparar em um ritmo glacial.
  • Salas de conferência: Quem diz que as salas de conferência têm que consistir em uma grande mesa que exige que todos se sentem em um retângulo agradável, limpo? Claro, essa configuração às vezes é necessária, mas se você tem várias salas de conferência, tente definir uma ou duas de forma menos formal. Tenha várias mesas menores com grupos de cadeiras ao redor, e talvez alguns sofás. Nem toda conferência é uma discussão abafada, de mesa redonda, então forneça um espaço que permita algo menos formal.
  • Assentos casuais em espaços comuns: Quantas vezes você passou por um colega de trabalho no corredor sem dizer: “Como está indo?” Ao colocar mesas de café e assentos casuais em espaços comuns de alto tráfego, os colegas de trabalho terão mais chances de sentar e ter uma conversa rápida com colegas de trabalho de passagem.

2. Incentivar várias formas de compartilhamento de conhecimento.

Prepare-se, porque está prestes a dar as mãos na fogueira aqui. As pessoas têm dons diferentes. Nem todos são um palestrante público especialista ou um debatedor profissional de mesa redonda, e nem todos se sentem confiantes compartilhando seu trabalho escrito, documentos, gráficos, tutoriais, etc. com toda a empresa. Embora o objetivo final de sua iniciativa de compartilhamento de conhecimento seja que todos se sintam confortáveis em espalhar a riqueza de várias maneiras, permitam que as pessoas comecem onde estão confortáveis. Aqui estão algumas sugestões para garantir que a voz de todos seja ouvida:

  • Reserve tempo para colaboração presencialPara aqueles funcionários que florescem em situações presenciais, reserve um tempo de reunião para tirar ideias uns dos outros semanalmente ou bimestmente. Os membros da equipe que já se sentem confortáveis com isso terão a oportunidade de expressar suas ideias, e os membros da equipe que são um pouco mais tímidos terão uma ótima prática.
  • Reserve tempo para compartilhar e contribuir com conteúdoSe você reserva uma hora por semana para que todos se sentem e escrevam algo ou estabeleçam uma cota mensal de contribuição de conteúdo, essa estratégia garantirá que conhecimentos valiosos estejam sendo compartilhados e documentados, para que possam ser revisitados repetidamente.
  • Agende eventos e reuniões fora do localIsso pode ser qualquer coisa, desde um happy hour em toda a empresa até uma reunião de equipe no novo cat café. A questão é mudar a cena. Às vezes, basta um novo espaço refrescante para colocar a colaboração em movimento.

Enfatize que cada membro da equipe tem algo valioso para compartilhar, e que pode ser realizado de muitas maneiras diferentes.

3. Incentivar o compartilhamento de conhecimento.

Todo mundo adora ser recompensado, e não estamos acima de suborno. Existem muitas maneiras diferentes de recompensar os membros da equipe que incorporam o movimento de compartilhamento de conhecimento. Para começar, forneça um grito na forma de um e-mail, post ou anúncio quando você notar um membro da equipe contribuindo com algo valioso que beneficiará a empresa. Especifique exatamente qual era o conteúdo e algumas maneiras tangíveis de que todos se beneficiarão da contribuição. Dê pequenos prêmios como camisetas, garrafas de água e outros swag para os membros da equipe que estão demonstrando excelentes habilidades de colaboração. Considere dar um bônus ao funcionário que compartilha o conteúdo mais utilizado a cada trimestre, ou todos os anos.

Seja qual for a maneira que você decidir recompensar os funcionários pelo compartilhamento de conhecimento, ter um incentivo com certeza vai iniciar alguma colaboração de próximo nível e fazer os sucos criativos fluírem.

4. Renove seus métodos de treinamento e onboarding.

À primeira vista, o treinamento e o onboarding e o compartilhamento de conhecimento parecem não relacionados. No entanto, os novos contratados muitas vezes passam semanas, ou até meses, sentindo-se muito nervosos para contribuir com suas ideias em um ambiente de grupo. Como resultado, você perde o valioso conjunto de habilidades e conhecimentos para os seus contratados! Aqui estão algumas sugestões para que seus novos contratados contribuam e colaborem no primeiro dia:

  • Dê a cada novo contratado um mentorCultivar um relacionamento de sucesso entre mentor e mentee tem um grande impacto positivo em novas contratações. Saber que há alguém que eles podem ir com suas perguntas, livre de julgamento, é um grande reforço de confiança e capacita novos contratados a falar quando eles não estão seguindo.
  • Sombra de trabalho: Escolha outro membro da equipe (que não seja superior do novo contratado) que exemplifique o compartilhamento de conhecimento e a colaboração e permita que o novo contratado os espalhe por um ou dois dias enquanto trabalha. Observar um membro da equipe que não tem medo de expressar suas opiniões definirá o tom de um espaço de trabalho colaborativo que respeite a opinião de todos.
  • Peça a novas contratações para sua entrada: Uma ótima maneira de fazer uma pessoa sentir que sua entrada não é valorizada é nunca pedir por ela. Não assuma que eles não querem contribuir só porque são novos! Faça questão de buscar a opinião dos novos contratados e, como resultado, eles se sentirão mais confortáveis oferecendo suas opiniões livremente.

5. Encontre um software de compartilhamento de conhecimento que seja adequado para sua organização.

Por último, mas não menos importante, é selecionar uma plataforma de compartilhamento de conhecimento. Já se vê respondendo repetidamente a mesma pergunta? Você gasta uma quantidade excessiva de tempo pesquisando através do Dropbox ou uma bagunça do Google Docs por um pedaço de conteúdo?

O software certo de compartilhamento de conhecimento permitirá que você pesquise de forma fácil e rápida conteúdo, faça perguntas, localize especialistas, armazene documentos e vídeos, agilize seu processo de treinamento e onboarding e incentive todos, de estagiários a CEOs, a contribuir com ideias. Uma plataforma de compartilhamento de conhecimento baseada em nuvem também permite que os membros da equipe colaborem, compartilhem ideias e permaneçam alinhados em torno das mesmas informações, mesmo quando não estão trabalhando no mesmo escritório.

Hugo Mendes

Regressão linear

Sobre regressão linear

A regressão linear é um método estatístico comum, que foi adotado no aprendizado de máquina e aprimorado com muitos novos métodos para ajustar a linha e medir o erro. No sentido mais básico, a regressão se refere à previsão de um alvo numérico. A regressão linear ainda é uma boa escolha quando você deseja um modelo muito simples para uma tarefa preditiva básica. A regressão linear também tende a funcionar bem em conjuntos de dados esparsos e de alta dimensão, sem complexidade.

A relação entre as alturas das crianças e de seus pais foi representada por um modelo matemático, que associa a variável dependente com a variável independente, conhecido como modelo de regressão linear simples.

Essa relação entre as variáveis pode ocorrer de duas maneiras:

  1. Utilizando a análise de regressão
  2. Calculando o coeficiente de correlação de Pearson

análise de regressão avalia a amplitude da variação em uma variável, decorrente da variação em outra variável. Confuso, né? Deixa-me dar alguns exemplos: a variação dos gastos familiares com alimentação em decorrência do quanto de renda a família ganha; a variação da concessão de limite no cartão de crédito em decorrência do salário; o crescimento na taxa de criminalidade, relacionado com o crescimento na taxa de desemprego.

Já o coeficiente de correlação de Pearson informa o quão fortemente duas variáveis estão relacionadas. Essa relação pode variar de -1 a 1 e quanto mais próximo dos extremos, mais forte é a correlação, podendo ser positiva ou negativa. Aquela variável que possui a maior correlação é ideal para usar no modelo.

Por que regressão simples?

Um modelo de regressão simples inclui somente duas variáveis: uma independente e uma dependente. A variável dependente é aquela que está sendo explicada, enquanto a variável independente é aquela que é utilizada para explicar a variação na variável dependente.

Chega mais e confere esses exemplos:

  • Nota de uma prova pode ser explicada pelo tempo de estudo do aluno.
  • Venda de bolos pode ser explicada pelo número de clientes.
  • Consumo de energia do ar-condicionado pela sensação térmica da cidade.
  • Quantidade de metrôs em relação ao número esperado de pessoas no carnaval do Rio de Janeiro.
  • Frequência de compras e-commerce pelo valor do frete cobrado.

Todos os exemplos citado envolvem apenas duas variáveis. Poderiam envolver mais variáveis que explicassem melhor o modelo de regressão simples? Poderia, mas aí não seria regressão simples e sim regressão múltipla.

Por que regressão linear?

Um modelo de regressão linear é uma equação matemática que fornece uma relação linear, ou seja, de linha reta entre duas variáveis, comumente chamada de y. Pelo menos foi assim que aprendemos no ensino médio:

regressão

No entanto, alguns livros ensinam dessa forma aqui:

regressão

Os estatísticos resolveram complicar mais um pouquinho e trocaram as letrinhas. Passaram a usar o alfabeto grego que eles tanto amam.

regressão

Cada um dos conjuntos de valores do estimador de beta zero e estimador de beta 1 fornece uma linha reta diferente. O intercepto é fornecido com base no termo constante na equação e corresponde ao valor do estimador de y quando é zero.

O coeficiente de ou inclinação da linha fornece a quantidade de variação em y estimado, que é decorrente da variação correspondente a uma unidade de x. Esse é o modelo de regressão linear simples.

O modelo de regressão linear simples pode ser determinístico ou probabilístico. Um modelo determinístico fornece uma relação exata entre y. Esse modelo afirma, simplesmente, que é determinado exatamente por x, e que para determinado valor de existe um, e exclusivamente um (único) valor para y.

O modelo pode ser representado por essa equação:

Os betas 0 e 1 são os parâmetros da população. Como os dados da população são difíceis de obter, trabalhamos com os valores estimados, que são calculados utilizando-se de dados gerados pela amostra. Os valores são estimados pela equação:

Entretanto, em muitos casos, a relação entre duas variáveis não é exata. Por causa disso, precisamos levar em consideração a ausência de outras variáveis no modelo e adicionamos o erro aleatório, representado pela letra épsilon. Mais uma letrinha grega para o seu mais novo dicionário.

Quando adicionamos o erro aleatório passamos a ter um modelo probabilístico ou de relação estatística, que representa dois fenômenos:

  1. Variáveis omitidas ou ausentes: o erro aleatório captura os efeitos decorrentes de todas as variáveis que possam não ter sido incluídas no modelo.
  2. Variação aleatória: basicamente causada pelo comportamento humano.

Considerando os dois fenômenos chegamos à uma representação de modelo mais realista.

regressão

O que é regressão linear simples?

Agora que você já sabe o que é regressão linear e regressão simples, juntamos os conceitos e chegamos a essa conclusão: o modelo de regressão linear simples é uma equação matemática que inclui somente duas variáveis e apresenta uma relação em linha reta entre elas. Sacou?

Para que serve?

modelo de regressão serve para prever comportamentos com base na associação entre duas variáveis que geralmente possuem uma boa correlação.

Se você quisesse apenas saber qual o grau de relação entre as variáveis, calcular o coeficiente de Pearson seria suficiente.

Como funciona?

Você precisa conhecer a essência do dado e quanto mais informação você tiver, maior será a sua capacidade de entender a variabilidade de y em função de x.

Com os dados em mãos, faça um gráfico de dispersão (scatter plot) para cada uma das variáveis independentes, calcule o coeficiente de Pearson para as variáveis disponíveis, selecione a mais importante e calcule o intercepto e a inclinação da reta da sua amostra.

Quando tiver feito essas etapas, seu modelo de regressão estará pronto.

No entanto é preciso validar esse modelo. Como você pode fazer isso? Realizando a análise de resíduos.

Eu não vou entrar nesse assunto agora porque o texto já está bem longo. Mas para testar os resíduos (erro aleatório), você precisa validar as premissas do modelo: o erro precisa ter média zero; ter uma distribuição normal; ser independente e ter variância constante. Ok?

Aplicações

As aplicações são infinitas. Eu já citei algumas no início do texto e você pode voltar lá, se quiser. Mas pense assim: tudo que você quiser prever como resultado e puder ser explicado ao máximo com apenas uma variável, poderá aplicar o modelo de regressão simples.

Então segue mais exemplos para reforçar o conhecimento:

  • Produtividade estimada de sacas de café e altitude de plantio (espera-se que quanto mais alto, maior será a produção de café)
  • Número de mortes por doenças isquêmicas do coração em pessoas acima de 60 anos e vacinas contra o vírus da gripe na mesma população (existe uma relação de que quanto maior o número de vacinas, menor o número de mortes)
  • Venda de pipoca e pessoas que vão ao cinema (quanto mais cinéfilos, mais pipoca).

Podemos ficar aqui pensando em várias aplicações e conseguir gerar muitos insights, mas esse não é o propósito do texto.

Agora que você já sabe um pouco mais sobre modelos de regressão linear simples, compartilha com a gente onde e como você aplicaria esta técnica.

E lembre-se, a estatística é a ciência que estuda a incerteza e os modelos sempre apresentarão erros associados. Isso acontece porque existe variabilidade.

No final das contas, a estatística não foi feita para você acertar; o papel dela é direcionar.

Hugo Mendes

MySQL – Função GREATEST()

No MySQL tem a função GREATEST () que retorna o maior valor dos argumentos.

Sintaxe:

GREATEST(value1,value2,...)

Exemplo

Código:

SELECT GREATEST(15,10,25);

Resultado:

mysql> SELECT GREATEST(15,10,25);
+--------------------+
| GREATEST(15,10,25) |
+--------------------+
|                 25 | 
+--------------------+
1 row in set (0.01 sec)

FUNÇÃO GREATEST() com cláusula WHERE

A seguinte instrução MySQL buscará esses livros (juntamente com sua data de publicação e número de páginas) a partir de book_mast tabela que tem mais páginas do que o valor de retorno de GREATEST (200,300,395), ou seja o maior valor é 395, veja abaixo o código do exemplo.

Tabela de amostra: book_mast

Resultado:

mysql> SELECT book_name,dt_of_pub,no_page
    -> FROM book_mast
    -> WHERE no_page>GREATEST(200,300,395);
+--------------------------------+------------+---------+
| book_name                      | dt_of_pub  | no_page |
+--------------------------------+------------+---------+
| Guide to Networking            | 2002-09-10 |     510 | 
| Transfer  of Heat and Mass     | 2004-02-16 |     600 | 
| Fundamentals of Thermodynamics | 2002-10-14 |     400 | 
+--------------------------------+------------+---------+
3 rows in set (0.00 sec)
Hugo Mendes

MySQL – Função SIGN()

No MySQL, a função SIGN() retorna o sinal de um número. Ou seja, indica se o valor é positivo, negativo ou zero.

Você fornece o valor como argumento ao chamar a função.

A função retorna o resultado a seguir, dependendo se o argumento é positivo, negativo ou zero.

  • 1 se o número for positivo
  • -1 se o número for negativo
  • 0 se o número é zero

Sintaxe

Esta sintaxe é assim:

SIGN(X)

O X é o valor que deseja saber o resultado

Exemplo 1 – Uso Básico

Aqui está uma demonstração de passar um valor positivo para esta função.

SELECT SIGN(5);

Resultado:

+---------+
| SIGN(5) |
+---------+
|       1 |
+---------+

Exemplo 2 – Todos os Sinais

Aqui está um exemplo usando três valores diferentes – um valor negativo, um valor positivo e zero.

SELECT 
  SIGN(-5),
  SIGN(5),
  SIGN(0);

Resultado:

+----------+---------+---------+
| SIGN(-5) | SIGN(5) | SIGN(0) |
+----------+---------+---------+
|       -1 |       1 |       0 |
+----------+---------+---------+

Exemplo 3 – Expressões

Você também pode usar expressões como esta.

SELECT SIGN(50 - 60);

Resultado:

+---------------+
| SIGN(50 - 60) |
+---------------+
|            -1 |
+---------------+

Exemplo 4 – Valores NULL

Para um valor NULL a função resultará NULL.

SELECT SIGN(NULL);

Resultado:

+------------+
| SIGN(NULL) |
+------------+
|       NULL |
+------------+
Hugo Mendes

Redirecionamento de URLs no htaccess

Existem várias formas de fazer o redirecionamento de páginas Web. Através do arquivo htaccess é possível  aproveitar o bom ranqueamento das páginas no Google com SEO.

É bem simples fazer esse procedimento.

Primeiro abra o arquivo .htaccess no servidor do seu site.

Agora coloque o código abaixo no final do arquivo e altere o /pagina1 para a url que está no Google e o /pagina2 que é a nova url de página, como resultado, o redirecionamento ocorrerá automaticamente.

<IfModule mod_rewrite.c>
    redirect 301 /pagina1 /pagina2
</IfModule>

Você pode também fazer o redirecionamento de um domínio para outro:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteCond %{HTTP_HOST} ^seudominio.com.br$ [OR]
RewriteCond %{HTTP_HOST} ^www.seudominio.com.br$
RewriteRule ^/?$ "https\:\/\/www.seudominio.com.br\/" [R=301,L]

Também pode-se fazer o redirecionamento coringa, onde se vai carregar todas as URL do site atual na nova URL.
Esse redirecionamento é usado para se aproveitar a indexação das URLs atuais:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^seudominio.com.br.br$ [OR]
RewriteCond %{HTTP_HOST} ^seudominio.com.br$
RewriteRule ^(.*)$ "https\:\/\/www.seudominio.com.br\/$1" [R=301,L]

 

Hugo Mendes
Web

Colocar senha no phpMyAdmin

1 – Abra o arquivo “config.inc.php” que se encontra na pasta X:\Xampp\phpMyAdmin.

Agora encontre as linhas abaixo:

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Lang'] = '';

Pelas Linhas

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'digite aqui sua senha';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = 'pt_BR';

2 – Abra o Painel de Controle do Xampp, clique em “Start” no Apache e MySQL e clique em “Shell” para abrir o prompt de comando:

2 – Com o prompt do Shell aberto digite o comando abaixo colocando a sua senha e de ENTER:

mysqladmin --user=root password "suasenha"

Pode haver erro quando for criar usuários e bancos de dados. Para evita-lo vá na pasta /Xampp/mysql” e crie a pasta lib e dentro da pasta /Xampp/mysql/lib crie a pasta /plugin, assim o erro não vai acontecer.

Ponto agora é só logar.

PS: No Xampp instalado no Ubuntu Linux, antes de alterar a senha no arquivo /opt/lampp/phpmyadmin/config.inc.php, acesse o phpMyAdmin, vá em Contas de usuário e altere a senha da conta root para o host 127.0.0.1 e da conta root para o host localhost clicando em Editar privilégios e depois em Alterar a senha.

Hugo Mendes

API RESTful x Microsserviço

O estilo arquitetônico do REST foi introduzido pela primeira vez em 2000, projetado principalmente para funcionar bem com HTTP / 1.1. Seu princípio básico é definir recursos nomeados que podem ser manipulados usando um pequeno número de métodos. Os recursos e métodos são conhecidos como substantivos e verbos de APIs. Com o protocolo HTTP, os nomes dos recursos são mapeados naturalmente para URLs e os métodos são mapeados naturalmente para os métodos HTTP POST, GET, PUT, PATCH e DELETE.

Existem muitos artigos excelentes falando sobre os princípios e designs de microsserviços, e a API RESTful parece ser muito semelhante aos microsserviços. Contudo, Microsserviços é mais sobre arquitetura, enquanto a API RESTful se concentra mais em como expor microsserviços.

Não importa como você implementa microsserviços, um dos principais motivadores é a esperança de um tempo de comercialização mais rápido então um de seus principais objetivos de design é criar um sistemas desacoplados, independentes e pequenos (permitindo a entrega independente de valor comercial), cada um dos quais

  • é fácil de entender / modificar (porque são pequenos)
  • é o único lugar com lógica / regra de negócios
  • não expõe quaisquer detalhes de implementação, como banco de dados para garantir acoplamento frouxo; também implica que as APIs ou funções RESTful que implementam agregados dentro de um contexto limitado devem pertencer a um microsserviço porque estão fortemente acopladas em termos de compartilhamento de muito design e arquitetura de alto nível, ou seja, linguagem de programação e estruturas, estrutura de acesso ao banco de dados, etc. para reduzir a complexidade, pois você pode não querer manter um módulo ou contexto limitado (ou seja Serviço de mensagens) que usa diferentes tecnologias e pilhas de tecnologia
  • pode ser implantado separadamente sem afetar os outros, desde que as interfaces permaneçam as mesmas
  • mais alguns benefícios (como escala separadamente, escolha de linguagens de programação, etc.)
  • complexidade de desenvolvimento comercial para complexidade operacional enfadonha, mas difícil, ou seja, questões transversais, como descoberta de serviço, segurança serviço a serviço e origem a serviço, observabilidade (incluindo telemetria e rastreamento distribuído)

Não gosto da ideia de pensar em microsserviços em termos de linhas de código ou número de métodos, mas na prática um contexto limitado pode ser um ótimo candidato para microsserviços. Se a entrega de mudanças requer uma coordenação lenta e cara, a arquitetura precisa ser revisada porque não atinge os objetivos.

O isolamento ou tolerância a falhas é um dos objetivos mais importantes ao projetar um microsserviço. Se um sistema consiste em um conjunto de microsserviços bem isolados, uma falha em um dos microsserviços não afetará todo o sistema. Por exemplo, se um microsserviço (como serviço para membros) é um serviço principal do qual muitos outros microsserviços dependem, precisamos pensar em como projetá-los para garantir que a comunicação e a interação com o serviço principal sejam tolerantes a falhas. O contexto limitado pode ajudar, com isso quero dizer que cada microsserviço (como serviço de mensagens) tem sua própria definição do mesmo modelo (como membro) e os mantém / sincroniza internamente para usá-los sem invocar os microsserviços. O agente de mensagens também pode ser usado como um intermediário entre eles ao tentar chamar microsserviços para alterar seu estado,

Portanto, microsserviços tem mais a ver com estilo de arquitetura e design, e você pode implementar um microsserviço sem a API RESTful. No entanto, a API RESTful facilita a construção de microsserviços fracamente acoplados.

A API RESTful foi introduzida antes dos microsserviços. É um dos protocolos RPC . Uma das idéias principais é que cada objeto possui uma interface uniforme . Por exemplo, os objetos são identificados e manipulados por meio de um padrão . No mundo da ASP.NET Web API, os objetos são organizados por meio de atributos de controladores, ações e HttpVerbs.

Ao contrário da API da biblioteca (na forma de .dll), API RESTful (na prática, a API exposta por meio de terminais HTTP)

  • é verdadeiramente fracamente acoplado (contanto que as interfaces e sua semântica permaneçam iguais, a implementação da API no servidor pode mudar a qualquer momento, sem se preocupar em interromper seus consumidores e implantações do lado do consumidor)
  • é agnóstico de linguagem

Portanto, microsserviços e API RESTful resolvem problemas diferentes, mas funcionam juntos!

Hugo Mendes
Web

Git Stash

O comando Git stash

O que faz o Git Stash ?

$ git status
modified:   index.html$ git stash
Saved working directory and index state \ "WIP on master: 049d078 added the index file" HEAD is now at 049d078 added the index file$ git status
On branch master nothing to commit, working directory clean 

O que aconteceu com as modificações que sumiram ?

Realizei vários stash e agora ?

$git stash list
stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: eb65635... Email Adjust 

“Quero saber é dos macetes agora !”

Outros comandos uteis:

Hugo Mendes

Operador Null Coalesce

Este operador já existia em outras linguagens, como C# e Pearl. Eu achei muito interessante como ele melhora a legibilidade do código na checagem de variáveis.

A lógica do operador é a seguinte: retornar o primeiro valor que exista e não seja nulo dentre os valores passados. Em alguns casos, para pegar o valor de GET, por exemplo, utilizamos a seguinte sintaxe:

$valor = (isset($_GET['id']))? $_GET['id'] : 1;

O trecho acima verifica se o índice ‘id’ está setado em GET, e caso esteja, ele seta na variável $valor, caso contrário, é informado o valor 1.

Já com o operador null coalesce, este trecho fica muito mais claro e fácil de entender.

$valor = $_GET['id'] ?? 1;

O operador ?? (null coalesce) ficará responsável por retornar o primeiro valor que existe e não nulo. Então, se caso não seja passado um ‘id’ via GET, o valor 1 será setado em $valor.

Agora, vamos imaginar que temos o seguinte cenário: precisamos setar um valor na variável $valor, só que este valor pode vir de diversos lugares e há uma ordem a ser seguida de verificação. Como você faria?

Com o null coalesce isso torna-se muito simples:

$valor = $_GET['id']  ?? $_POST['id'] ?? 1;

Primeiro, o operador verifica GET, caso não exista ou seja nulo, ele irá verificar POST. Caso também não exista ou seja nulo, ele irá retornar 1.

Hugo Mendes
PHP