Postagens

Você conhece os iterators e generators do Javascript?

Imagem
Com certeza você já usou um laço for..of algumas vezes, e não sei você, mas antes quando eu usava, muitas vezes tinha a curiosidade de saber como realmente funciona a implementação de tudo, e hoje vamos ver um pouco sobre. Apesar de o iterator protocol ser um pouco mais antigo que o próprio Javascript, nessa linguagem a implementação dele como protocolo só veio surgir no ES6 , mas não é das novidades do ES6 que vamos falar hoje. Como já deve ter percebido, os iterators estão por quase toda a parte nosso amado JS . Eles estão lá no Array , Set , Map e até nas string também. Iterators e Generators são ótimas formas de computar coisas sob demanda, sem a necessidade de jogar tudo em memória de uma vez. Um exemplo que foi meu primeiro caso de uso foi. Eu tinha um JSON que quando lia ele todo de uma vez, meu navegador simplesmente travava tudo, e meu desafio era lê-lo e fazer uma pesquisa do tipo full te

Sintaxe de Espalhamento? O que é e como funciona?

Imagem
Se você tá aprendendo Javascript e não está aprendendo já com "as novidades" do ES6 — também conhecido como ES2015 ou EcmaScript6 —, já deve ter se deparado com um cenário onde precisava copiar os itens de um Array ou um Object , e viu como pode ser um pouco trabalhoso fazer esse clone que em versões anteriores faríamos algo assim: var oldArray = [ 1 , 2 , 3 , 4 ] var new Array = [] for ( var i = 0 ; i < oldArray.length; i++) { new Array [i] = oldArray[i] } console.log( new Array ) // [ 1, 2, 3, 4 ] Mas graças aos poderes do ES6, isso pode ser bastante simples. No ES6, dentre várias novidades que facilitaram nossas vidas, tivemos a introdução da Spread Syntax , que também é conhecida por Spread Operator . Como o nome já diz, ela é exatamente uma "sintaxe de espalhamento", isso quer dizer que podemos apenas "espalhar" um objeto em outro. Vamos ver o exemplo anterior, agora com

Typescript? É algum substituto poderoso do Javascript?

Imagem
Como podemos falar... Sim, e absolutamente superior ao Javascript — não leve isso a sério. Sei que as vezes pode ser confuso ouvir isso de Javascript , Ecmascript , Typescript e outros vários "algoscript", principalmente quando você ainda tá tendo os primeiros contatos com programação web , mas não, esses "script" que rodam na web geralmente "convertem" de algo, para o bom e velho Javascript — ou WebAssembly, mas isso é papo pra outro dia. Como já escrevi aqui , Ecmascript é, em outras palavras, o "nome verdadeiro" do Javascript, mas não vamos nos aprofundar nisso, já o fizemos antes, o foco hoje é Typescript. Typescript é uma linguagem de programação criada pela Microsoft e que foi divulgada em meados de Outubro de 2012 como um superconjunto de tipagens e ferramentas de Javascript. Ele surgiu como "um simples" superconjunto de ferramentas para melhorar o

Como saber pelo Terminal em que diretório Linux estou

Imagem
Se você já tentou se aventurar em servidores via linha de comando ou mesmo apenas se empolgou mexendo no terminal do seu Linux — ou algum sistema UNIX —, deve ter se deparado com a situação em que encontrou algo interessante, queria anotar o caminho e nem sabia em que diretório estava mexendo. Se algum desses também já aconteceu com você e ainda não sabe como vencer esse pequeno desafio, hoje vamos ver como usar o comando PWD . Sobre o Comando PWD Antes tudo, é sempre bom sabermos com o que estamos mexendo, certo? Evita problemas e ainda nos ajuda a entender quando e como usar. A sigla PWD, do inglês, significa P rint W orkind D irectory , que como o próprio nome já diz, exibe o diretório de trabalho atual. Apesar de parecer um comando bem simples e básico, ele é bastante útil e cumpre o que promete. É comumente usado para tarefas como: Ver o caminho absoluto do diretório que estamos trab

POO, o que é? É realmente tão difícil?

Imagem
Que o mundo do desenvolvimento de software é extremamente amplo e as vezes difícil para um iniciante todo mundo já sabe; Temos diversos padrões, algumas dezenas de linguagem e outros vários paradigmas seguidos por tais linguagens, e no meio disso tudo temos o amado e odiado paradigma de Orientação a Objetos , que atualmente é o mais difundido e talvez o mais usado — graças a linguagens como: Java , C++ , C# e Python , por exemplo. A Programação Orientada a Objetos — apenas OOP ou POO para os mais íntimos — como já vimos, é um dos mais difundidos paradigmas, e isso não se deve apenas ao fato de algumas pessoas gostarem de sofrer aprendendo o padrão, mas se deve ao fato de que o padrão tem evoluído bastante, principalmente no assunto segurança , reaproveitamento de código e manutenibilidade . Não sei se você sabe, mas a POO se baseia em 4 pilares que são a base — obviamente — de todo este padrão; são eles:

Criando um array de itens únicos em javascript

Imagem
As vezes precisamos trabalhar com um array de itens únicos que o usuário insere, mas como todos nós sabemos, nem sempre o usuário segue exatamente o que falamos pra ele fazer, então sempre é bom verificar os dados antes de fazer algo. Seguindo esse princípio, hoje vamos ver como pegar um array com itens duplicados ou não, e fazer uma verificação simples para criar um novo de itens únicos. Suponhamos que temos um array de nomes pessoais como o seguinte: const nomes = [ 'Ana' , 'Bernardo' , 'Clarisse' , 'Domingues' , 'Eduarda' , 'Clarisse' , 'Felipe' , 'Gis' , 'Domingues' , 'Clarisse' , ] Como podemos ver, Domingues se repete duas vezes e Clarisse mais de duas, o que para o nosso cenário não é muito legal. Vamos fazer isso com um velho conhecido método — ou talvez nem tanto ―, o tal método filter . Nosso código será pareci

Deno, o que é? - Resumo básico

Imagem
A menos que você seja novo na área de programação web ou more debaixo de uma pedra, você já deve ter ouvido falar sobre o Deno ao menos uma vez, mas você sabe o que é? É o que vamos conferir agora. Assim como o Node.js, o Deno é um runtime Javascript, porém, diferentemente do seu irmão mais velho, ele tem a "capacidade" de também "entender" Typescript e WebAssembly sem necessitar de dependências externas. Ele foi criado pelo mesmo criador do Node, o Ryan Dahl , que o apresentou em uma palestra na JSConf 2018 intitulada 10 Things I Regret About Node.js — 10 coisas que eu lamento sobre o Node.js. Durante essa palestra, ele falou sobre seu projeto anterior, assim como também sobre os prós que o Deno trás sob o Node. Por mais perfeito que o Node.js possa parecer, o próprio criador admitiu vários problemas. Não vamos nos aprofundar muito no Node.js, pois já escrevi aqui sobre ele, m

Instalando e gerenciando versões do Python com o Pyenv

Imagem
Se você é novo na comunidade Python talvez não o conheça, ou talvez ouviu falar mas mesmo assim não sabe o que é o Pyenv , se você se encaixa em um dos dois perfis, vem comigo que hoje vamos desbravar um pouco sobre este maravilhoso gerenciador de ambientes Python. Com o Pyenv você pode ter múltiplas versões de Python em sua máquina e gerenciar qual versão usar, de forma fácil e rápida. Vamos ver como funciona? Antes de tudo precisamos instalar o Pyenv, para isso, no Linux vamos usar esse comando: $ curl https://pyenv.run | bash Caso não use Linux e queira ver como instalar em outro SO, clique aqui . Teremos então um resultado similar ao da seguinte imagem: Agora precisamos configurar para que o sistema reconheça os comandos do Pyenv. Vamos abrir nosso arquivo .bashrc . Você pode usar o vim ou outro editor que preferir, mas eu vou usar o nano . $ nano ~/.bashrc Agora com nosso arquivo aber