Colaboradores de Gutenberg discutem as desvantagens de usar iframes para Meta Boxes
Publicados: 2017-11-04
Uma discussão animada e produtiva sobre o uso de iframes para meta boxes por Gutenberg está acontecendo no GitHub. Ontem, o desenvolvedor do WordPress Kevin Hoffman criou um problema intitulado “Os iframes são uma solução viável de longo prazo para meta caixas?”
Gutenberg 1.5 introduziu suporte inicial para meta boxes. Hoffman identificou vários problemas com iframes que surgiram à medida que os desenvolvedores começaram a testar a implementação atual da meta box. Ele fez alguns testes de desempenho que revelaram que o uso de iframes por Gutenberg triplica o número de solicitações de ativos, pois enfileira todos os ativos CSS e JS na janela pai, bem como em todos os iframes.

“De um modo geral, os iframes foram desencorajados no desenvolvimento web por muitos anos por razões que estão bem documentadas”, disse Hoffman, antes de citar uma série de problemas que os desenvolvedores de plugins já descobriram ao testar o suporte meta box do Gutenberg. “Esses problemas podem ser resolvidos sem a necessidade de modificação do tema ou plugin que gera a meta box? Temos que considerar que o código de terceiros que alimenta caixas meta por anos pode não ter o luxo de ser atualizado para ser compatível dentro de um iframe.”
A líder de design do Gutenberg, Tammie Lister, respondeu às preocupações de Hoffman, indicando que a implementação atual de meta boxes é simplesmente um experimento e não necessariamente o que chegaria ao WordPress 5.0:
É bom pensar um pouco que o que temos hoje para meta caixas em Gutenberg é um experimento, em muitos aspectos é um padrão de espera enquanto o projeto trabalha na direção a seguir. Ao dizer que é um que funciona 'por enquanto', mas não é o que enviaríamos.
Tudo o que foi dito acima, acho importante olhar para o que no futuro as metaboxes serão usadas. Quais são os casos (se houver) que não seriam convertidos em blocos? Todas as metaboxes precisam funcionar no celular? Existe mesmo uma interface alternativa que não exploramos? Aposto que existe. Neste momento, trata-se de olhar para essas possibilidades e seguir um caminho que funcione para o estado agora e para o estado futuro.
A apresentação desta implementação como um experimento que “funciona por enquanto” (mas não seria enviado) é uma surpresa depois que o Gutenberg 1.5 chegou com o anúncio de que “este lançamento inclui suporte a meta-boxes há muito esperado (precisa de testes!)”
Hoffman afirma que a abordagem do iframe nem funciona 'por enquanto', já que o problema foi aberto para citar várias maneiras importantes de quebrar. Se Gutenberg avançar com a abordagem atual, seria necessário que muitos plugins fossem modificados para serem compatíveis com o WordPress 5.0, o que Hoffman disse que anularia todo o propósito de suportar meta boxes herdadas.
“Até o momento, não vi nenhuma evidência que sugira que as meta-caixas continuarão trabalhando com Gutenberg”, disse Hoffman. “Se a resposta for não, devemos parar de fingir que o 5.0 será apenas mais um lançamento do WordPress e começar a ser honestos sobre quebrar a compatibilidade com versões anteriores.”
Edwin Cromley, um colaborador do projeto, disse que a equipe antecipa que certos temas e plugins serão quebrados e que não é possível acomodar todos os casos de uso possíveis. Ele admitiu que a solução iframe pode não atender aos objetivos do projeto. Em vez disso, ele defende a criação da melhor experiência para a grande maioria dos usuários.
No entanto, a abordagem atual afetaria negativamente muitos sites que usam o WordPress principalmente como um CMS com meta boxes. O principal committer do WordPress, Scott Taylor, expressou preocupação com os tipos de postagem personalizados, muitos dos quais não fazem uso da seção tradicional de “conteúdo” em favor apenas de meta boxes.
“Nesta iteração atual, o suporte a meta box é um complemento, quando na realidade de muitas pessoas, meta boxes SÃO a interface do usuário, a API, o mecanismo que eles usam para compor seu CMS”, disse Taylor. “iframes são o gulag.
“E estamos esquecendo os valores em que o WP foi construído para sempre: eu deveria ser capaz de atualizar para a versão mais recente do WP e não ter que reescrever nada. Eu tenho tantos projetos no WP que nunca mais vou tocar. Posso ter certeza de que alguns deles não vão quebrar descontroladamente com essa mudança?”
Hoffman defendeu a redução do escopo do projeto para se concentrar no componente do editor, uma opinião popular que muitos desenvolvedores de plugins compartilham e que foi ilustrada em detalhes no post de Yoast, propondo uma abordagem alternativa ao Gutenberg. Essa abordagem encena as alterações na tela de edição, dando aos desenvolvedores mais tempo para atualizar seus plugins, além de permitir que a equipe do Gutenberg encontre uma solução adequada para meta boxes.


“Acho que esse objetivo seria muito mais alcançável se Gutenberg se limitasse a revisar o editor em vez de assumir a página inteira”, disse Hoffman. “Então poderíamos deixar os ganchos existentes no lugar e as meta-caixas poderiam continuar a se comunicar umas com as outras como fazem agora. Além disso, o enfileiramento de ativos não seria um problema, pois funcionaria como funciona hoje.
“Estou de acordo com esse conceito apresentado pelo Yoast, que me parece que manteria muito do trabalho já feito enquanto reduzia o escopo do projeto para se concentrar no componente do editor.”
O engenheiro de Gutenberg, Riad Benguella, indicou que a equipe não está muito interessada em trabalhar nesse conceito.
“Reutilizar peças do Gutenberg para construir este conceito é relativamente factível, mas não é este o UX que queremos otimizar, queremos construir o melhor editor possível primeiro e disponibilizá-lo para pessoas sem problemas de compatibilidade com versões anteriores (instalações novas, sem metaboxes… )”, disse Benguela.
“Quando acharmos que a visão ideal de Gutenberg está pronta para ser lançada, teremos tempo para discutir estratégias de caminho de atualização, um conceito como este é uma opção para um caminho de atualização, mas definitivamente não como produto final. Outros caminhos de atualização também são possíveis.”
A comunidade de desenvolvedores do WordPress, no entanto, não é a favor de adiar essa discussão mais uma vez. Muitos estão ansiosos para finalmente responder à pergunta de como as meta-caixas se encaixam no contexto do editor Gutenberg para que saibam como se preparar. Dado os inúmeros problemas com a abordagem de iframes, renderizar metaboxes PHP legadas no novo editor exigirá mais experimentação e possivelmente uma solução alternativa.
“Por que dedicar milhares de horas ao desenvolvimento do editor ideal se ele não pode ser compatível com os sites existentes?” disse Hoffmann. “Se a primeira impressão é que ele quebra a interface do usuário da qual eles dependem, os usuários nunca experimentarão o editor ideal em primeiro lugar.”
“Acho que pode ser um erro adiar isso demais”, disse o core commiter do WordPress Aaron Jorbin. “Especialmente porque muitas organizações precisarão de pelo menos 1-2 trimestres para se preparar.”
Mark Kaplun sugere que a equipe do Gutenberg use um plug-in popular como um indicador para o sucesso dos experimentos de suporte a metabox atuais e futuros.
“Minha sugestão produtiva é não declarar meta boxes prontas, desde que o Yoast SEO não funcione corretamente nele”, disse Kaplun. “É um pouco complexo em termos de interações e é instalado em muitos sites. Se Gutenberg não puder trabalhar com isso, provavelmente ninguém vai usá-lo.”
Greg Schoppe, que testou e escreveu extensivamente sobre o desenvolvimento contínuo de Gutenberg, juntou-se à conversa para defender também a abordagem alternativa do Yoast ao projeto.
“Eu apoio muito a visão do Yoast sobre Gutenberg”, disse Schoppe. “Não está claro para mim como 'atualizar o editor visual' foi reinterpretado como 'substituir toda a interface de pós-edição' pela equipe de Gutenberg, mas parece diretamente em desacordo com o chamado 'Navio de Teseu'.
“Nesse caso, a falta de direção clara e suporte para os fluxos de trabalho padrão existentes está prejudicando ativamente os desenvolvedores agora. Como posso avançar na construção de um projeto, sem um conjunto confiável de ganchos e ferramentas em que posso confiar? É inconcebível pensar que um projeto de software tão grande mudaria completamente o fluxo de trabalho padrão para desenvolvedores em uma única atualização. e é insano que essas conversas estejam acontecendo agora, em novembro, quando o plano é ter uma fusão aprovada no início do ano.”
A discussão sobre a abordagem de iframes para meta boxes foi aberta ontem ainda é relativamente nova, mas até agora as respostas da equipe de Gutenberg falharam em abordar adequadamente as preocupações da comunidade de desenvolvedores neste tópico. Encontrar uma abordagem para meta boxes que preserve os poderosos recursos de CMS do WordPress, sem alienar usuários e desenvolvedores, é um dos maiores desafios da equipe do Gutenberg. Eles ainda pretendem produzir uma proposta de fusão no início do próximo ano, mas com meta boxes ainda em fase de experimentação, o cronograma previsto da equipe continua a colocar o projeto em desacordo com a comunidade de desenvolvedores do WordPress.
