An Interest In:
Web News this Week
- April 26, 2024
- April 25, 2024
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
- April 20, 2024
Instalao das ferramentas de um desenvolvedor Elixir
Este um guia de instalao de muitas ferramentas necessrias para voc poder desenvolver na Linguagem de Programao Elixir. Para evitar alguns problemas, recomendo fortemente o uso de Linux ou WSL2 para quem tiver Windows 10, que o meu caso.
Estou usando a distro Ubuntu 20.04 LTS
com o WSL2, que at o momento, no tem apresentando problemas para mim. Para este guia, baixei novamente o Linux Ubuntu 20.04 LTS
para instalar tudo do zero. Ento se voc estiver usando outra distribuio e enfrentar problemas, por favor compartilhe conosco sua dvida ou soluo para o problema, assim estaremos ajudando mais devs :)
Instalando o Elixir
Primeiramente, vamos pensar agora na instalao do Elixir. Neste guia vamos instalar o Elixir usando o asdf, que um gerenciador de verses
que pode ser usado para vrias linguagens de programao como Node.js, Ruby, Python, inclusive o Elixir e o Erlang.
Instalando o asdf
Para instalar o asdf, certifique-se que voc tem o git instalado:
$ sudo apt install curl git
Voc pode copiar todo o cdigo abaixo de uma vez s e colar ele no seu terminal se voc estiver usando o terminal padro BASH. Caso voc alterou para o terminal ZSH, abaixo deixei o cdigo pronto pra colar no terminal tambm :)
git clone https://github.com/asdf-vm/asdf.git ~/.asdfcd ~/.asdfgit checkout "$(git describe --abbrev=0 --tags)"echo -e '
. $HOME/.asdf/asdf.sh' >> ~/.bashrcecho -e '
. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrcsource ~/.bashrcasdf --version
Voc pode copiar todo o cdigo abaixo de uma vez s e colar ele no seu terminal se voc estiver usando o terminal ZSH.
git clone https://github.com/asdf-vm/asdf.git ~/.asdfcd ~/.asdfgit checkout "$(git describe --abbrev=0 --tags)"echo -e '
. $HOME/.asdf/asdf.sh' >> ~/.zshrcsource ~/.zshrcasdf --version
Instalando Pacotes do Ubuntu
Para o Elixir funcionar, precisamos ter o Erlang tambm. E para podermos instalar esses dois, precisamos ter instalado na nossa mquina alguns pacotes do Ubuntu.
Atualizando o sistema:Se voc acabou de instalar o Ubuntu, isso vai demorar, ento voc pode ir pegar um caf :)
$ sudo apt update && sudo apt upgrade -y
Instalando os pacotes:Isso vai demorar muito, mas muito mesmo, bem mais que o comando de atualizao do Ubuntu, ento voc pode ir pegar outro caf, ou melhor, uma jarra de caf, ou ir fazer outra coisa mesmo e voltar daqui uma hora :)
$ sudo apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdk
Instalando o Elixir com asdf
Comeamos adicionando o plugin do Elixir:
$ asdf plugin-add elixir
Agora podemos verificar todas as verses disponveis do Elixir
$ asdf list-all elixir...1.12.01.12.0-otp-221.12.0-otp-231.12.0-otp-241.12.0-rc.01.12.0-rc.0-otp-211.12.0-rc.0-otp-221.12.0-rc.0-otp-231.12.0-rc.0-otp-241.12.0-rc.11.12.0-rc.1-otp-221.12.0-rc.1-otp-231.12.0-rc.1-otp-24mastermaster-otp-21master-otp-22master-otp-23master-otp-24
Vamos instalar a mais recente, que no momento a 1.12.0
$ asdf install elixir 1.12.0-rc.1-otp-24
Por fim, precisamos informar ao asdf qual verso do Elixir deve ser usada pela mquina:
$ asdf global elixir 1.12.0-rc.1-otp-24
Podemos verificar a verso do Elixir usando elixir -v
Na imagem acima, visualizamos que no temos o Erlang
ainda.
Instalando o Erlang com asdf
Adicionando o plugin do Erlang:
$ asdf plugin-add erlang
Agora podemos verificar todas as verses disponveis dele
$ asdf list-all erlang...23.3.4.124.0-rc124.0-rc224.0-rc324.024.0.1
Podemos instalar a mais recente, que no momento a 24.0.1
$ asdf install erlang 24.0.1
E precisamos informar ao asdf qual verso do Erlang deve ser usada pela mquina:
$ asdf global erlang 24.0.1
Instalando o Phoenix
Comando para instalar o Phoenix:
$ mix archive.install hex phx_new 1.5.9
Instalando o Node.js com asdf
O Phoenix usar webpack para compilar ativos estticos (JavaScript, CSS, etc), por padro. O Webpack usa o gerenciador de pacotes node package manager (npm)
para instalar suas dependncias e o npm
requer o Node.js
.
Podemos instalar o Node.js tambm com o asdf
.
Adicionando o plugin do Node:
asdf plugin-add nodejsbash ~/.asdf/plugins/nodejs/bin/import-release-team-keyring
Verificando todas as verses:
$ asdf list-all nodejs...16.0.016.1.016.2.0
Podemos instalar a verso mais recente:
$ asdf install nodejs 16.2.0
Precisamos informar ao asdf qual verso do Node deve ser usada pela mquina:
$ asdf global nodejs 16.2.0
Verificando a verso:
$ node -v
Instalando o PostgreSQL e o pgAdmin com Docker
O PostgreSQL um servidor de banco de dados relacional. O Phoenix configura os aplicativos para us-lo por padro, mas podemos mudar para MySQL ou MSSQL passando a flag --database
ao criar um aplicativo.
Se voc no entende muito bem sobre o PostgreSQL, recomendo assistir essa srie no youtube: aqui voc vai aprender a mudar a senha e o usurio do Postgres
H duas formas de instalar o Postgres, localmente ou via Docker. Eu recomendo fortemente que voc assista o vdeo do canal do Gustavo ELX PRO:
Aqui voc vai aprender a instalar o Postgres e o pgAdmin com o Docker
O pgAdmin
uma aplicao que nos permite visualizar as tabelas e os dados nelas mais facilmente.
Para instalar o Docker no WSL2, sugiro esse link: Guia rpido do WSL2 + Docker
inotify-tools (para usurios linux)
Tem que ser instalado para o Live Reloading do Phoenix funcionar: acesse esse link para instalar
Verificando se Tudo Est Funcionando
Agora que tudo est instalado, voc j pode criar o seu primeiro aplicativo Phoenix e coloc-lo em funcionamento.
Para verificar se tudo est funcionando, vamos executar um comando para criar um aplicativo Phoenix:
$ mix phx.new hello
Alterando configuraes do PostgreSQL:
O username
e o password
devem ser iguais ao do PostgreSQL. Se voc no alterou o nome do usurio e a senha no momento de instalao do PostgreSQL, voc pode deixar o padro "postgres", caso contrrio, voc ter que alterar nos dois arquivos abaixo:
# Configuraes para o Ambiente de Desenvolvimento# caminho: config/dev.exsconfig :delivery_app, DeliveryApp.Repo, username: "postgres", password: "postgres", database: "delivery_app", hostname: "localhost", show_sensitive_data_on_connection_error: true, pool_size: 10
# Configuraes para o Ambiente de Testes# caminho: config/test.exsconfig :delivery_app, DeliveryApp.Repo, username: "postgres", password: "postgres", database: "delivery_app_test#{System.get_env("MIX_TEST_PARTITION")}", hostname: "localhost", pool: Ecto.Adapters.SQL.Sandbox
Comando para criar o banco de dados:
$ mix ecto.create
Aps, voc dever ver algo semelhante:
Compiling 11 files (.ex)Generated delivery_app appThe database for DeliveryApp.Repo has been created
ATENO! Se voc receber algum erro, certifique-se de que o usurio
e a senha
do postgres estejam corretas e, de que o banco de dados tenha sido iniciado.
Verificando se o banco foi iniciado (pra quem instalou sem docker)
- Se voc instalou sem usar docker, voc pode usar esse comando para verificar se o postgres foi iniciado:
$ sudo service postgresql status13/main (port 5432): down
- Caso o retorno tenha sido
down
inicie o banco de dados com o comando:
$ sudo service postgresql start* Starting PostgreSQL 13 database server
- Aps o comando
start
voc receber a mensagemonline
$ sudo service postgresql status13/main (port 5432): online
Verificando se o banco foi iniciado (pra quem instalou com docker)
- Se voc instalou o Postgres com docker, voc pode usar esse comando para verificar se o Postgres foi iniciado. No meu caso, est rodando apenas o pgAdmim, que eu j havia iniciado ele antes:
$ docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES44c8e2eb0171 dpage/pgadmin4 "/entrypoint.sh" 5 weeks ago Up 26 hours 443/tcp, 0.0.0.0:15432->80/tcp pgadmin-dev
- Se o Postgres no apareceu, rode o comando:
$ docker container ls -a61676d09bc02 postgres "docker-entrypoint.s" 5 weeks ago Exited (0) 12 minutes ago postgres-dev44c8e2eb0171 dpage/pgadmin4 "/entrypoint.sh" 5 weeks ago Up 26 hours 443/tcp, 0.0.0.0:15432->80/tcp pgadmin-dev
- Pegue o nmero do postgres, e rode esse comando:
$ docker container start 61676d09bc02
- Rode novamente o comando abaixo para verificar se o postgres foi iniciado. No meu caso ele aparece com o pgAdmin, que eu j havia iniciado antes do Postgres:
$ docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES61676d09bc02 postgres "docker-entrypoint.s" 5 weeks ago Up About a minute 0.0.0.0:5432->5432/tcp postgres-dev44c8e2eb0171 dpage/pgadmin4 "/entrypoint.sh" 5 weeks ago Up 26 hours 443/tcp, 0.0.0.0:15432->80/tcp pgadmin-dev
Rodando o servidor do Phoenix:
Para verificar se tudo est funcionando, digite o comando abaixo:
$ mix phx.server
Aps, acesse http://localhost:4000/
e voc ver algo semelhante:
Extenes para o Visual Studio Code
Um editor de texto bastante usado pelos desenvolvedores Elixir o Visual Studio Code. Nessa seo, falaremos sobre as extenses que podemos instalar para melhorar a nossa experincia.
ElixirLS
A primeira extenso que precisamos instalar o ElixirLS que fornece:
- Suporte a linguagem Elixir;
- Depurador;
- Autocomplete;
- Fechamento automtico inteligente de blocos de cdigo;
- Consulta de documentao ao passar o mouse;
- Formatador de cdigo ao salvar o arquivo;
- Entre outras coisas...
Elixir Theme
um tema de cores feito especialmente para cdigo elixir. Nele as cores so bem separadas, onde conseguimos bater o olho e achar as coisas mais rapidamente.
Instalando Dependncias no Projeto:
Agora vamos falar sobre dependncias que podem ser instaladas em um projeto Elixir. Ao longo do tempo poderei adicionar novas dependncias neste artigo. E, quem sabe, se comear a ficar extenso, posso fazer um novo artigo falando somente sobre dependncias.
Credo
Credo uma ferramenta de anlise de cdigo esttico para a linguagem Elixir com foco no ensino e na consistncia do cdigo. bom para manter a equipe com um padro de cdigo.
- Adicione
:credo
como uma dependncia aomix.exs
do seu projeto:
defp deps do [ {:credo, "~> 1.5", only: [:dev, :test], runtime: false} ] end
- Execute o comando abaixo para instalar:
$ mix deps.get
- Execute o comando para gerar o arquivo de configurao
.credo.exs
. Nele voc poder desabilitar algumas exigncias.
$ mix credo gen.config* creating .credo.exs
Agora podemos instalar uma extenso do vscode para ele sublinhar o cdigo quando tiver alguma inconsistncia:
Ou, ao invs de instalar a extenso, podemos tambm simplismente rodar o comando mix credo
no terminal para verificar as inconcistncias:
Nesse caso o Credo
est nos informando que os mdulos devem ter documentao, mas se decidirmos no momento no fazer documentao, podemos desabilitar essa funo no arquivo .credo.exs
trocando []
por false
:
# .credo.exs# ANTES{Credo.Check.Readability.ModuleDoc, []},# DEPOIS{Credo.Check.Readability.ModuleDoc, false},
Ou podemos colocar um @moduledoc false
informando que no estamos usando documentao no mdulo:
Concluso
Gostaria de te agradecer pela leitura at aqui e espero ter ajudado de alguma forma. Espero que, aos poucos, possamos ir ajustando as informaes nesse artigo, atualizando e acrescentando novas ferramentas. Ento, fique de olho nas atualizaes. Qualquer dvida ou sugesto, por favor deixe-me saber, estou sempre no Linkedin :)
Original Link: https://dev.to/maiquitome/instalacao-das-ferramentas-de-um-desenvolvedor-elixir-1bjm
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To