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

De volta ao Futuro do JS: As próximas features e propostas incríveis

De volta ao Futuro do JS: As próximas features e propostas incríveis

E807477655ad7125c8731065178030e2?s=128

Willian Martins

August 08, 2020
Tweet

More Decks by Willian Martins

Other Decks in Technology

Transcript

  1. E ai, Beleza?

  2. Quem é você!?

  3. Pq vc tá aqui?

  4. https://github.com/tc39/proposals

  5. BrazilJS - ES

  6. @wmsbill O que é this?

  7. @wmsbill this no escopo global Browser - window Web worker

    - self NodeJS - module.exports
  8. @wmsbill this dentro de uma função?

  9. @wmsbill this dentro de uma função?

  10. None
  11. @wmsbill Como fazer this ser previsível? Entender o valor de

    this é complicado Function.prototype.bind Arrow function () => {}
  12. Com .bind()

  13. Com Arrow

  14. @wmsbill Invocando uma função conhecida

  15. @wmsbill Extraindo um método de um objeto

  16. None
  17. @wmsbill Duas sintaxes Unária : :context.method() Binária context: :method()

  18. @wmsbill Sintaxe unária

  19. @wmsbill Sintaxe Binária

  20. @wmsbill

  21. @wmsbill

  22. @wmsbill

  23. @wmsbill Operador Bind é útil para métodos virtuais Mas precisa

    que do this para ser travado
  24. @wmsbill Compondo sem this

  25. @wmsbill

  26. @wmsbill

  27. None
  28. @wmsbill Operador pipeline |> Sintaxe sugar para composição de funções

    Cria uma cadeia de funções fluida
  29. @wmsbill Operador pipeline |>

  30. @wmsbill

  31. @wmsbill

  32. @wmsbill

  33. @wmsbill Função com mais de um parâmetro.

  34. @wmsbill Função com mais de um parâmetro.

  35. @wmsbill Awaiting uma função

  36. @wmsbill Awaiting uma função

  37. @wmsbill Awaiting uma função

  38. @wmsbill Awaiting uma função

  39. @wmsbill Awaiting uma função

  40. None
  41. @wmsbill Smart pipeline Dois tipos bare style e topic style

    () e [] são proibidos no bare style Quando () ou [] é necessário, usa- se o topic style # é um token temporário
  42. @wmsbill Smart pipeline

  43. @wmsbill What about curry?

  44. None
  45. @wmsbill Proposta de pipeline F# Extende a proposta mínima com

    o passo await O passo await espera pela resolução do passo anterior.
  46. @wmsbill Proposta de pipeline F#

  47. @wmsbill

  48. @wmsbill Partial application f(…) aridade = n; partialapp(f(…)) aridade =

    m; m < n
  49. @wmsbill

  50. @wmsbill

  51. @wmsbill Partial application no JS Possível com Function.prototype.bind .bind() trava

    contexto e parametros
  52. @wmsbill

  53. @wmsbill Mas e o currying? É possível fazer partial application

    com curry Curry ≠ Partial application Curry retorna aridade n-1
  54. @wmsbill

  55. @wmsbill Partial application com arrow function

  56. None
  57. @wmsbill Proposta partial application Cria dois novos tokens de parametros

    ? Para argumento único . . . para múltiplos argumentos (não está mais na spec inicial)
  58. @wmsbill Syntaxe do partial application

  59. @wmsbill With arbitrary parameter

  60. None
  61. @wmsbill Partial application em template string

  62. @wmsbill Partial application em template string

  63. None
  64. @wmsbill O token . . . Espalha os argumentos não

    travados Útil quando se quer travar ou o primeiro ou o último parâmetro
  65. @wmsbill O token . . .

  66. @wmsbill O token . . .

  67. @wmsbill Partial application + pipeline

  68. @wmsbill Partial application + pipeline

  69. @wmsbill Posso usar isso em produção? Essas propostas estão em

    estágios muito iniciais A adoção de uma pode mudar ou eliminar a adoção de outra Não está pronta pra prod (ainda)
  70. https://www.twitch.tv/williandev https://twitter.com/wmsbill ola@willian.dev

  71. Valeus! Falows!