Diego Rubin

Fullstack Developer

Entre em contato

Meu Ambiente de Desenvolvimento

Ereader icon

Neste post irei falar sobre as ferramentas que utilizo no dia a dia como desenvolvedor. Minha intenção é mostrar ferramentas para pessoas que desconhecem e se houver alguém que possa dar alguma dica, por favor peço que o faça.

Sistema operacional

O sistema operacional que atualmente utilizo e que utilizei durante muitos anos é o Slackware Linux. Você podem estar pensando "você está louco" como muitos pensam quando este sistema é citado, porém utilizo este SO já fazem alguns anos, já utilizei diversos outros e sempre acabo voltando a utiliza-lo. Eu acho que ele tem uma grande vantagem em relação a outros, principalmente para desenvolvedores, as coisas estão sempre no mesmo lugar por mais que as versões mudem. Em outros SOs existem "gambiarras" para facilitar a vida do usuário, coisa que não existe no Slackware. Enfatizando, isto é muito bom para desenvolvedores. Além disso, para quem gosta da área e quer aprender mais sobre sistemas operacionais e Linux o Slackware é uma boa. O ambiente gráfico que estou utilizando atualmente é o Gnome 3, já utilizei openbox, fluxbox, kde, xfce e enlightenment, mas sempre acabo voltando pro Gnome também. Eu acho que ele é mais limpo e rápido que o KDE(minha opinião, pelo amor de Deus, não estou tentando arranjar briga) e a versão 3 tem me agradado bastante. E acrescentando mais um detalhe, utilizei o Unity do Ubuntu 11.04 e realmente não gostei, todos os outros gerenciadores de janelas que utilizei poderia voltar a utiliza-los sem problemas, mas o Unity, sem condições.

Editor

As linguagens que mais utilizo é C/C++, Ruby e Python. Apesar que no meu atual trabalho estou utilizando Javascript e Java. O editor que utilizo, com exceção de quando programo em Java, é o gVim. Minha politica é que quanto menos eu colocar a mão no mouse melhor. A vezes acho que eu me perco muito com um monte de áreas clicáveis na tela. Os plugins que utilizo no gVim possuem recurso de autocomplete, árvore de diretórios, syntax highlight, split de janelas e por ai vai. Meus arquivos de configuração do Vim podem ser obtidos em http://github.com/diegorubin/dotfiles. Para o recurso de Find in Files eu utilizo dois scripts que criei em Perl. Para mim eles estão sendo muito uteis e se você quiser utiliza-lo, eles podem ser obtidos em http://github.com/diegorubin/FrontFile. A instalação é feita executando o script install que está no repositório. Existem exemplo no arquivo README e também possuem man pages. As dependências que eles possuem podem ser instaladas através do CPAN. Para debugar aplicações eu também não utilizo nenhuma ferramenta gráfica. Em c/c++ me dou muito bem o gdb e em ruby o ruby-debug e o irb já é o suficiente.

Emulador de Terminal e Shell

Todo desenvolvedor precisa de um bom shell, Eu utilizo o Bash, o padrão da maioria das distribuições Linux. O meu bashrc, arquivo de customização do Bash, pode ser encontrado no mesmo repositório onde estão os arquivos de configuração do Vim. O emulador de terminal que uso é o Terminator, que pode ser encontrado em http://www.tenshu.net/terminator. Ele possou funções para split de janelas que é ótimo, eu gosto muito deste recurso pois assim posso ver vários logs na mesma de tela de forma fácil e organizada. Além disso possui funções para agrupar as janelas e executar o mesmo comando em vários terminais, recurso muito bom quando você precisa fazer deploy em mais de um computador.

Controle de versão

Em todos os meus projetos utilizo o git como sistema de controle de versão. Desculpe a turma do SVN ou até mesmo o pessoal do Mercurial(que já utilizei), mas o git é muito melhor, pelo menos para mim é. Além disso existe o github que também cumpre o seu objetivo maravilhosamente bem. Eu não utilizo nenhuma interface ou front-end para trabalhar com o git, gosto e me sinto bem mesmo utilizando os comandos pelo terminal. Já cheguei a experimentar algumas interfaces como o git-cola, mas prefiro mesmo ficar com o terminal.

Player de Áudio

Como todo bom desenvolvedor, não consigo me concentrar sem estar ouvindo alguma música ou podcast e o player que venho utilizando já faz algum tempo é o Music Player Daemon - MPD. Utilizo dois clientes, o MPC que é uma espécie de cli para o MPD e com ele configuro os atalhos do meu teclado, e o NCMPC que fornece um interface em ncurses e consigo gerenciar facilmente playlists. Mais uma vez pensando em não ter que tocar um mouse, com esse player e esses clientes consigo trocar de músicas dentro de uma janela do Vim, e isso para mim é muito bom.

Resumindo

Essas são as ferramentas que utilizo no meu dia-a-dia como desenvolvedor, de vez em quando tenho abrir mão de algumas, como disse quando programo em Java na empresa onde trabalho utilizo o Eclipse ou quando preciso mudar alguma interface com Qt utilizo o QtCreator, mas quando mais mãos conseguirem ficar no teclado, para mim melhor.

Se você tiver alguma dica para mim, por favor, deixe nos comentários, assim poderemos trocar conhecimentos e evoluir mais.

Novo Comentário

Comentários

"Minha politica é que quanto menos eu colocar a mão no mouse melhor.", "Mais uma vez pensando em não ter que tocar um mouse, ".

Se não experimentou ainda, deveria com certeza experimentar os ditos tiling window managers. Na minha opinião são os melhores para se trabalhar sem mouse. Exemplos: Xmonad, Awesome, DWM e porque não o Ratpoison =)

Minha produtividade cresceu absurdamente depois que passei a utilizar o xmonad, simples, minimalista, produtivo e mouseless.

O Slackware é d+, boa parte do que aprendi de Linux devo a ele, usei por um bom tempo também, só parei pra usar o ArchLinux, por motivos de produtividade (pacman é um software incrível), porém o Slackware é mais estável.

Pra terminal utilizo o urxvt, que junto com o xmonad funciona de forma parecida com o terminator, em servidores utilizo o tmux para fazer o split.

Uma das coisas legais do urxvt é o fato de funcionar como cliente servidor, assim novas janelas abrem bem mais rápido, tem suporte para plugins bem legais também.

Uma dica que dou é o weechat-curses + o bitlbee. O weechat é um cliente de irc em curses, o bitlbee é uma forma de se conectar aos instants messagers via irc. Os dois juntos vc tem um leve e poderoso mensageiro instantâneo no seu terminal =).

Dos ambientes de trabalho, o seu foi o que eu mais gostei/identifiquei. Sou usuário de vim também, de diferenças, prefiro o mercurial e o meu player de áudio é o moc.

Fernando, valeu ai pelas dicas, principalmente sobre o weechat. Estou tento que utilizar bastante irc agora e ainda não tinha chegado a procurar nada em relação a isso, estava usando o xchat que é muito ruim.

Quando aos gerenciadores de janelas que você citou, eu chegoi a instalar o Awesome no computador do serviço, mas acabei esquecendo dele por causa da correria. Vou dar uma olhada nesses que você citou.

Também vou dar uma olhada no urxvt.

Valeu mesmo pelas dicas, só por elas já achei que compensou eu ter escrito o post.

Meu brother favoritei seu blog mas conserta aí esse seu "compensou" da resposta.

[hehehe, valeu ai Bruno, está arrumado.