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

[Women Dev Summit 2017] Introdução ao framework Phoenix

[Women Dev Summit 2017] Introdução ao framework Phoenix

Nessa palestra vamos conhecer sobre o framework Phoenix, quais são suas dependências - , desde Elixir, Hex package manager, até outras bibliotecas usadas por padrão como o Plug e o Ecto. Vamos subir uma aplicação utilizando os generators disponíveis e conhecer a anatomia de um pequeno projeto em Phoenix. E, por último, discutir quais são os cenários mais indicados para escolher essa tecnologia para desenvolver um produto ou um serviço.

Flavia Fortes

November 11, 2017
Tweet

More Decks by Flavia Fortes

Other Decks in Programming

Transcript

  1. Flavia Fortes
    @flafortes

    View full-size slide

  2. 0 que é Phoenix?

    View full-size slide

  3. Framework web, server side,
    escrito em ...

    View full-size slide

  4. Vamos recapitular o que é
    Elixir...

    View full-size slide

  5. Criada em 2012
    por José Valim

    View full-size slide

  6. Por que criar uma nova
    linguagem?

    View full-size slide

  7. Poucas ferramentas focadas
    em concorrência.

    View full-size slide

  8. Resumindo …

    View full-size slide

  9. Linguagem de programação
    moderna

    View full-size slide

  10. Paradigma funcional

    View full-size slide

  11. Sintaxe simples

    View full-size slide

  12. Foco em concorrência,
    escalabilidade e tolerância a
    falhas

    View full-size slide

  13. Erlang Virtual Machine (BEAM)

    View full-size slide

  14. https://devinus.io/the-excitement-of-elixir/
    https://devinus.io/elixir-its-not-about-syntax/

    View full-size slide

  15. Versão 1.0.0 foi lançada em
    Setembro de 2014

    View full-size slide

  16. Quero aprender mais sobre
    Elixir!

    View full-size slide

  17. http://theerlangelist.com/

    View full-size slide

  18. http://plataformatec.com.br/elixir-radar/weekly-newsletter

    View full-size slide

  19. Phoenix: História

    View full-size slide

  20. Criado em 2014
    por Chris McCord

    View full-size slide

  21. Versão 1.0.0 foi lançada em
    Agosto de 2015

    View full-size slide

  22. Proposta:
    >Alta produtividade
    >Alta performance

    View full-size slide

  23. Arquitetura MVC
    Model
    View
    Controller

    View full-size slide

  24. Familiaridade com Rails,
    Django...

    View full-size slide

  25. Model separado de
    Repositório

    View full-size slide

  26. Cowboy, Plug, Ecto

    View full-size slide

  27. Utiliza ferramentas em
    node.js para gerenciar CSS/JS

    View full-size slide

  28. O que precisamos para criar
    um projeto ?

    View full-size slide

  29. 1. Instalar o Elixir
    https://elixir-lang.org/install.html

    View full-size slide

  30. 2. Instalar o Hex package
    manager
    https://hexdocs.pm/phoenix/installation.html

    View full-size slide

  31. 3. Instalar o Erlang
    https://hexdocs.pm/phoenix/installation.html

    View full-size slide

  32. 4. Instalar o Phoenix mix
    archive
    https://hexdocs.pm/phoenix/installation.html

    View full-size slide

  33. 5. Instalar o node.js
    (opcional)
    https://hexdocs.pm/phoenix/installation.html

    View full-size slide

  34. 6. Instalar o postgresql
    https://hexdocs.pm/phoenix/installation.html

    View full-size slide

  35. Vamos criar um app!
    https://hexdocs.pm/phoenix/up_and_running.html

    View full-size slide

  36. $ mix phx.new call_for_papers

    View full-size slide

  37. Instalando dependências...

    View full-size slide

  38. # criando o banco de dados
    $ mix ecto.create

    View full-size slide

  39. # subindo o servidor
    $ mix phx.server

    View full-size slide

  40. $ git init
    $ git commit -m "Initial commit"

    View full-size slide

  41. Scaffold com Mix Tasks
    https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.Html.html

    View full-size slide

  42. $ mix phx.gen.html talks
    speaker:string
    title:string
    description:string
    Date:utc_datetime

    View full-size slide

  43. $ mix phx.gen.html
    WomenDevSummit Talk talks
    speaker:string
    title:string
    description:string
    date:utc_datetime

    View full-size slide

  44. Quais arquivos esse generator
    criou?

    View full-size slide

  45. $ git status

    View full-size slide

  46. Vamos criar nossas rotas...

    View full-size slide

  47. resources "/talks", TalkController

    View full-size slide

  48. $ mix phx.routes

    View full-size slide

  49. Vamos rodar nossas migrations...

    View full-size slide

  50. $ mix ecto.migrate

    View full-size slide

  51. A hora da verdade…
    http://localhost:4000

    View full-size slide

  52. Se tudo deu certo...

    View full-size slide

  53. Quero aprender mais sobre
    Phoenix!

    View full-size slide

  54. https://github.com/sger/ElixirBooks

    View full-size slide

  55. Phoenix GUIDES
    https://hexdocs.pm/phoenix/overview.html

    View full-size slide

  56. https://dockyard.com/blog/2015/11/18/phoenix
    -is-not-rails
    https://blog.carbonfive.com/2016/04/19/elixir-a
    nd-phoenix-the-future-of-web-apis-and-apps/

    View full-size slide

  57. Agora, aproveitando que estamos
    no Women Dev Summit, vamos
    falar sobre empoderamento...

    View full-size slide