Caso esteja se perguntando: não, este não é um daqueles posts sobre “esquisitices” do JavaScript (bom, talvez algumas, mas não de uma forma negativa).

O que quero mostrar neste post são features pouco conhecidas do JavaScript, até mesmo entre desenvolvedores experientes. Topa o desafio de ter seu conhecimento desafiado? Vamos lá :)

Continue lendo »

Um grande problema que enfrentamos com JavaScript, tanto no front-end quanto no back-end, é a falta de aplicações e ferramentas open source criadas e usadas por grandes empresas para servirem de exemplo/base para a comunidade. Com o surgimento do React isso tendeu a mudar, dado que o React é usado pelo próprio Facebook e membros do time de desenvolvimento são bastante influentes na comunidade, publicando ferramentas e bibliotecas. E isso não acontece apenas com o Facebook, diversas empresas que usam React diariamente publicam código open source que usam em seus produtos, por isso resolvi fazer uma pequena lista do GitHub dessas empresas!

  • AirBnB: Já sendo bastante conhecido pelo seu styleguide JavaScript, o AirBnB também publica diversas libs e componentes para React;
  • Yahoo!: O Yahoo! foi uma das primeiras empresas grandes a falar sobre as vantagens de se usar Flux e React para aplicações isomórficas, que culminou na criação do Fluxible;
  • Formidable: O pessoal da Formidable ficou mais famoso recentemente pelo lançamento do webpack-dashboard, mas no GitHub da empresa você poderá ver que eles possuem diversos outros repositórios interessantes sobre React;
  • NFL: Tendo como módulo mais famoso o react-helmet, o pessoal da NFL publica vários módulos e ferramentas para um ambiente de desenvolvimento com React que eles próprios usam no GitHub deles;
  • Kadira: O pessoal da Kadira foi o criador do React Storybook, uma ferramenta que permite isolar e listar seus componentes de UI do resto da sua aplicação, vale a pena checar as outras publicações no repositório;
  • Wix: Com o foco maior em React Native, o pessoal do Wix tem bastante conteúdo interessante sobre o assunto no GitHub;
  • Khan Academy: Após bastante tempo baseando a maioria das suas aplicações em jQuery (até porque o próprio John Resig trabalha na empresa), a Khan Academy começou a investir em React;
  • ShakaCode: A ShakaCode é uma empresa focada em desenvolvimento de aplicações web com Rails e React, sendo o pacote mais famoso dessa combinação o react_on_rails, uma alternativa ao react-rails do Facebook;
  • Kriasoft: Tendo diversos “starter kits” entre seus repositórios, a Kriasoft é a responsável pela criação do conhecido react-starter-kit, mas também possuem diversos outros repositórios focados no ambiente React, como para o Webpack e GraphQL;
  • React Community: Esse repositório não pertence exatamente a uma empresa, ele é mantido por vários membros influentes da comunidade React, como o Dan Abramov e o Matt Zabriskie. Há um tempo atrás havia uma outra organization bastante famosa com conteúdo para React chamada Rackt, onde eram mantidos o React Router e diversos outros pacotes famosos, porém os membros das duas organizations decidiram que seria melhor para a comunidade evitar esta fragmentação e as organizations se juntaram.

Bom, é isso, espero que seja útil e te ajude a conhecer coisas novas para React e seu ambiente :)

Se tem uma coisa que aumenta a barreira de entrada para o mundo JavaScript é a escolha e configuração das ferramentas que serão usadas. Este caso se agrava ainda mais quando se está começando a aprender uma nova biblioteca e você ainda não sabe como configurar a ferramenta, ou quando só está querendo prototipar algo rápido e perda de tempo é inaceitável. O caso retratado pelo tweet abaixo te soa familiar?

Pensando nisso, resolvi fazer uma série de posts sobre como escolher a ferramenta certa na hora de prototipar uma aplicação ou quando se está estudando algo novo, ferramentas de fácil (ou nenhuma) configuração, começando por um dos tipos mais imprescindíveis quando se trata de front-end: os module bundlers!

Continue lendo »

Vamos aos links da semana do dia 02/05 (que na verdade são os da semana passada)!

  • Backbone.js For Beginners: Em meio a tanta falação sobre React, Angular, Ember e tudo mais, porque não aprender mais sobre um cara que está na área há bem mais tempo e ótimo para aprender o básico antes de querer se aventurar em coisas mais complexas? Veja uma lista de estudo sobre Backbone!
  • CSS in JS: Antes de mais nada preciso falar que sou contra colocar CSS no JavaScript (a ideia de que componentiza melhor e fica mais fácil de compartilhar no NPM não me convence). Mas achei interessante esta lista de técnicas de como colocar CSS no JS, um padrão bastante comum entre usuários do React atualmente.
  • Node v6.0.0: E a versão 6 do NodeJS finalmente saiu! Agora com 96% de compatibilidade com a spec do ES6. Veja no node.green uma tabela de compatibilidade com o ES6 de várias versões do Node.
  • In defense of .js: Agora que o Node 6 está bem mais compatível com o ES6, chegou a hora de admitirmos que precisamos falar sobre ES modules. Sim, a hora de considerar como será o approach para inserir o uso de import / export nativamente no Node. Entre várias propostas, uma delas aborda a criação de uma nova extensão .mjs para ES modules. Este repositório é uma proposta em defesa da continuidade do .js encabeçada por Dave Herman, Yehuda Katz (um dos criadores do Ember) e Caridy Patiño.
  • kamranahmedse/git-standup: Chegou a hora do standup meeting do seu time e você não lembra o que fez ontem? Permita que o git te ajude!

É isso, pessoal, até a próxima!

Vamos aos links da semana do dia 18/04, que está cheio de JavaScript!

  • rrtr is Dead, Long Live React Router: Após um alto risco de fragmentação na comunidade React por conta de desentendimentos entre desenvolvedores do React Router (existia um post no Medium do desenvolvedor, mas o post foi removido), o problema foi resolvido decentemente e a fragmentação não chegou a acontecer, este post é uma retratação de um dos core developers do React Router sobre o acontecido e dando mais informações sobre o futuro da biblioteca.
  • React v15: A tão esperada versão 15 do React finalmente teve seu release! Clique no link e confira mais sobre esta versão :D
  • Tracking unhandled rejected Promises: Saiba como lidar com promises cuja rejeição não é tratada.
  • Functional Reactive Grame Programming - RxJS Breakout: Um post sobre desenvolvimento de jogos com RxJS, com um exemplo desenvolvendo o jogo Breakout, um case bem diferente para esta biblioteca.
  • Bublé: O Bublé é um “concorrente” do Babel, porém com o enfoque bem diferente (antes que comece aquele papinho de JavaScript Fatigue). O Bublé, diferentemente do Babel, não é expansível (não suporta plugins), não tenta ser 100% compliant com a spec do EcmaScript, e compila apenas ES2015 (sem stage 0, JSX e coisas assim pra você). Ainda assim, vale a pena conhecer, dado que pelos motivos acima ele é bem mais rápido e leve.

Bom, foi isso, até a próxima!

Após algumas longas semanas sem links da semana, vamos aos links da semana do dia 05/04! O post reúne alguns links de semana passada também :)

  • react-basic: Você é o tipo de pessoa que acha que o React é muito exagerado? Que faz coisas demais pra resolver um problema simples? Conheça os conceitos por trás da biblioteca.
  • brunoskonrad/browser-sync-rails: Uma gem para Rails que permite usar browser-sync com a sua aplicação da maneira mais prática possível, vale conferir!
  • What do you cal this in Ruby?: Mais um post sobre Ruby, mas focado também no pessoal de fora da comunidade da linguagem: que nome você dá a tal símbolo da linguagem?
  • Changes to npm unpublish policy: Após todo o ocorrido no “caso kik”, o npm deu uma alterada na sua política de “despublicação” de módulos, dê uma lida!
  • The future of Ember templating: Veja a talk do Tom Dale na última EmberConf sobre Glimmer 2 e o futuro do motor de template do framework, em forma de tweets e fotos!
  • Mailtrain: Você deve ter ficado sabendo sobre o fechamento do plano gratuito do Mandrill e sua unificação com o MailChimp e todo o alarde que isso gerou entre os usuários, certo? Pois saiba que foi criado um clone opensource chamado Mailtrain para que os usuários possam eles mesmo hospedar um serviço de entrega de newsletter! O sistema roda sobre o Nodemailer :D

É isso aí, pessoal, até a próxima!

Antes de explicar do que se trata este post, me sinto na necessidade de falar do que não se trata este post. Este não é um post sobre se você deve usar ponto-e-vírgula (para este assunto você pode ver aqui, aqui, aqui, aqui, aqui, aqui, aqui, aqui ou aq… chega, né?). Este post também não é sobre qual framework MVC/MVP/MVVC/Flux/CQRS você deve usar (mas espere para ver uma pincelada não-polêmica sobre assunto no final do post).

Mas espera, se não é sobre isso, sobre o que é este post?

Bom, a ideia do post começou na minha cabeça quando surgiram os posts “The sad state of <alguma coisa relacionada a JavaScript>” e “<Alguma coisa relacionada a JavaScript> fatigue”. E teve seu ápice quando li o post State of the Art in JavaScript in 2016 e com o caso npm vs Azer vs kik. Mais especificamente com a discussão em volta do que com a remoção do módulo left-pad.

Com todo o alarde gerado sobre o JavaScript não ter esta função no core, ou não ter uma biblioteca oficial que contenha este tipo de função, com a impressão das pessoas de que o JavaScript não tem bibliotecas básicas padrão (mesmo as que não fazem sentido serem parte do core, mas que sejam a primeira opção na hora de resolver um dado problema) senti a necessidade de escrever um post que mostrasse que a comunidade JavaScript tem sim bibliotecas padrão assim. E é sobre isto que este post vai falar. Você pode enxergar este post como uma espécie de awesome, porém mais descritivo e com foco apenas nas ferramentas mais usadas de cada categoria.

Continue lendo »

Aproveitando que agora, após o carnaval, o ano começou de verdade, vamos ao próximo links da semana!

  • The curse of the gifted programmer: Este é um email bem antigo, trocado na lista de email da comunidade Linux no ano de 2000, que eu acabei revendo esta semana. Você já deve conhecer a fama da arrogância do Linus Torvalds, o desenvolvedor do Linux, certo? Veja este email enviado por Eric Raymond (autor de “A Catedral e o Bazar”) ensinando ele uma lição sobre “A maldição do programador talentoso” para ver se ele baixava a bola um pouco. Se você é o tipo de pessoa que se acha boa demais, pode te servir de lição também ;)
  • JavaScript fatigue fatigue: Você deve se lembrar do “JavaScript fatigue”, um post que surgiu há umas semanas atrás de um programador que se sentia fatigado pelo estado atual do JavaScript e a velocidade que as coisas aconteciam. Esta semana o desenvolvedor Axel Rauschmayer publicou um post sobre o assunto, vale a pena ler e abrir sua cabeça quanto ao assunto!
  • ES6 const is not about immutability: Com o surgimento do ES6 e o crescimento de uso de imutabilidade no JavaScript acontecendo ao mesmo tempo, muitas pessoas acabaram confundindo o fato de que o const, nova keyword do JavaScript para constantes locais, não é sobre imutabilidade, este texto pode ser bastante esclarecedor sobre o assunto.
  • A cartoon guide to Facebook’s Relay: Assim como existe o Guia em cartoon para arquitetura Flux, agora há também um guia assim para a arquitetura Relay, também to Facebook. Para acessar a parte 1 do guia, clique no título deste item. As outras partes estão aqui: parte 2, parte 3 e parte 4
  • Grunt 1.0.0 rc1 released: Depois de muuuito tempo, o Grunt finalmente possui um release candidate de uma versão 1.0. Seria uma reação ao crescimento do Gulp semelhante ao que vimos acontecer com o Bower reagindo ao crescimento do npm? Na minha opinião, é aquele velho caso do crescimento de uma comunidade (em relação a software, não à economia) fazer outra comunidade correr atrás do prejuízo.

Até mais!

Depois de algumas semanas de atraso devido à correrias de começo de ano, vamos à mais um Links da semana!

  • Thank you GitHub: Se você se lembra do “Dear GitHub” que eu citei no Links da semana anterior, saiba que agora surgiu um “Thank you GitHub”, com uma proposta justamente inversa: agradecer ao pessoal do GitHub pelas features que o sistema tem! Algo que achei curioso é que o Dear GitHub foi mais assinado pelo pessoal de projetos open source (que não pagam para hospedarem os mesmos), e o Thank you GitHub foi mais assinado por pessoas de empresas.
  • 4 Types of Memory Leaks in JavaScript and How To Get Rid of Them: Conheça neste post 4 tipos de leaks de memórias que podem acontecer no JavaScript e como se livrar deles!
  • Understand promises before you start using async/await: Um post que dá dicas e um lembrete muito importate: aprenda como promises funcionam antes de querer usar async/await no JavaScript!
  • Callbacks, synchronous and asynchronous: Um post bastante interessante sobre callbacks síncronos e assíncronos, pontos importantes à se levar em conta quando estiver escrevendo uma API.

Até a próxima, pessoal!