Hello #dearAlchemist!!! Welcome to #elxpro
Here we discuss strategies and tips for your Elixir learning journey, from scratch to a hero Elixir developer. =D
Why is it essential to set up your machine to use Elixir?
Having the tools on time will help you be more productive and performant.
And in addition to letting you perform faster, it will be simple and fast when you have everything you need to develop with Elixir.
Do you remember when it was necessary for your career?
For most of the projects I worked on, I noticed how arduous it was to set up my local machine to work with the right tools. When I decided to work with Elixir, I mapped all essential tools to work in multiple scenarios. I got lucky because this setup was always a success. Why do I want to share it with you? To make your life as an Elixir engineer easier.
Let`s start
Tools
Zsh
Zsh is a nice tool to use in your terminal
brew install zsh zsh-completions
Curl
Sometimes to, test HTTP requests is very useful - Install Curl
Firacode
After installing, I highly recommend setting up your terminal with this font.
This font is easier to read for a developer - Install Firacode
OhMyZsh
Nice tool to make your terminal awesome for a developer - Install
Elixir
The most important tool. Elixir lang - Install
Phoenix
The most important framework. Phoenix to create Web Elixir projects. - Install
GIT
Essential to control version code - Install
Docker
This is one of the most essential tools for a new-age developer. Docker makes our life easier to simulate environments, build our own image projects, and install databases and tools for the developers without dirtying our computers. - Install Docker
Redis - When I need to use Redis in a project, I install it using docker.
Mongo - When I need to use Mongo in a project, I install it using docker.
Kafka - When I need to use Kafka in a project, I install it using docker. I always use the script below, and it work really well - My script to run Kafka
Postgres - Postgres is an essential Database for those who work with Elixir. And The script below that I provided for you is a way to install the Postgres database easily and fast to start without your need to make any extra configurations in your local machine.
Create the network: docker network create pg --driver bridge
Create the docker image: docker run --name pg --network=pg -e "POSTGRES_PASSWORD=postgres" -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data -d postgres:13.4
Gigalixir - A very nice tool to deploy Elixir application and cheap.
Fly.io - A very nice tool to deploy Elixir application and cheap as well.
Insomnia - For me, is one the best HTTP tool, also easier to create a good APIs with REST/GraphQL documentation.
DBeaver - Access SQL databases
Optional Tools
Kubernetes - Most of the time, when you install Docker, the tool gives you kubernetes
K9s - Kubernetes CLI To Manage Your Clusters In Style!
kubectx - Tool to change kubernetes clusters easily
kubernetes-cli - Tool to execute commands in kubernetes.
Helm - Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application
Conduktor - We take the complexity out of Kafka. We give you the tools you need to troubleshoot, develop, test, and collaborate with confidence.
Cloud SDKs
Most of companies use one of them. I prefer google cloud :D
Google Cloud SDK - Tool to access Google Cloud Services
Aws-Cli - Tool to access Aws Services
Eks-ctl - Tool to manage Aws kubernetes
VsCode
- Color Highlight
- ElixirLS
- ENV
- Git Graph
- Live Share
- Markdown All in One
- Material Icon Theme
- Phoenix Framework
- PostCSS Language Support
- Tailwind CSS IntelliSense
- Tools for Apache Kafka
ShortCuts and Zsh
Install Z-init
- bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
Plugins Zinit:
zinit light zdharma/fast-syntax-highlighting
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-completions
My Zshrc config -https://gist.github.com/theguuholi/d5da8b11d100f04290f8ba203f991767
:D