Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Por que (às vezes) você deve reinventar a roda!

Por que (às vezes) você deve reinventar a roda!

Por muitas vezes tive dificuldade ao escolher uma tecnologia pois sempre havia uma preocupação de se utilizar a mais "famosa", por achar que era a melhor escolha.

Porém eu comecei a me questionar se realmente aquela tecnologia era a melhor escolha para o meu projeto, e se eu iria utilizar tudo ou uma parte considerável dessa ferramenta, e na maioria das vezes, não utilizava!

A ideia dessa palestra é mostrar, com o auxílio de alguns exemplos, que algumas funcionalidades que desenvolvemos não precisam necessariamente de um framework/biblioteca, mas sim umas boas 3 linhas de código.

Paulo H. da Silva

February 23, 2019
Tweet

Other Decks in Technology

Transcript

  1. Paulo Henrique da Silva Natural de Barra Bonita Ciência da

    Computação Desenvolvedor na Plataformatec twitter.com/EuSouUmPaulo speakerdeck.com/pauloplataformatec linkedin.com/in/paulohenriquedasilva
  2. Fatos sobre Barra Bonita ~ 36.320 habitantes Ponte Campo Sales

    Rio Tietê (É limpo) Passeio de eclusa
  3. Sobre o que vou falar hoje? • Vou falar um

    pouco da visão que eu tinha e a que tenho atualmente de frameworks e libraries • Dar alguns exemplos de quando eu acho interessante utilizarmos e quando não, baseado no que vi até agora • E depois eu gostaria de ouvir a sua opinião :)
  4. Apenas por curiosidade, o que esse framework oferece? roda :)

    volante... motor... câmbio... Rádio MP3... Escapamento...
  5. • Porque foi mais fácil; • Porque já estava pronto;

    • Tinha uma comunidade cuidando; • Era mais estável e mais seguro; • Foi mais produtivo;
  6. Um diálogo entre desenvolvedores É uma biblioteca do Facebook que

    te permite criar componentes reutilizáveis.
  7. Um diálogo entre desenvolvedores Uma é a biblioteca em si

    e a outra é para você manipular o DOM usando JSX
  8. Um diálogo entre desenvolvedores JSX é tipo um XML para

    descrever o DOM. Sei lá, é tipo um HTML melhorado.
  9. Eu segui o caminho mais legal, mas: ◦ Não aprendi

    como uma requisição POST funciona; ◦ Não aprendi criar um elemento form HTML; ◦ Eu não aprendi como o HTTP funciona; ◦ Não aprendi usar banco de dados sem ActiveRecord; ◦ Não aprendi buscar elementos no DOM sem jQuery/JSX;
  10. Benefícios de utilizar algo pronto: • Gasta-se menos tempo para

    resolver problemas; • Muita gente usa, bugs são reportados com mais frequência; • Utilizamos padrões ao invés de definir os nossos; • Vai nos poupar de decisões;
  11. Malefícios de utilizar algo pronto: • Leaky abstraction; • Bugs

    da dependência adicionada podem aparecer; • Pode inchar a nossa aplicação; • Pode desestabilizar a nossa aplicação;
  12. Mas é muito difícil fazer as coisas do zero :(

    (Será que isso sempre é uma verdade ?)
  13. Não necessariamente... Nós finalmente finalizamos a remoção do jQuery do

    frontend do GitHub. E o que nós colocamos no lugar? Nenhum Framework
  14. Isso quer dizer que jQuery é ruim? (Não! Quer dizer

    que o GitHub teve 2 excelentes decisões)
  15. Browsers no passado eram complicados 2007 - GitHub adiciona jQuery

    GitHub remove jQuery - 2018 Maior incompatibilidade dos Browsers + Time to Market + Time Pequeno Ótima escolha Menor incompatibilidade dos Browsers + Investimento em “House clean” + Time maior Opcional
  16. querySelectorAll // jQuery var myPp2Items = $('.my-pp2-items'); // Vanilla JS

    var myPp2Items = document.querySelectorAll('.my-pp2-items'); jQuery 3.3.1 minificado: 87KB JavaScript Vanilla: 0KB
  17. “Como posso fazer X ?” > “O que acha de

    utilizar o framework Y ?” Fundamentos podem ser seus aliados
  18. “Como fazer X utilizando o Framework Y” Fundamentos podem ser

    seus aliados > “Você não pode” > “Você não pode fazer X, mas que tal Z?”
  19. • Tente entender o conceito por trás do sistema de

    rotas do Express.js, como o HTTP funciona; • Aprenda a escrever SQL, pode te ajudar muito na hora de otimizar queries do ActiveRecord; • Um bom entendimento sobre HTML, CSS e Javascript podem auxiliar na escolha de tecnologias como React, Vue.js, Angular, Bootstrap e jQuery; Fundamentos podem ser seus aliados
  20. users = User.all users.count # => (0.7ms) SELECT COUNT(*) FROM

    `users` users = User.all users.length # => (122.9ms) SELECT `users`.* FROM `users` users = User.all users.size # => (0.7ms) SELECT COUNT(*) FROM `users` Um exemplo bacana do ActiveRecord
  21. users = User.all users.to_a # => (64.2ms) SELECT `users`.* FROM

    `users` users.size # => (0ms) 1600 Um exemplo bacana do ActiveRecord
  22. Core Business X Non Core Business Meu Core Business é

    autenticação? SIM NÃO Doorkeeper Warden