Upload
alessandro-dias
View
159
Download
2
Embed Size (px)
Citation preview
Phoenix Simplesmente não é somente um novo framework web!
Alessandro Dias adbatista
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
ImutabilidateEm linguagens funcionais, dados não podem ser alterados após criados.
Pattern matchingiex> a = 1
1
iex> 1 = a
1
iex> 2 = a
** (MatchError) no match of right hand side value: 1
Tipos de dados● Valor:
- Inteiros- Ponto Flutuante- Atomos- Ranges- Expressões Regulares
● Coleções:- Tuplas- Listas- Mapas- Binarios
Funções anonimas
sum = fn (a, b) -> a + b end
Funções anonimas
sum = fn [a] -> a {a} -> a a -> aend
Modulos e funções anônimas
defmodule Times do
def double(n) do
n * 2
end
end
defmodule Factorial do
def of(0), do: 1
def of(n), do: n * of(n-1)
end
defmodule Factorial do
def of(0), do: 1
def of(n) when n > 0 do
n * of(n-1)
end
end
Listas[head | tail] = [1,2,3]
head #=> 1
tail #=> [2,3]
defmodule MyList do
def len([]), do: 0
def len([head|tail]), do: 1 + len(tail)
end
Pipe operator |>
url
|> Workflow.chapters
|> Workflow.pages
|> Workflow.images_sources
|> Workflow.process_downloads(directory)
|> Workflow.optimize_images
|> Workflow.compile_pdfs(manga_name)
|> finish_process
executando um arquivo
$ iex times.exs
ou
$ iex
iex> c “times.exs”
Phoenix
Is a web development framework written in Elixir which implements the server-side MVC pattern.
Instalandomix local.hex
mix archive.install \ https://github.
com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-
1.0.3.ez
Criando uma aplicação
mix phoenix.new hello_phoenix
cd hello_phoenix
mix ecto.create
mix phoenix.server
Criando CRUD
mix phoenix.gen.html User users name:string age:integer
add em /web/router.ex resources "/users", UserController
mix ecto.migrate
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