Artigos

My Stack — Paulo Moura

Neste post irei apresentar algumas ferramentas que uso no dia a dia, quando estou trabalhando com desenvolvimento.

Linguagens de programação

Durante muito tempo, trabalhamos em projetos com apenas uma linguagem. Com a popularização de arquiteturas que usam microserviços, esse cenário mudou um pouco. Agora podemos utilizar várias linguagens, em vários módulos que se comunicam entre si. Logo vemos a necessidade de conhecer e estudar outras plataformas, além daquela a qual dominamos.

Comecei programando em PHP. Apesar de, hoje, ter me distanciado da comunidade, de vez em quando, pego algum projeto em PHP. Mas se, por um acaso, eu tivesse que criar um setup de um projeto PHP do zero, eu escolheria o Laravel, devido sua simplicidade e o fato de possuir uma filosofia baseada no Rails.

Não considero java a melhor linguagem que existe. Mas foi a linguagem que me ensinou orientação a objetos e muitas outras coisas. Trabalho com java quando necessário, mas não criaria um projeto inicial usando a plataforma, devido o overhead que ela gera. No entanto, a linguagem vem melhorando nos últimos anos e, se eu fosse obrigado a criar um setup inicial em java eu escolheria utilizar a suite fornecida pelo Spring.

Trabalho com javascript desde o início da minha carreira. Sempre gostei muito de codar em na linguagem. Hoje, javascript é extremamente popular e obteve melhorias significativas em sua api e semântica. Com o advento do node.js, tornou-se possível rodar javascript no servidor de uma forma menos burocrática. E muitos devs compraram a ideia de javascript isomórfico. No entanto, eu nunca curti uma stack completa feita em javascript. Do meu ponto de vista, a linguagem não é a melhor opção quando se precisa modelar domínios complexos.

Sendo assim, eu não uso javascript do lado do servidor. No front-end, estou deixando de usar jquery e passando a utilizar o vanillaJs que é o javascript puro. Uma dependência a menos nos meus projetos. Quando preciso criar componentes mais complexo, utilizo React. No entanto, considero react muito verboso e estou em busca de outras soluções. 

Quando pretendo criar um setup inicial de um projeto web, minha escolha é certa: Rails. Ainda considero o framework, a melhor ferramenta para desenvolvimento web da atualidade. A partir do rails 5.1, consigo integrar facilmente libs javascript como react, angular e vue usando a gem webpacker. Para quem já utilizava webpack, é uma mão na roda.

Ruby é a melhor linguagem com a qual eu já trabalhei. Fornecendo produtividade sem sacrificar a elegância. A linguagem não é perfeita, mas nenhuma é. No entanto, ruby e rails me proporcionaram muito mais produtividade e satisfação do que as demais plataformas.

Banco de dados

Para banco relacional é PostgreSQL na veia. Não penso duas vezes. Existem inúmeras características que me fazem escolher o postgre, mas a que faz meus olhos brilharem é a sua Full-text engine.

Para bancos não relacionais, fica a critério do problema a ser solucionado.

Editores de texto

Não me apego a editores de texto. Estava usando o Atom, apesar de ser bem pesado, eu curti. Hoje estou usando o VS Code da Microsoft e estou gostando bastante, principalmente de sua ferramenta de debug.

Cloud

Uso heroku para projetos menores e AWS para projetos mais robustos. Mas estou testando o Google Cloud também e não me parece ser tão diferente do que a AWS oferece.

Uso docker para criar ambientes. Trabalho em projetos com tecnologias bem diferentes entre si, então, para não encher meu hd de libs e perder o controle das dependências, configuro os ambientes em containers docker. Sempre que possível, procuro fazer isso nos servidores também.

Sistema Operacional

Uso Mac Os X para trabalhar. Para mim é o SO mais dev friendly que existe. No entanto, não é tão acessível. Também uso ubuntu, tanto no desktop quanto nos servidores. Acho o ubuntu uma distro bem tranquila de administrar. Windows só pra jogar um game mesmo.

É isso aí. Essa é minha stack. Qual a sua?

Publicado originalmente em https://medium.com/@paulociecomp/my-stack-paulo-moura-50115df6fd28

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *