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

Front-end funcional ELUG #11

Front-end funcional ELUG #11

Ana Luiza Portello

November 04, 2017
Tweet

More Decks by Ana Luiza Portello

Other Decks in Programming

Transcript

  1. • Front-end é tudo relacionado a codificar a interface world

    wide web • HTML(Marcação), CSS(estilo), JS(interação) • Responsabilidade de criar UIs fluidas que consomem e pegam dados. • Ele que faz a ligação com back-end
  2. • Javascript foi pensado em 10 dias pelo Brendan Eich

    em 1995 • O intuito era ser implementada nos navegadores p/ permitir que páginas sejam interativas • Foi chamado de mocha, livescript até se chamar de JavaScript. • ECMAscript toca o JS
  3. A web cresceu e uma linguagem que era pra ser

    de scripts web teve de se tornar robusta
  4. DESIGN da linguagem foi feito pra tentar de ajudar a

    fazer APLICAÇÕES ROBUSTAS de forma simples.
  5. Mantainable but kind of scary Tipos estaticos OO Langs Linguagens

    Maneiras & Dinamicas Mantenabilidade (Facilidade p/ adicionar features) Usavel Fácil de aprender e de pôr em produção
  6. type alias cat = { name: String, age: Int }

    myCat: cat myCat = { name: “mimi”, age: 2}
  7. NoRedInk has 80k+ lines of ELM, and after more than

    a year in production, it still has not produced a single runtime exception. http://elm-lang.org/
  8. Recebe o estado e renderiza a nossa a interface de

    forma declarativa. View Render View (Model)
  9. div [] [ button [ onClick Decrement ] [ text

    "-" ] , div [] [ text (toString model) ] , button [ onClick Increment ] [ text "+" ] ] ~virtual dom~
  10. h1 [] [ text “Olá mundo”] p [ class =”alert”]

    [ text “tudo bem?”] h1 [] [ text ‘Olá mundo’] p [ class = ‘alert’] [ text ‘tudo bem?’] h1 [] [ text “Olá mundo”] p [ class =”alert”] [ text “tudo bem?”] <h1>Olá mundo</h1> <p class =”alert”> tudo bem? </p>
  11. h1 [] [ text “Olá mundo”] p [ class =”alert”]

    [ text “tudo bem?”] class alert[ color (hex `CCFFFF`) ] h1 [] [ text “Olá mundo”] p [ class =”alert”] [ text “tudo bem?”] .alert { color: #CCFFFF; }
  12. h1 [] [ text “Olá mundo”] p [ class =”alert”]

    [ text “tudo bem?”] p [ class =`alert`] [ text `o ELUG é `, , strong [] [ text `TOP`] , text `!` ] h1 [] [ text “Olá mundo”] p [ class =”alert”] [ text “tudo bem?”] <p class=”alert”> o ELUG é <strong>TOP</strong> ! </p>
  13. View div [] [ button [ onClick Decrement ] [

    text "-" ] , div [] [ text “” ] , button [ onClick Increment ] [ text "+" ] ] + -
  14. View 0 view model = div [] [ button [

    onClick Decrement ] [ text "-" ] , div [] [ text (toString model) ] , button [ onClick Increment ] [ text "+" ] ] + -
  15. É o evento base para todos os eventos acontecendo quando

    rola interação na ui(clicks, inputs no form, etc) Msgs Actions
  16. Recebe uma msg e state como input Retorna um novo

    estado e cmd. Essa função é pura e não gera efeitos colaterais Update Reduce
  17. type Msg = Increment | Decrement update msg model =

    case msg of Increment -> model + 1 Decrement -> model - 1 0 + - Update
  18. • Clicamos no botão de “+” no html da View

    • Isso envia uma mensagem de Increment que o Update vai lidar. • O Update nota que a msg de Increment deve adicionar 1 na nossa Model(que atualmente é 0). • O Update atualiza a Model p/ 1 e a nova Model é renderizada na View 0 + - Update MODEL VIEW UPDATE RENDER M SG
  19. • Clicamos no botão de “+” no html da View

    • Isso envia uma mensagem de Increment que o Update vai lidar. • O Update nota que a msg de Increment deve adicionar 1 na nossa Model. • O Update atualiza a Model p/ 1 e a nova Model é renderizada na View 1 + - Update MODEL VIEW UPDATE RENDER M SG
  20. PORQUÊ ELM: CHEGA DE DOR DE CABEÇA COM FRONT-END, CHEGA

    DE JAVASCRIPT https://cuducos.me/2016/09/17/porque-elm.html VAMOS APRENDER ELM https://cuducos.me/2016/10/24/vamos-aprender-elm. html