Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 27, 2021 04:16 am GMT

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
image 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 mensagem online
$ 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:
Alt Text

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

image
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

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 ao mix.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:
image

Ou, ao invs de instalar a extenso, podemos tambm simplismente rodar o comando mix credo no terminal para verificar as inconcistncias:
image
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:
image

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To