Bom dia e Bom Ano Novo.
Espero que as vossas festas tenham sido felizes, na companhia dos vossos e chegamos a mais um ano novo!! No post de hoje iremos voltar falar em sidecars/auxiliares de programação, que tanta ajuda nos dão.
Se há algo que nos une enquanto devs/devops, é o eterno dilema de escrever código eficiente, limpo e, acima de tudo, compreensível. Quem nunca olhou para uma função antiga e pensou: “Quem raio escreveu isto?” Só para depois entender que fomos nós mesmos há dois meses? Pois bem, no primeiro post do ano aqui estou para vos apresentar o OpenHands, uma ferramenta que pode mudar por completo a nossa relação com o código – e, claro, preservar um pouco da nossa sanidade mental.
O OpenHands (anteriormente conhecido como OpenDevin) é um projeto que junta duas coisas que adoramos: a inteligência artificial e a ambição de melhorar a forma como programamos. Neste post iremos explorar juntos como esta ferramenta funciona, o que nos pode oferecer e porque é que a queremos na nossa caixa de ferramentas já ontem.
Antes de Mais, O Que é o OpenHands?
O OpenHands é um projeto que utiliza inteligência artificial para nos ajudar a escrever código de qualidade superior. E não estou a falar apenas de corrigir um ou outro erro de sintaxe ou de sugerir nomes de variáveis mais elegantes (embora também o faça!).
O objetivo é oferecer um verdadeiro “parceiro de coding” que compreenda o contexto do que estamos a fazer e sugira melhorias, otimize processos e até mesmo explique o que determinada secção de código faz – ideal para quando pegamos no trabalho de outros ou quando queremos deixar o nosso legado mais claro.
Aliás, para quem já trabalhou em equipa, sabe o quão importante é a clareza no código. OpenHands não só ajuda a evitar conflitos de interpretação como também nos dá uma chance de impressionar os colegas com um código digno de olhos humanos.
De OpenDevin a OpenHands: Porquê a Mudança?
Quando este projeto começou como OpenDevin, o foco era quase exclusivamente no apoio ao desenvolvimento (de dev para dev, se prefeirem). Mas à medida que o projeto cresceu, tornou-se claro que o alcance era muito maior do que apenas isso. Não se trata apenas de escrever linhas de código; trata-se de facilitar todo o processo criativo e técnico envolvido.
O novo nome, OpenHands, reflete melhor o espírito de colaboração e acessibilidade do projeto. É como se se apresentasse: “Estamos aqui para te dar uma mão – ou duas!” Porque, convenhamos, quem nunca desejou ter mais umas mãos extra a meio de um sprint, quando a data de entrega do Jira card está à porta?
Como o OpenHands Pode Ajudar-nos
- Sugestões e Melhoramentos de Código em Tempo Real
A funcionalidade mais óbvia (e talvez para mim a mais empolgante) é a capacidade de analisar o que estamos a escrever e sugerir melhorias. Vamos imaginar que estamos a criar uma API. O OpenHands consegue sugerir uma forma mais eficiente de estruturar as chamadas, identificar redundâncias ou até propor uma lógica mais robusta para as validações.Além disso, as sugestões não vêm em modo bombardeamento assim-porque-é-assim-que-deve-de-ser. São apresentadas de forma amigável, como se estivéssemos a receber dicas de um mentor mais experiente que quer mesmo ajudar. - Documentação Automática
Agora um pouco de honestidade: escrever documentação é das tarefas mais ingratas no desenvolvimento de software. É aborrecido, parece sempre secundário e, no final, raramente alguém a lê.
Mas todos sabemos que é crucial. O OpenHands consegue gerar documentação automaticamente, baseada no código que estamos a escrever. Queremos uma explicação para uma função específica? Basta pedir, e o OpenHands cria uma descrição clara e concisa. - Explicação de Código
Um dos maiores pesadelos de qualquer dev é pegar em código legacy. Entre linhas de lógica obscura e comentários que dizem absolutamente nada – se sequer existirem -, estamos por nossa conta. O OpenHands consegue ler o código, interpretá-lo e dar-nos um resumo claro do que está a acontecer. Para mim está a dois passos de ser mágico. - Refatoração Automática
“O meu código funciona, mas será que é bom?” Quem nunca fez esta pergunta? O OpenHands dá-nos sugestões concretas para melhorar a estrutura e a legibilidade do código sem alterar o comportamento. É como ter um mentor à disposição 24/7. - Apoio Multilinguagem
Já repararam como é irritante saltar entre linguagens e sintaxes? Com o OpenHands, não temos de nos preocupar. Ele reconhece e adapta-se automaticamente ao ambiente, seja Python, JavaScript, C++, ou outra linguagem. É literalmente como ter uma mão amiga que fala todas as línguas que precisamos. Inclui ferramentas de devop automation como terraform, ansible ou mesmo puppet. - Ensinar-nos Coisas Novas
Para além de ajudar na prática, o OpenHands é também uma ferramenta de aprendizagem. Ele não só corrige erros como explica por que motivo a alternativa é melhor. Isto é fantástico para quem está a aprender ou quer aprofundar o conhecimento. E não é para isso que estamos afinal cá?
Por Que É Que o OpenHands é Diferente?
Já existem ferramentas que ajudam na programação, como os famosos IDEs com funcionalidades de autocomplete ou até assistentes como o Copilot da GitHub. O que diferencia o OpenHands é o facto de ser orientado para a colaboração e melhoria contínua. Em vez de apenas sugerir pedaços de código, ele olha para o projeto como um todo, ajudando a alinhar a nossa visão com as melhores práticas da indústria e melhor que tudo pode ser selfhosted / on prime se a privacidade é um dos pré requisitos do projeto.
A somar a isto, o OpenHands é completamente open-source, o que significa que podemos adaptá-lo às nossas necessidades. Se achamos que a ferramenta podia fazer algo de forma diferente, basta arregaçar as mangas e pôr mãos à obra (com a ajuda dela própria, claro).
Como Começar com o OpenHands
Para experimentar o OpenHands, basta visitar o site oficial e seguir as instruções de instalação. É compatível com a maioria dos IDEs e editores de código, como Visual Studio Code, JetBrains e até mesmo o nosso querido Vi (para os puristas).
A configuração é simples, e há documentação para quem precisar de orientação. Com uma ferramenta que cria documentação para nós, o processo não podia ser mais intuitivo.
O Futuro com OpenHands
Imaginemos um mundo onde escrever código deixa de ser uma luta constante e passa a ser algo mais fluido, quase como se estivéssemos a dialogar com a máquina. Este produto está a abrir as portas para este futuro.
Mais do que uma ferramenta, é um parceiro que nos ajuda a ultrapassar desafios, poupar tempo e até aprender. Ao adotarmos soluções como esta, estamos também a contribuir para o crescimento de uma comunidade mais forte e inovadora, onde a tecnologia está verdadeiramente ao serviço da criatividade.
E chegamos ao fim do primeiro post do ano. Neste post apresentamos o OpenHands e vimos não é apenas uma ferramenta; é uma revolução na forma como encaramos o desenvolvimento de software. Seja para otimizar código, escrever documentação ou simplesmente nos ajudar a entender o que já fizemos, esta ferramenta tem algo a oferecer a todos.
Portanto, a questão não é “Será que precisamos disto?”, mas sim “Como é que ainda não começámos a usar?”. Vamos lá malta e dar as mãos ao futuro e ver até onde este caminho nos leva!
Até a próxima semana, e se notarem alguma coisa estranha, menos correcta o que teria a ganhar com uma correção, sabem onde me encontrar.
Um abraço
Nuno