Pular para o conteúdo
Início » Desenvolvimento Web » Ambiente de desenvolvimento de software em Linux

Ambiente de desenvolvimento de software em Linux

Se você quer montar o melhor ambiente para desenvolvimento de software em Linux Mint (ou Ubuntu ou outros derivados Debian), este é o artigo certo para isso.

Toda pessoa desenvolvedora de software organiza seu ambiente de trabalho para programação usando um misto de necessidades das tecnologias que usa para programar, e suas preferências pessoais.

Portanto, inicio informando que não existe o melhor mas sim o ambiente de desenvolvimento mais adequado a você. Aqui eu mostro a melhor configuração de sistema operacional, IDEs de programação e outras ferramentas de acordo com o meu contexto, mas que pode ajudar você no seu.

Contexto

Primeiramente vamos estabelecer o contexto do ambiente de desenvolvimento que se deseja montar.

A minha necessidade mais comum é o de desenvolvimento de sistemas para Web. Não significa que este ambiente depois de configurado não pode ser utilizado para desenvolver aplicações desktop ou mobile (apps de celular), porém nestes contexto pode ser que o ambiente necessite de alguns ajustes.

Para desenvolver desktop para Microsoft Windows, Apple Mac iOS ou iPhone, é possível que o próprio sistema operacional, base de todo o ambiente, necessite ser exclusivo para a plataforma.

Por isto é importante esta contextualização técnica, no meu caso a lista de tecnologias que uso em minhas aplicações:

  • Modelo das aplicações: Sistemas para Web
  • Backend: PHP, Laravel, Eloquent, NodeJS, NPM, Express.js, Asp.NET Core, C#
  • Bancos de dados: Mysql, PostgreSQL, Sqlite, MongoDB
  • Frontend: HTML, CSS, Blade, Javascript, jQuery, Webpack, Laravel Mix, NPM
  • Versionamento: Git

Sistema Operacional: Linux Mint

Sistema Operacional Linux Mint

Começando pelo começo, a escolha do sistema operacional para rodar como as ferramentas de desenvolvimento Web é crucial. Para mim, desde 2005, desenvolver software exige o uso de uma distro Linux.

Um pouco de minha história com Linux: fiz as primeiras tentativas em utilizá-lo no final da década de 90, porém com o foco em desenvolver software e não em trabalhar como sysadmin, achei-o muito penoso para configurar hardware e resolver diversos pequenos conflitos na época. Usava o Brasileiro Conectiva que depois virou Mandriva.

Alguns anos depois, em 2005, desenvolvendo aplicações corporativas para Web usando Eclipse para programar com Java, JSF e rodar no servidor de aplicações JBoss, sobre Windows (ME ou XP), a frustração com desempenho era constante. Vários minutos para subir servidor e aplicação a cada teste pequeno.

Decidi dar uma nova chance ao Linux e escolhi a distro sensação da época: Linux Ubuntu.

Fiquei muito satisfeito em conseguir instalar um dual boot de maneira muito mais rápida e fácil que as primeiras experiências com Linux, e fiquei muito mais que satisfeito, em êxtase, quando rodei os primeiros testes com a stack Eclipse/Java/JBoss, e o desempenho (velocidade de carga principalmente) ser superior a 70% em relação ao Windows.

Não tive dúvidas, 2 meses depois não usava mais dual-boot entre Windows e Linux e tinha resolvido adotar o Linux como meu sistema operacional primário para o meu ambiente de desenvolvimento de softwares para Web, e demais atividades profissionais ou pessoais.

Por volta de 2012 quando o Ubuntu resolveu adotar um novo gerenciador de janelas, o Unity, vários problemas começaram a me desagradar na experiência de uso, além da performance que degradou demais. Nesta época uma nova mudança, e depois de testar algumas distros, decidi – e estou até hoje, adotar o Linux Mint, usando inicialmente o gerenciador de janelas Mate (fork do projeto Gnome versão 2) e mais recentemente uso o gerenciador Cinammon (fork inicial do Gnome versão 3).

Instalar Linux Mint

Estes são os passos que uso para instalar um Linux Mint em meus computadores (em breve escrevo um tutorial detalhado):

  1. Baixo a imagem iso mais atual no site do Mint
  2. Gero um pendrive usb bootável com Rufus
  3. Boot pelo USB, executo a instalação pela versão USB Live do Linux Mint
  4. Ao chegar no ponto de decidir pela formatação ou instalação avançada, escolho avançada e defino as partições do disco da seguinte maneira:
    • Área bootável para EFI – 540 MB
    • Ponto de montagem do Boot, /boot – 50 MB
    • Área de swap, /swap – o dobro da quantidade de memória RAM
    • Ponto de montagem geral (raiz), / – ao menos 120 GB
    • Ponto de montagrm home, /home – o restante do espaço livre

Após instalar o sistema operacional o ambiente de desenvolvimento está pronto para começar a ser configurado e personalizado.

Docker

Isto mesmo, o próximo passo é instalar uma ferramenta de virtualização para flexibilizar os vários ambientes que precisam rodar para projetos diferentes. Faço isto antes mesmo de instalar minhas IDEs de programação.

Estou falando basicamente em instalar Docker, talvez VirtualBox, e outras ferramentas neste contexto que me permitem conteinerizar meu ambiente, subindo e desligando serviços de acordo com o projeto.

Instalando Docker no Linux Mint, Ubuntu, Debian

Leia o tutorial que explica como instalar o Docker no Linux Mint, Ubuntu e derivados Debian.

Após instalar o docker e docker-compose, estamos prontos para instalar a base de nossas linguagens, bancos de dados e outras ferramentas em conteineres Docker sem precisar “poluir” a instalação do sistema operacional, além de ter a vantagem de subir e descer serviços quando necessário e usar versões diferentes de linguagens de programação para cada projeto.

Conteineres Docker para PHP Laravel

Para trabalhar com PHP Laravel em meus projetos, eu instalo o PHP e diversas ferramentas com Docker. Gosto de ter produtividade no ambiente local sem precisar me preocupar com configurações extremas para os conteineres, por isso uso um conjunto de configurações para docker-compose chamada projeto Laradock.

Além destes conteineres trazerem a instalação da linguagem PHP, também utilizo os bancos de dados em Docker, o Laradock trásarquivos de configuração docker-compose para Mysql, MariaDB, PostgreSQL, MongoDB, Redis, ElasticSearch, Memcached.

Também containers para outras ferramentas como PHPMyadmin, PGAdmin, RabbitMQ, Beanstalkd, Selenium, Grafana, dentre outras.

Informações sobre o que é o Laradock e como instalar ou resolver problemas você encontra nestes artigos do meu site:

Editores de Desenvolvimento – IDE

Os ambientes de desenvolvimento integrados – IDE (Integrated Development Environments), são os conhecidos editores para programação. Utilizo principalmente o PHPStorm para desenvolver em PHP e Laravel, que me atende também no desenvolvimento com Javascript, VueJS, NodeJS.

Apesar de que acho necessário manter vários IDEs instalados para aproveitar o melhor ambiente de acordo com a Stack. Para edições rápidas utilizo MS VSCode (Visual Studio Code da Microsoft), principalmente para Javascript.

Instalando VSCode no Linux Mint, Ubuntu e Debian

Visual Studio Code é um editor leve de código fonte que fornece suporte abrangente e fácil compreensão para edição, navegação e depuração de código fonte.

VS Code vem com suporte integrado para JavaScript, TypeScript e Node.js, possui um rico ecossistema de extensões (plugins) para outras linguagens (como C ++, C #, Java, Python, PHP, Go) e runtimes (como .NET e Unity ).

Você pode facilmente instalar extensões para adicionar novos idiomas, linguagens, temas, depuradores e para se conectar a serviços adicionais como bancos de dados ou APIs.

Para instalar o VSCode no Linux Mint, Ubuntu e Debian, clique aqui para ler o artigo com tutorial explicativo no blog.

Instalando PHPStorm no Linux Mint, Ubuntu e Debian

O PhpStorm é perfeito para o trabalho com Symfony, Laravel, Drupal, WordPress, Zend Framework, Magento, Joomla!, CakePHP, Yii e outros frameworks PHP.

FTP e sincronização de arquivos

FTP – File Transfer Protocol, é um protocolo para tranferência de arquivos, que mesmo não sendo a ferramenta ideal para realizar o deploy de aplicações Web, é uma mão na roda ter instalada quando se necessita algum acesso rápido a servidores para baixar ou enviar arquivos de maneira contextual.

Logicamente existem contextos de extrema utilizadade para a transferência por FTP, porém no de desenvolvimento de software, seu uso para mim é secundário.

Além de FTP é muito útil manter dados sincronizados, como backup, em nuvem. Não estou falando sobre manter “backup” de seus arquivos fontes, sua gestão deve ser realizada com git ou outro sistema de versionamento de código fonte. Mas sim de manter seus arquivos de trabalho como documentos de editores de textos, planilhas, imagens e outras mídias, sincronizados e seguros.

Para isso também utilizo eu mantenho uma assinatura do Google Drive – R$ 9,99 para 200 MB, e sincronizo os dados usando Insync. Sua licença é muito acessível e vitalícia.

Instalando Filezilla

Filezilla é o meu cliente de FTP preferido por mais de 2 décadas.

Segurança

Para meu controle de senhas de acesso e outros dados sensíveis utilizo um aplicativo de gestão de senhas open source, de um dos projetos mais antigos neste segmento. KeepassXC.

Navegadores

Essenciais para qualquer usuário de computador, para desenvolvedores web ferramenta básica de trabalho.

Como utilizo Linux Mint, mantenho apenas dois navegadores de internet instalados: Firefox e Chrome. No passado cheguei a manter o Chromium mas desisti de seu uso, apesar dos abusos de invasão de privacidade do Chrome. Porém é assunto para outro artigo.

Clientes de Banco de dados

Como trabalhar com desenvolvimento de software sem uma ferramenta que permita a manipulação dos bancos de dados, tanto para execução de comandos SQL, para os bancos de dados relacionais, como navegação de suas estruturas e engenharia reversa para visualização em diagramas.

O meu software preferido há décadas para este fim é o DBeaver.

Testes e consumo de APIs

Qualquer software moderno realiza integrações ou expõe suas funções por meio de APIs (Application Programming Interface), sobre o protocolo HTTP.

Para desenvolver de maneira produtiva, documentar e testar APIs, utilizo o Postman.

Ferramentas para comunicação e trabalho em equipe

Já eram primordiais para equipes de desenvolvimento de software, agora que o trabalho remoto se consolidou (finalmente) mais ainda as equipes devem utilizar ferramentas efetivas para comunicação e colaboração.

As que uso em geral são de acesso “online”, no navegador, como Google Suite (Google Workspace), cliente de e-mail (geralmente Gmail).

Mas algumas acho mais produtivas instaladas localmente, que é o caso do Microsoft Teams.

Deixe um comentário

O seu endereço de e-mail não será publicado.

pt_BRPortuguese
%d blogueiros gostam disto: