Artigos da Semana

Docker em apuros, UX de cabeça para baixo e a filosofia por trás do código

Walter Gandarella • 02 de maio de 2025

Olá, malta! Cá estamos para mais uma ronda de artigos interessantes que gostava de partilhar convosco. Esta semana temos uma seleção que abordam desde filosofia de design de software até à forma como a AI está a transformar completamente o mundo do UX. Vamos a isto!

A filosofia do design de software

John Ousterhout, professor de Stanford, explica por que o design de software bem pensado é mais importante do que nunca num contexto em que as ferramentas de AI estão a transformar as práticas de codificação e os fluxos de trabalho dos programadores. O artigo aborda conceitos como a profundidade dos módulos, camadas que adicionam complexidade ou a mantêm sob controlo, e ocultação de informação - todas ferramentas pragmáticas para utilizar na estruturação de sistemas complexos.

Nunca é demais relembrar a importância dos fundamentos. Com a explosão das ferramentas de AI para codificação, é tentador pensar que o design de software se tornou menos relevante. No entanto, é precisamente o contrário! À medida que geramos código mais rapidamente, a arquitetura e a filosofia por trás dele tornam-se ainda mais cruciais. Este artigo e o livro deviam ser leitura obrigatória para qualquer programador que queira construir sistemas que resistam ao teste do tempo, independentemente da ferramenta que use para escrever o código.

Fonte original

A AI está a virar o UX de cabeça para baixo: como manter o teu emprego em UX e porque a Figma é um Titanic

A AI está a revolucionar o campo de UX, e ferramentas de design tradicionais como a Figma podem não sobreviver a esta mudança. À medida que os sistemas baseados em AI reduzem a necessidade de interfaces tradicionais, o papel dos designers deve evoluir para além dos pixéis e wireframes. O artigo discute como a revolução da AI está a criar uma mudança fundamental no design de experiência do utilizador, onde a interação por linguagem natural substitui muitas interfaces visuais tradicionais.

Confesso que esta análise me fez pensar muito sobre o futuro da área. Tenho colegas designers preocupados com o impacto da AI no seu trabalho, mas a verdade é que toda a profissão está a ser redefinida. O valor não estará tanto na produção de wireframes bonitos, mas sim na capacidade de arquitetar experiências que funcionem bem com a AI como intermediária. É um desafio enorme, mas também uma oportunidade para os designers que estiverem dispostos a adaptar-se e a aprender novas formas de pensar sobre a experiência do utilizador.

Fonte original

Protocolo MCP: um novo bloco de construção para ferramentas de desenvolvimento com AI

O Model Context Protocol (MCP), que amplia as capacidades de AI dos ambientes de desenvolvimento integrado (IDEs), está a ganhar popularidade rapidamente. O artigo explora por que isso está a acontecer e por que os programadores devem prestar atenção a esta tecnologia. O MCP permite que os IDEs comuniquem com modelos de linguagem grandes (LLMs) de forma padronizada, criando uma experiência de desenvolvimento assistida por AI mais poderosa e consistente.

Este protocolo é um daqueles desenvolvimentos que podem parecer técnicos e aborrecidos à primeira vista, mas que têm potencial para mudar completamente a forma como trabalhamos. O MCP é para os IDEs o que o HTTP foi para a web - um padrão que permite uma comunicação fluida entre diferentes ferramentas. Imaginem poder mudar de IDE ou de modelo de AI sem perder funcionalidades! Estou entusiasmado para ver como isto vai evoluir e que tipo de ferramentas de desenvolvimento vão surgir com base neste protocolo. Eu até já ytilizo alguns MCPs no meu Claude e na minha IDE Webstorm com Windsurf e tenho tido ótimos resultados.

Fonte original

Todos os programadores precisam de fazer self-hosting

O artigo argumenta a favor dos benefícios de autoalojar serviços e aplicações em vez de depender exclusivamente de soluções SaaS. Defende que o self-hosting pode poupar dinheiro, proporcionar um maior controlo sobre os dados, desenvolver competências valorizáveis e aumentar a compreensão dos sistemas. No entanto, o autor também adverte que não é necessário autoalojar tudo e que não se deve fazer self-hosting de startups sem experiência adequada.

Tenho uma relação de amor-ódio com o self-hosting. Por um lado, já aprendi imenso ao configurar e manter os meus próprios servidores para projetos pessoais. Por outro lado, já perdi noites de sono a resolver problemas de configuração que poderiam ter sido evitados com um serviço SaaS. Acho que a questão não é tanto se devemos ou não fazer self-hosting, mas sim quando faz sentido. Para aprendizagem e projetos pessoais, é espetacular. Para serviços críticos de negócio? Nem por isso. O importante é experimentar e perceber onde está o equilíbrio para cada um.

Fonte original

O que é a engenharia de crescimento?

Uma análise aprofundada do campo da engenharia de crescimento, que frequentemente se posiciona entre a engenharia de produto e o marketing. O artigo discute como esta disciplina combina elementos de engenharia, análise de dados, marketing e design de produto para impulsionar o crescimento de utilizadores e receitas. Inclui insights do ex-chefe de engenharia de crescimento da MasterClass, Alexey Komissarouk.

Esta área tem-me fascinado cada vez mais. A engenharia de crescimento é aquele ponto doce onde código e negócio se encontram. Como programador, é fácil ficar absorvido em problemas técnicos puros, mas a verdade é que precisamos de criar coisas que os utilizadores realmente queiram e possam encontrar. O que adoro nesta abordagem é que ela traz métodos científicos para o marketing - testar hipóteses, medir resultados, iterar com base em dados. Se estás a construir um produto e queres que ele tenha sucesso, definitivamente vale a pena entender estes conceitos!

Fonte original

Por que construir aplicações móveis é muito mais difícil do que parece?

O desenvolvimento móvel parece simples visto de fora, mas é uma das áreas mais exigentes na engenharia de software. Com recursos limitados, regras estritas das plataformas e expectativas elevadas dos utilizadores, construir aplicações móveis de qualidade vai muito além de apenas escrever código para interfaces de utilizador. O artigo detalha os muitos desafios técnicos e não técnicos que os programadores móveis enfrentam.

Este artigo é ouro puro para quem, como eu, já tentou explicar a clientes porque uma app «simples» não fica pronta em duas semanas. Desenvolver para mobile é como tentar dançar um tango perfeito com as limitações dos dispositivos, as regras das lojas de aplicações, e as expectativas cada vez mais altas dos utilizadores. Lembro-me de um projeto onde gastámos mais tempo a otimizar o consumo de bateria e a lidar com estados de conectividade do que a implementar as funcionalidades em si. É uma realidade que muitas vezes não é devidamente valorizada, mas que faz toda a diferença na experiência final.

Fonte original

Desenvolvimento móvel multiplataforma com Expo

O Expo tornou-se silenciosamente uma das ferramentas mais populares para desenvolvimento multiplataforma. O artigo explora porque isto aconteceu e como o Expo funciona, com uma análise aprofundada da equipa de engenharia do Expo. Aborda como esta ferramenta simplifica significativamente o desenvolvimento em React Native, permitindo criar aplicações para iOS e Android a partir de uma única base de código.

Como alguém que passou pelo inferno de configurar ambiente React Native do zero, posso dizer que o Expo é um salva-vidas. É incrível como consegue abstrair tanta complexidade sem sacrificar (demasiado) controlo. Tenho usado o Expo nos meus projetos pessoais e a diferença na produtividade é abismal. Sim, há limitações quando precisamos de funcionalidades nativas muito específicas, mas para a maioria das aplicações, funciona perfeitamente bem. E com as recentes melhorias no suporte a módulos nativos, está a ficar cada vez mais difícil encontrar razões para não o usar.

Fonte original

Saí do Spotify. O que aconteceu a seguir?

O autor descreve sua jornada após abandonar o Spotify, experimentando diferentes alternativas até encontrar a solução perfeita para suas necessidades de streaming de música. Depois de testar várias opções, como Apple Music e YouTube Music, acabou por optar pelo Jellyfin, um servidor de media de código aberto que lhe permitiu criar sua própria biblioteca de música com total controlo sobre os dados e a experiência de audição.

Esta história ressoa comigo profundamente. Também tenho questionado cada vez mais a dependência de serviços de streaming e a quantidade de subscrições que acabamos por acumular. A ideia de recuperar o controlo sobre a nossa própria biblioteca de media é tentadora, especialmente quando pensamos em como catálogos digitais podem simplesmente desaparecer da noite para o dia por decisões corporativas. Ainda não dei o passo de abandonar completamente os serviços de streaming, mas artigos como este inspiram-me a considerar alternativas mais independentes. O Jellyfin parece ser uma excelente opção para quem está disposto a investir um pouco de tempo na configuração inicial.

Fonte original

O fim do Docker? As razões por trás da mudança de runtimes pelos programadores

O Docker liderou a revolução dos contentores, mas os tempos mudaram. Em 2025, os programadores estão a abraçar alternativas mais rápidas, leves e seguras. Enquanto o Docker mantém alguma popularidade, cada vez mais empresas estão a substituí-lo por soluções mais modulares e nativas do Kubernetes. O artigo analisa os problemas do Docker no panorama atual, incluindo questões de licenciamento, desempenho em Windows e macOS, problemas de segurança com o daemon root, abordagem monolítica e receios de dependência de um único fornecedor. São apresentadas várias alternativas como Podman, containerd, CRI-O, Lima e Finch.

Confesso que ando a acompanhar esta «saga Docker» há algum tempo e este artigo acertou em cheio. O Docker foi aquela ferramenta revolucionária que nos fez pensar «como é que vivíamos sem isto antes?», mas a realidade é que o ecossistema evoluiu e as suas fraquezas tornaram-se mais evidentes. No meu caso, as dores de cabeça com o Docker Desktop quando tenho de utilizar o Windows levaram-me a experimentar o Finch, e a diferença foi como passar de um Fiat 500 para um Ferrari (sem ofensa aos fãs do Fiat!). A mudança no licenciamento foi mesmo a cereja no topo do bolo que me fez repensar a dependência desta ferramenta. Dito isto, ainda uso Docker para desenvolvimento local em projetos simples e em Linux - não há necessidade de complicar quando o simples funciona. Como diz o artigo, não é o fim do Docker, mas sim a maturação do ecossistema que ele próprio ajudou a criar. E isso só pode ser bom para todos nós.

Fonte original


E assim chegamos ao fim de mais uma edição do nosso apanhado de artigos. Se há algo que se destaca aqui, é a constante evolução e transformação no mundo da tecnologia. Desde a forma como desenhamos software até à maneira como construímos e executamos aplicações em contentores, tudo está em fluxo constante.

A inteligência artificial continua a redefinir papéis e práticas que considerávamos estabelecidos, enquanto princípios fundamentais de design de software permanecem tão relevantes como sempre.

Até à próxima edição, continuem curiosos e não tenham medo de experimentar novas abordagens!


Últimos artigos relacionados