22
Phoenix Simplesmente não é somente um novo framework web!

Phoenix - JAI 2015

Embed Size (px)

Citation preview

Page 1: Phoenix - JAI 2015

Phoenix Simplesmente não é somente um novo framework web!

Page 2: Phoenix - JAI 2015

Alessandro Dias adbatista

[email protected]

Page 3: Phoenix - JAI 2015

Fabio L Janiszevski

@fabiosammy

[email protected]

[email protected]

Page 4: Phoenix - JAI 2015

ElixirLinguagem de programação funcional, concorrente, Turing completa

Roda sobre a maquina virtual do Erlang (BEAM).

Permite desenvolver aplicações distribuídas, tolerantes a falhas, realtime

criada por José Valim

Page 5: Phoenix - JAI 2015

ImutabilidateEm linguagens funcionais, dados não podem ser alterados após criados.

Page 6: Phoenix - JAI 2015

Pattern matchingiex> a = 1

1

iex> 1 = a

1

iex> 2 = a

** (MatchError) no match of right hand side value: 1

Page 7: Phoenix - JAI 2015

Tipos de dados● Valor:

- Inteiros- Ponto Flutuante- Atomos- Ranges- Expressões Regulares

● Coleções:- Tuplas- Listas- Mapas- Binarios

Page 8: Phoenix - JAI 2015

Funções anonimas

sum = fn (a, b) -> a + b end

Page 9: Phoenix - JAI 2015

Funções anonimas

sum = fn [a] -> a {a} -> a a -> aend

Page 10: Phoenix - JAI 2015

Modulos e funções anônimas

defmodule Times do

def double(n) do

n * 2

end

end

Page 11: Phoenix - JAI 2015

defmodule Factorial do

def of(0), do: 1

def of(n), do: n * of(n-1)

end

Page 12: Phoenix - JAI 2015

defmodule Factorial do

def of(0), do: 1

def of(n) when n > 0 do

n * of(n-1)

end

end

Page 13: Phoenix - JAI 2015

Listas[head | tail] = [1,2,3]

head #=> 1

tail #=> [2,3]

Page 14: Phoenix - JAI 2015

defmodule MyList do

def len([]), do: 0

def len([head|tail]), do: 1 + len(tail)

end

Page 15: Phoenix - JAI 2015

Pipe operator |>

url

|> Workflow.chapters

|> Workflow.pages

|> Workflow.images_sources

|> Workflow.process_downloads(directory)

|> Workflow.optimize_images

|> Workflow.compile_pdfs(manga_name)

|> finish_process

Page 16: Phoenix - JAI 2015

executando um arquivo

$ iex times.exs

ou

$ iex

iex> c “times.exs”

Page 17: Phoenix - JAI 2015

Phoenix

Is a web development framework written in Elixir which implements the server-side MVC pattern.

Page 18: Phoenix - JAI 2015

Instalandomix local.hex

mix archive.install \ https://github.

com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-

1.0.3.ez

Page 19: Phoenix - JAI 2015

Criando uma aplicação

mix phoenix.new hello_phoenix

cd hello_phoenix

mix ecto.create

mix phoenix.server

Page 20: Phoenix - JAI 2015

Criando CRUD

mix phoenix.gen.html User users name:string age:integer

add em /web/router.ex resources "/users", UserController

mix ecto.migrate

Page 21: Phoenix - JAI 2015

Onde aprender maishttp://elixirschool.com/http://elixirsips.com/http://elixir-lang.org/learning.htmlhttps://pragprog.com/book/elixir/programming-elixirhttp://plataformatec.com.br/elixir-radar?utm_campaign=elixir_lang_cta&utm_medium=cta&utm_source=elixir_lang_websitehttp://confreaks.tv/events/elixirconf2015http://confreaks.tv/events/elixirconf2014http://www.akitaonrails.com/elixirhttp://www.phoenixframework.org/docs/overviewhttps://www.youtube.com/channel/UCVjoWz7bfn6QwU6PV01eoqg

Page 22: Phoenix - JAI 2015