
PTC para software: tradução por IA premium, consistente em seu site e produto
Você desenvolve software ou aplicativos móveis junto com o seu site WordPress? A PTC, o mecanismo de tradução por IA do WPML, agora também os traduz.
A programação funcional é um tema em alta entre os desenvolvedores hoje em dia, e não sem motivo. A versão 4.5 do WPML foi um projeto de grande escala que introduziu a opção de traduzir o seu site automaticamente. Para nós, também foi o momento certo para fazer a mudança para a programação funcional. Aqui está o que aprendemos no processo.
Você provavelmente já ouviu falar que a programação funcional torna o seu código mais legível e mais fácil de testar. Mas para compreender totalmente a programação funcional, é importante entender os conceitos relacionados a ela.
Para começar, a programação funcional é um paradigma de programação em que a ênfase está em usar funções para construir software e compor funções juntas para criar funções mais complexas. A programação funcional torna o código de natureza mais declarativa. Você expressa o que quer, em vez de ter uma sequência de instruções que atualizam o estado do programa.
É importante observar as funções que ela usa – especificamente as funções puras. As funções puras recebem dados e retornam dados, mas não têm nenhum outro efeito colateral. Isso torna as funções muito fáceis de testar, porque se você fornecer os mesmos parâmetros, obterá o mesmo resultado.
De forma simples, na programação funcional, a saída depende da entrada.
O WPML é um projeto grande e complexo. Até recentemente, usávamos a programação orientada a objetos (POO) para tentar gerenciar essa complexidade. Um dos principais desafios é escrever código de teste (testes unitários) para todos os nossos projetos. Ao escrever um código testável, precisamos garantir que nenhuma alteração que fizermos quebre o código existente.
Os testes unitários de código POO só podem levar você até certo ponto. As dependências de código precisam ser simuladas com mocks para que as classes possam ser testadas de forma independente. Como resultado, os testes acabam sendo grandes e complexos.
Diz-se que o foco principal da programação funcional é “O que resolver”. Em contraste, a programação orientada a objetos adota uma abordagem de “Como resolver”. Com isso em mente, parecia que a programação funcional poderia nos ajudar a superar alguns dos nossos desafios.
Quando falamos sobre programação funcional, o PHP não é a primeira linguagem que vem à mente – embora ele permita que introduzamos um estilo funcional. Por exemplo, os hooks e filtros que permitem que o WordPress seja estendido usam funções para substituir a funcionalidade do WordPress.
Infelizmente, não há uma biblioteca padrão para usar um paradigma mais funcional no PHP. Analisamos muitas bibliotecas, mas nenhuma tinha exatamente o que precisávamos para escrever um código expressivo em um estilo funcional. Então, em vez disso, decidimos escrever a nossa própria biblioteca. Buscamos inspiração em diferentes fontes, mas muitas delas de bibliotecas Javascript, que consideramos mais maduras.
A programação funcional tem uma abordagem diferente de outros paradigmas, então mudar para um paradigma de programação funcional é, na verdade, um grande passo. Isso exige que você mude a maneira como pensa sobre escrever código e resolver problemas. É preciso muita prática para escrever um código expressivo que seja claro e conciso.
Com certeza achamos que sim. A programação funcional tem uma série de recursos que funcionam a nosso favor:
Mas, é claro, nada é perfeito. Embora a programação funcional seja mais concisa e previsível, ela tem desvantagens, especialmente se você não estiver familiarizado com ela:
Nem é preciso dizer que a popularidade da programação funcional é mais do que apenas uma tendência. Devido à sua natureza, a programação funcional é ótima para tarefas como aprendizado de máquina e análise de dados. Como resultado, empresas de todos os tamanhos começaram a demonstrar interesse ou até mesmo a iniciar a sua transição para a programação funcional. Isso não significa que você deva dizer adeus à orientação a objetos para sempre, mas vale a pena experimentar a programação funcional. Mesmo que você acabe nunca a usando, é provável que você eleve o seu nível como desenvolvedor.
Se você estiver interessado em aprender mais, sugerimos começar com a série de posts de blog Composing Software.
Quando você estiver pronto para se aprofundar, dê uma olhada no repositório do nosso projeto FP.
Estamos sempre em busca de desenvolvedores excepcionais para se juntarem à nossa equipe. Se isso soa como você, não espere mais – inscreva-se hoje mesmo.