O trabalho remoto pós-covid

2020 foi um ano diferente para todos e, com essa pandemia, uma das soluções adotadas foi o trabalho remoto. Muitas empresas foram forçadas a permitir suas equipes trabalhando à distância, para manter a empresa funcionando e seus colaboradores saudáveis. Agora é um momento de reflexão e, sabendo disso, muitas empresas podem manter o trabalho remoto no mundo pós-covid, porém, algumas velhas formas de pensar das empresas podem surgir. Aqui irão algumas dicas importantes para você que deseja trabalhar remotamente pós-pandemia, passando um tempo a mais com sua família.

Dica nª 1: Procure empresas remotas:

Existem empresas onde a totalidade de seus funcionários (ou uma grande maioria) trabalham de forma remota, mantendo funcionários de todas as partes do planeta. Dificilmente essas empresas pedirão que você faça a transição para o escritório, pois ele não existe! Essas empresas possuem ferramentas e processos que facilitarão o trabalho remoto, pois há a necessidade de todos em realizá-lo. O Gitlab é um exemplo de empresa remota.

Dica nº 2: Mostre que você é um funcionário remoto experiente:

Levando em consideração a epidemia, muitas pessoas possuem uma experiência real de trabalho remoto. Você pode acrescentar e enfatizar isso em seu currículo ou apresentação. Explique que você se mantém motivado e produtivo trabalhando em casa, mantendo o trabalho muito eficaz.

Continue lendo “O trabalho remoto pós-covid”

Atualizações Puppeteer v4.0.0

Puppeteer é uma biblioteca Node que fornece uma API de alto nível para controlar o Chrome ou Chromium sobre o protocolo DevTools. Por padrão, o Puppeteer é executado headless.

A maioria das coisas que você pode fazer manualmente no seu navegador, pode ser realizada com Puppeteer.

O Puppeteer recentemente lançou uma atualização com significativas mudanças. A mudança mais impactante é:

O Puppeteer não utiliza mais a biblioteca EventEmitter no Nodejs:

Como o trabalho é tornar o Puppeteer uma ferramenta que seja independente do ambiente de desenvolvimento, foi removida a biblioteca EventEmitter no Nodejs, em favor de um emissor de eventos que não esteja vinculado ao Node. Por baixo dos panos, é utilizado o Mitt, com funcionalidades adicionais para corresponder aos métodos gerais que o EventEmitter do Nodejs fornece. Então, vários métodos foram removidos do Puppeteer, métodos esses que estendiam o EventEmitter:

  • eventNames();
  • getMaxListeners();
  • listeners(eventName);
  • prependListener;
  • prependOnceListener;
  • setMaxListeners(n);
  • rawListeners(eventName).

 

E os métodos estáticos na classe EventEmitter também não são mais suportados, como por exemplo:

  • listenerCount(emitter, eventName);
  • defaultMaxListeners;
  • errorMonitor;

O EventEmitter do Nodejs emite um evento newListener quando um ouvinte for adicionado e um removeListener quando um ouvinto foi removido. Estes eventos não são mais suportados pelo Puppeteer e não serão emitidos.

 

Novos recursos e melhorias:

  • Os logs de depuração de envio e recebimento agora são divididos em canais separados. Isso torna os logs muito mais claros e permite uma melhor visualização;
  • Agora você pode chamar o método isJavaScriptEnabled() em uma página do Puppeteer para descobrir se o JavaScript está habilitado na sua página.

Correções de Bugs:

  • Agora, o Puppeteer está muito melhor em encerrar os processos remanescentes do navegador, especialmente quando você sai de um teste utilizando o comando Ctrl-C.

 

Por baixo dos panos:

  • A equipe do Puppeteer começou a trabalhar em um novo sistema de documentação. Esse novo sistema utiliza o TSDoc para gerar a documentação a partir do código-fonte de sua aplicação, e tendo transportado a documentação para o código de acordo.

 

Gostou desta notícia? Comente abaixo!

Referências: https://github.com/puppeteer/puppeteer/releases/tag/v4.0.0

Deno: algumas funcionalidades

Com a evolução e mudanças que a linguagem JavaScript sofreu, e as novas adições como o TypeScript, a criação de projetos do Node acaba se tornando um árduo esforço, que envolve o gerenciamento de sistemas de construção e outras ferramentas pesadas que tiram a diversão dos scripts de uma linguagem dinâmica.

Considerando que o cenário do JavaScript e infraestrutura de software mudaram o suficiente para que valesse a pena desenvolver uma simplificação, o Deno foi criado para buscar um ambiente de desenvolvimento divertido e produtivo para ser utilizado em uma ampla variedade de tarefas:

O Deno possui algumas funcionalidades:

Um Web Browser para Scripts Command-Line:

A mais nova runtime para execução de JavaScript e Typescript fora de um navegador.

O Deno provê uma ferramenta independente para criação de scripts de funcionalidades complexas. O Deno é um único arquivo executável. Como um navegador, ele sabe utilizar buscas para código externo. Um único arquivo pode definir um comportamento arbitrariamente complexo sem nenhuma outra ferramenta:

import { serve } from "https://deno.land/std@0.50.0/http/server.ts";

for await (const req of serve({ port: 8000 })) {
  req.respond({ body: "Olá Mundo!" });
}

Esse é um módulo completo de servidor HTTP, acionado com a dependência em uma única linha. Não há instalação a ser feita com antecedência. Para inicializar, utilize o código:

deno run exemplo.js

Suporte à TypeScript de primeira classe:

O Deno é aplicável a vários dominios problemáticos. Desde pequenos scripts até a uma ampla lógica de negócios complexa. O Suporte ao TypeScript permite uma forma de verificação de tipos. O deno types fornece declarações de tipo para tudo o que é fornecido pelo Deno.

Estabilidade:

A promessa de uma API estável do Deno é tratada com extrema importância. O Deno possui muitas interfaces e componentes, por isso, é importante a transparência no quesito estabilidade.  As APIs JavaScript foram cuidadosamente examinadas e não serão realizadas alterações incompatíveis. Quaisquer correções emitidas serão correções de bug, e não alterações na interface.

Você pode verificar as outras novidades e também as limitações do Deno diretamente na documentação e blog da Versão 1 da Runtime

Gostou desta notícia? Comente abaixo!

Referência:https://deno.land/v1

 

Google: guia de como gerar dados estruturados usando JS

Recentemente, o Google publicou uma diretriz de desenvolvedor na página de desenvolvedores do Google. Este documento fornece uma visão sobre como criar dados estruturados utilizando JavaScript e implementá-los no site, ou fazê-los corretamente para que possa trazer benefícios na pesquisa do Google. Este novo guia, descreve métodos para adicionar dados estruturados dinamicamente a um site usando JavaScript. Atualmente, o uso de JavaScript é essencial para criar um site com funcionalidade aprimorada. As novas dicas do guia de desenvolvimento da Google serão especialmente valiosas para especialistas de SEO e desenvolvedores Web.

Atualmente, existem muitas maneiras de gerar dados estruturados com JavaScript, mas as mais utilizadas são:

O gerenciador de tags do google é utilizado para gerar JSON-LD dinamicamente. Ele é uma plataforma que permite o gerenciamento de tags no seu site sem editar o código. Para gerar dados estruturados com o Gerenciador de Tas do Google, você precisa:

  • Configure e instale o Gerenciador de tags do Google ao seu site;
  • Adicionar uma tag HTML personalizada ao contêiner;
  • Cole o bloco de dados estruturado desejado no conteúdo da tag;
  • Instale o contêiner conforme mostrado na seção Instalar o Gerenciador de tags do Google no menu de administração do contêiner;
  • Para adicionar a tag ao seu site, publique seu contêiner na interface do Gerenciador de tags do Google e, por fim:
  • Teste a sua implementação.

E a outra maneira de gerar dados estruturados é usando JavaScript para gerar todos os dados estruturados ou adicionar mais informações de dados renderizados no servidor. De qualquer forma, o Google Search pode entender e processar dados estruturados disponíveis no DOM ao renderizar a página. Para saber como o Google Search processa o JavaScript, consulte o guia básico de JavaScript aqui.

Para isso, você precisa:

  • Encontrar o tipo de dado estruturado em que você está interessado;
  • Editar o HTML do seu site para incluir um snippet JavaScript.
  • Testar sua implementação com o Rich Results Tests.

Gostou deste artigo? Comente abaixo!

Referências:

https://codeburst.io/javascript-news-and-updates-april-2020-98ab1ba67418

https://developers.google.com/search/docs/guides/javascript-seo-basics

JAMStack, o que é?

Construir um aplicativo que seja flexível, iterável e construído em um curto espaço de tempo pode realmente ser desafiador. Soluções em cloud como AWS, Azure e GPC fornecem aplicativos Web escaláveis com custo baixo e em poucas semanas.

Escolhendo um banco de dados, movendo o código do aplicativo para soluções em contâiner como o Docker, implantando funções de Back-End e alterações de código. Assim é o que acontece no desenvolvimento de aplicativos atualmente. Com o JAMSTACK, sites e aplicativos rápidos e seguros são entregues pré-renderizando arquivos e servindo-os diratemente de uma CDN, onde o requisito de gerenciar ou executar servidores Web são removidos.

O Jamstak não é sobre tecnologia específicas. É uma nova maneira de criar sites e aplicativos, oferecendo melhor desempenho, segurança e custo de dimensionamento e uma melhor experiência do desenvolvedor. Sites pré-renderizados podem ser aprimorados com JavaScript e os crescentes recursos de navegadores e serviços disponíveis via APIs. O Jamstack é a junção de JavaScript, APIs e Marcação.

Você provavelmente já trabalhou em um site Jamstack, utilizando Jekyll, Next, Gtasby, entre outros gerenciadores de site estático.
Quando você utiliza um CMS, não está utilizando Jamstack. Por exemplo, se estiver utilizando WordPress, Drupal, Joomla, um aplicativo Web executado por servidor que depende de algum idioma back-end ou um aplicativo de página única que utiliza renderização isomórfica para criar visualizações no servidor em tempo de execução.

Benefícios:

Maior segurança:

Com os processos do lado de servidor abstraídos nas APIs de microsserviço, as áreas de superfície para ataques são reduzidas.

Escala mais barata e fácil:

Quando sua implantação equivale uma pilha de arquivos que podem ser veiculados em qualquer lugar, o dimensionamento é uma questão de veicular esses arquivos em mais locais. As CDNs são perfeitas para isso e incluem dimensionamento em todos os seus planos.

Melhor Experiência do Desenvolvedor:

O baixo acoplamento e separação de controles permitem um desenvolvimento e depuração mais direcionados, e a seleção crescente de opções de CMD para geradores de sites remove a necessidade de manter uma pilha separada de conteúdo e marketing.

Gostou desta notícia? Comente abaixo.

Conheça o Deno, uma runtime JavaScript

O Deno é uma runtime simples, moderna e segura para JavaScript e TypeScript que utiliza o V8 e é construída em Rust.

Idealizado por Ryan Dahl, o criador do Node.js, o Deno é uma implementação totalmente nova, e não um novo fork do node.

A proposta do Deno é prover uma ferramenta standalone, ou seja, permite a criação de uma rápida solução para funcionalidades complexas, sendo sua abordagem a de um único arquivo executável.

  • O Deno é seguro por padrão. Não há acesso a arquivos, redes ou ambientes, a menos que seja explicitamente ativado;
  • Possui suporte ao TypeScript;
  • Envia apenas um único arquivo executável;
  • Possui utilitários embutidos, como um inspetor de dependências e um formatador de código;
  • Possui um conjunto de módulos padrão revisados que garantem o funcionamento com o Deno.

Como Instalar:

Para instalá-lo, você precisará usar os instaladores abaixo ou fazer o download de um binário da versão.

PowerShell (Windows)

iwr https://deno.land/x/install/install.ps1 -useb | iex

Shell (Max, Linux)

curl -fsSL https://deno.land/x/install/install.sh | sh

Chocolatey (Windows)

choco install deno

Iniciando com Deno:

Você pode tentar executar um programa simples dos próprios exemplos do Deno:

deno run https://deno.land/std/examples/welcome.ts

Ou realizar algo mais complexo:

import { serve } from "https://deno.land/std@0.54.0/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
  req.respond({ body: "Olá Mundo\n" });
}

Você encontra instruções mais detalhadas no manual.

Documentação da Runtime:

A documentação básica da runtime do Deno é encontrada em: doc.deno.land. O Deno vem com um manual que contém explicações detalhadas sobre as funções complexas da runtime, uma introdução aos conceitos nos quais o Deno foi construído e como incorporar o Deno no seu próprio aplicativo. Junto à runtime, também é oferecida uma lista de módulos padrão que são revisados pela equipe principal do Deno. O Deno também pode importar módulos a partir de qualquer localização na web, como o GitHub, Cnd, entre outros. O deno.land também oferece um serviço de hospedagem pública simples para módulos ES que funcionam com o Deno.

Gostou desta notícia? Comente abaixo!

Novidades ANGULAR 10

Angular lançou a versão beta do Angular 10, ou seja, a atualização está a caminho!

Essa atualização, planejada para o popular framework de desenvolvimento web, possui duas versões betas iniciais baseadas em TypeScript. Espera-se que a atualização para o framework desenvolvida pelo Google se concentre mais no ecossistema do que em suas características.

A atualização provavelmente será menor do que as versões anteriores do Angular. Não há data predeterminada de lançamento, visto que o Angular 9 ficou disponível no dia 6 de fevereiro deste ano e a versão Angular 9.1 ficou disponível no dia 25 de março.

Até agora, os recursos do Angular 10 são:

  • Adição de informações de dependência e seletores de conteúdo aos metadados;

  • Propagação do período de valor correto em um ExpressionBinding de uma expressão de microssintaxe para ParsedProperty, que por sua vez propagaria o período para os ASTs (VE e Ivy);

  • Uma correção para o núcleo. A lógica seria adicionada à migração de classe não decorada para decorar classes derivadas de classes não decoradas que usam recursos do Angular;

  • Urlmatcher sempre pode retornar null;

  • Foi corrigida uma situação em que havia uma chance de o service-worker nunca se registrar quando há uma tarefa de longa duração ou tempo limite recorrente.

Angular 9.1 chegou com suporte ao TypeScript 3.8:

A versão final do Angular 9 foi o último trabalho antes do Angular 10. O Angular 9.1 adicionou novos recursos, incluindo o suporte ao TypeScript 3.8, aprimoramentos de desempenho e uma longa lista de correção de bugs.

Este é o último lançamento secundário planejado para 9.x. À medida que começamos a trabalhar para a versão 10.0, você deve esperar para ver as pré-liberações da versão 10.0 normalmente uma vez por semana, embora elas contenham apenas alterações mínimas no início.”

Você pode encontrar as versões preliminares do Angular 10 no GitHub.

Gostou deste artigo? Comente abaixo e compartilhe com seus amigos!

Referências:

https://github.com/angular/angular/releases?ref=morioh.com

JavaScript lidera ranking de linguagens

2020 chegou e com ele, muitas mudanças no mundo da tecnologia. Se você está curioso para saber qual pode ser o futuro do mundo da programação, veio conferir no lugar certo.

Seguindo as tendências de 2019, o ecossistema do JavaScript se manteve muito utilizado e otimizado. A cada dia que passa, mais pessoas utilizam esta poderosa linguagem com seus frameworks e bibliotecas.

Por muitos anos seguidos, o JavaScript vem sendo a linguagem de programação com maior crescimento e procura. Ela é amplamente utilizada no desenvolvimento de interfaces interativas para a Web, pois é suportada por todos os navegadores modernos. Segundo a pesquisa anual realizada pela Stack Overflow, cerca de 70% dos 72.525 desenvolvedores profissionais que participaram da pesquisa, afirmaram que utilizam JavaScript. Além disso, é um dos idiomas mais procurados, pois os entrevistados que ainda não usaram, afirmaram que querem aprendê-lo.

Pelo sétimo ano consecutivo, o JavaScript é a linguagem de programação mais utilizada, com Python seguindo de categoria.

Empresas de todo o mundo utilizam JavaScript em seus stacks de linguagens. O JavaScript é o coração de qualquer grande empresa de tecnologia, como o PayPal, que foi um dos primeiros a adotar o NodeJS, Netflix, Groupon, Walmart e LinkedIn. 16 de 25 empresas Unicórnio dos EUA mencionam o JavaScript em suas tecnologias, portanto, é improvável que o JavaScript saia do grid em um futuro próximo.

Em relação aos frameworks web, vemos que os frameworks JavaScript continuam em pleno funcionamento, com o jQuery tomando o primeiro lugar, seguido do Angular/Angular.js, React.js,

ASP.NET entre outros. Ainda vemos o Vue.js em ascensão na lista de frameworks web mais utilizados

.

Entre outros frameworks, bibliotecas e ferramentas, vemos a ascensão do Node.js, que se tornou o mais utilizado, com 50.4%, seguido de .NET e .NET Core. React Native também possui uma grande quantia de usos, com 10.8% dos entrevistados afirmando utilizá-lo

.

Referências:

Gostou desta notícia? Comente abaixo!

Novidades Vue 3

Entre muitas novidades, o Vue 3 está disponibilizando uma nova API para criação de componentes. Ela não introduz novos conceitos no Vue, mas expõe os principais recursos, como criar e observar os estados reativos como funções independentes. Isso é extremamente útil para desenvolvedores de todos os níveis.

Options API e Composition API

No Vue 2, os componentes criados com a Options API são baseados em objetos. No Vue 3, foi adicionado um conjunto de APIs, chamado Composition API que é baseado em funções. Isso é principalmente bom para resolver dois problemas que eram encontrados na utilização do Vue em projetos muito grandes.

Em componentes grandes que encapsulam várias tarefas lógicas, você deseja agrupar código por recurso, mas a API Options dividia esse código (entre hooks de ciclo de vida etc.) afetando negativamente a legibilidade do código. Em segundo lugar, você deseja reutilizar a lógica em projetos de larga escala e, no Vue 2, soluções como mixins não tratam muito bem esse problema.

O Vue 3 veio para resolver esses problemas com uma nova API. Essa API coexistirá com a Options API, não substituindo-a. Você continuará criando componentes da maneira que está acostumado, sem encontrar nenhum problema. Mas você poderá também criar com a Composition API, que fornece recursos mais flexíveis de organização e reutilização de código e lógica. A nova API pensou em levar o Vue adiante como uma estrutura, reduzindo a visão de que o Vue opera “magicamente” por trás dos panos.

Composition API

A Composition API já está disponível como um plug-in para você testá-la.

No Vue 2, a reatividade foi alcançada com o uso de getters e setters do Object.defineProperty, causando algumas limitações. No Vue 3, a reatividade é realizada por meio de proxies, um recurso introduzido no JavaScript ES6.

O Vue oferece APIs independentes que permitem criar, observar e reagir a alterações de estado.

Você pode criar um objeto da seguinte maneira:

import { reactive } from 'vue';
const state = reactive ({ count: 0 });

Você terá acesso às APIs que permitirão injetar hooks dinamicamente em uma instância do Vue. Os métodos de registro do ciclo de vida podem ser utilizados no método setup(), que é o ponto de entrada em que todas as funções de composição são chamadas. Por exemplo:

import { onMounted } from 'vue';

export default {
    setup() {
        onMounted(() => {
            console.log("O componente está montado.");
        })
    }
}

As funções que usam essas APIs podem ser importadas para um componente, permitindo que o componente execute várias tarefas lógicas com código reutilizável e legível.

Gostou desta notícia? Confira as mais novas funções no link de referência!

Referência: https://alligator.io/vuejs/whats-coming-in-vue-3/

O que há de novo no ES2020?

As propostas do ECMAScript estão crescendo e dando origem a novas implementações. Portanto, você já consegue acessar os novos recursos do ECMAScript resumidos no ES2020. E quais são eles?

Dynamic Import

O Dynamic Import é um dos recursos mais interessantes do ES2020. É um recurso que você pode usar com carregamento lento. Antes, se você quisesse importar um módulo em JavaScript, teria algo como:

import Math from ('./Math.js');
const Math = new Math;
Math.multiply();

Nesse caso, temos uma maneira estática de importar o módulo Math e não poderíamos atrasar a carga se quiséssemos que esse módulo dependesse de uma ação do usuário. Graças ao ES2020, você pode usar o carregamento lento sem um webpack. Você pode utilizar a importação como uma função em qualquer lugar do seu código, usando uma função assíncrona que retorna uma Promise:

import Math from ('./Math.js');
.then ((Math) => {
    const Math = new Math;
    Math.multiply();
});

BigInt

Representa um número maior que 2 ^ 53-1 no JavaScript pode ser um problema, pois este é o maior número que o objeto Number pode representar. O BigInt é um objeto que ajuda a representar números maiores que esse. Ele é interessante, por exemplo, no caso de uma multiplicação que gere um número maior que isso. Como o Int já indica, você deve utilizar números inteiros, e não flutuantes.

const bigNumber = BigInt(90000880880909);

Promise.allSettled

O método Promise.allSettled() retorna uma promise que é resolvida depois de todas as promises retornarem resolved ou rejected, com um vetor de objetos descrevendo cada resultado da promise. O Promise.allSettled() retorna algo como Promise.all(). Mas o Promise.all() aguarda que todas as promises sejam cumpridas ou qualquer promise seja rejeitada.

const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject)=>
setTimeout (reject, 100, 'foo'));
const promise = [promise1, promise2];

Promise.allSettled(promises).
 then((results)=> results.foreach((result)=>
 console.log(result.status)));

globalThis:

A propriedade globalThis contém o valor global de this com o contexto do objeto global. Graças a isso, você não precisa diferenciar se o código está sendo executado em um navegador (this) ou no Node (global):

function canMakeHTTPrequest(){
    return typeof globalThis.XMLHttpRequest === 'function';
}

console.log(canMakeHTTPrequest());

Gostou desta notícia? Comente abaixo!

Referência: https://www.ma-no.org/en/programming/javascript/javascript-what-s-new-in-es2020