Como obter a máxima eficiência com Magento 2. Entrevista com Max Pronko

Publicados: 2017-01-17

max-ava

Max Pronko é um daqueles gurus do Magento que um novato deve seguir. Ele é um especialista em Magento e orador público, um desenvolvedor certificado Magento e um popular blogueiro Magento 2.

Com 10 anos de experiência em desenvolvimento de software e consultoria em Magento, Max projetou e implementou com sucesso produtos de alta qualidade de médio a grande porte.

Siga Max no Twitter.

Recentemente, Max esteve no Meet Magento Hungria e apresentou casos de uso reais de otimização de desempenho na palestra do Magento 2. Nesse sentido, gostaríamos de iniciar nossa entrevista com algumas perguntas diretamente relacionadas a esta apresentação.

Casos de uso reais de otimização de desempenho no magento 2 de Max Pronko

Parte 1: Desafios comuns das extensões do Magento

Quase todos os comerciantes do Magento 2 usam extensões de terceiros que aprimoram muito a funcionalidade das plataformas padrão, por um lado, mas, por outro, influenciam negativamente o fluxo de trabalho de desempenho.

Natalie: No geral, como você pode avaliar a qualidade do código das extensões 3D e como elas podem influenciar as cargas do servidor?

Max: Obrigado pela oportunidade de falar sobre Magento 2, Natalie. Acompanho seu blog há mais de um ano e cada vez que o visito, encontro alguns artigos interessantes. Obrigado por isso.

Como você deve saber, gosto de revisar código devido a vários motivos:

  • Primeiro, ganho experiência e observo técnicas interessantes sobre como converter requisitos de negócios em recursos totalmente funcionais e de alta qualidade. Especialmente quando se trata de Magento 2.
  • Em segundo lugar, me ajuda a entender o quão bom é o compartilhamento de conhecimento no ecossistema Magento.

95% das extensões de terceiros exigem extensa revisão de código e orientação sobre como melhorar o código.

Venho fazendo revisão de código de extensões de terceiros há cerca de 2 anos. Infelizmente, não posso dizer que estou satisfeito com os resultados que obtive: 95% das extensões de terceiros exigem extensa revisão de código e orientação para melhorá-lo. Deixe-me ficar super quieto sobre os padrões de codificação.

Tenho problemas com o desempenho de todas as páginas do site, mesmo que uma extensão crie e abranja apenas uma seleção de páginas com alguma funcionalidade específica. Por exemplo, incluindo um bloco não armazenável em cache no arquivo de configuração de layout padrão. O Magento desabilita o cache de página automaticamente para todas as páginas.

Outro exemplo é usar operações de back-end demoradas sem armazenar resultados de execução em uma variável de classe. Pode reduzir drasticamente o carregamento da primeira página.

Eu tive a chance de revisar cerca de 60 extensões, incluindo as pagas e gratuitas, então minha classificação é baseada nesse número. Com certeza, existem as extensões que eu recomendo usar.

Natalie: Quais são os problemas de otimização de código mais frequentes na sua opinião?

Eu nunca vi o uso de classes Proxy em extensões de terceiros. No entanto, pode reduzir o tempo de inicialização do objeto recursivo.

Max: Normalmente as extensões são criadas em uma rodada sem otimização de desempenho que posso chamar de “Implement and Deliver”. Uma segunda rodada raramente vem, e o código não é otimizado. Por exemplo, nunca vi o uso de classes Proxy em extensões de terceiros . No entanto, pode reduzir o tempo de inicialização do objeto recursivo.

Natalie: Que conselho de otimização você pode dar aos desenvolvedores iniciantes, que escrevem suas primeiras extensões para o Magento 2?

Max: É uma ótima ideia testar suas extensões com o Magento 2 fora do ambiente local, de preferência em algum lugar na nuvem. Hoje em dia, não é caro ter um servidor virtual da DigitalOcean ou AWS por US$ 5-10 e executar um teste básico de usuário de ponta a ponta . Pelo menos, pode mostrar diferenças de desempenho muito boas em comparação com as versões prontas para uso do Magento 2.x.

Parte 2: Otimização de Desempenho M2

Natalie: O que você pode dizer sobre as peculiaridades do cache de bloco (o que é melhor usar/evitar nas chaves de cache)?

Max: Magento 2 Community Edition vem com suporte a servidor proxy Varnish. É ótimo para todos os comerciantes que não se preocupam com visitantes de primeira viagem quando o cache não está pronto. O cache de bloco entra em ação para páginas que não são armazenadas no Varnish. Você pode esperar nenhum verniz em páginas como Conta de cliente, Pesquisa de catálogo, Carrinho de compras.

A chave de cache adequada por bloco é muito importante para criar entradas de cache adequadas e aumentar as ocorrências de cache em um armazenamento de back-end, como o Redis. Idealmente, todas as entidades envolvidas na renderização de front-end devem implementar a interface Magento\Framework\DataObject\IdentityInterface que vem com o método getIdentities() . Este método é muito útil se você precisar compilar as chaves de cache adequadas para o cache de bloco.

Natalie: Alguma coisa sobre otimização de consultas SQL?

Max: Para otimização de SQL, geralmente tento listar todas as variações de dados possíveis selecionadas de uma tabela. Idealmente, todas as consultas devem atingir índices MySQL para um melhor desempenho. Eu sei que é um caso ideal, no entanto, pode realmente ajudar a acelerar as consultas em um grande número de registros em uma tabela. Claro, a otimização de consultas SQL é um tópico enorme, então posso falar sobre isso por horas.

Parte 3: Pesquisa Magento 2

O Magento 2 pode se orgulhar de ter uma pesquisa pronta para uso melhor do que o M1, mas ainda assim consultas compostas, erros de digitação, correção automática e sinônimos não são suportados. Além disso, a pesquisa M2 não verifica categorias e páginas CMS.

2017-01-17_15-26-38

Natalie: Quais são as melhores formas de melhorar a busca na edição CE: extensões ou buscadores externos?

Max: Eu considero usar o Elasticsearch para Magento 2 Community Edition. Obviamente, requer desenvolvimento interno ou usando extensões de terceiros. Para um dos projetos do Magento 2, usamos uma pesquisa integrada com configuração adicional, como sinônimos e redirecionamentos para uma página de destino para consultas de pesquisa comuns. No entanto, esta é uma solução de curto prazo, eu iria com algum serviço externo.

Natalie: Falando sobre mecanismos de busca externos, qual é o melhor para sites de pequeno/médio/grande volume de dados: Solr, Sphinx ou Elasticsearch (ou algum outro)?

Max: Para sites pequenos, eu consideraria a pesquisa padrão do Magento 2. Para outros, é mais sobre o quão boa é a extensão e a documentação caso você queira construir sua própria solução. Elasticsearch vem como minha opção preferida.

Natalie: Você pode recomendar extensões de pesquisa que podem melhorar a funcionalidade padrão?

Max: Eu tenho experiência para revisar o módulo AutoComplete para Magento 2 feito pela MageWorx. Melhora significativamente a experiência do usuário em comparação com a funcionalidade de sugestão automática padrão do Magento 2 Community Edition. O módulo MageWorx AutoComplete gerará mais conversões e vendas para um comerciante. Com relação à implementação de código, minha pontuação é de 4,5 em 5. Existem algumas pequenas melhorias que podem ser feitas para aumentar a experiência geral do desenvolvedor. Uma das coisas boas do módulo AutoComplete é o fato de ser gratuito para download. Vou considerar usar e recomendar este módulo para Magento 2 Merchants.

Além disso, continuarei revisando os módulos relacionados à pesquisa do Magento 2 e fornecerei meu feedback sobre a qualidade do código.

Parte 4: Desafios do Magento 2

Natalie: Você é um desenvolvedor Magento testado em batalha, depois de anos trabalhando com Magento, quais são os problemas mais desafiadores que a segunda versão da plataforma traz?

Por exemplo, como eu sei, mesmo pequenas alterações de código no M2 levam a uma série de ações (como bin/magento setup:upgrade, bin/magento setup:static-content:deploy, bin/magento setup:di:compile, etc. )

Max: Eu acho que na maioria dos casos quando um desenvolvedor se senta na frente do PHPStorm e escreve um código, não há tempo para se aprofundar na arquitetura Magento 2. Por exemplo, conheço alguns bons desenvolvedores que estão reclamando sobre componentes de interface do usuário e falta de exemplos reais sobre como usá-los. Os novos Magento DevDocs fornecem uma boa visão geral dos componentes da interface do usuário.

Desenvolvedores com boa experiência no Magento 1 acham o Magento 2 complexo e às vezes desafiador. A nova tecnologia sempre traz novas oportunidades para aprender algo novo.

Tem até uma foto sobre isso.

Natalie: E finalmente, o Magento 2 foi lançado em novembro de 2015. Você acha que está completamente pronto para os comerciantes do mundo todo começarem a migrar?

Max: Absolutamente SIM. O Magento 2, como software, tem mais benefícios do que alguns problemas abertos no GitHub. Obviamente, pode trazer mais receita em comparação com o Magento 1 no caso de uma migração e estratégia de marketing bem planejadas. Lembro-me de ter dito 'Sim' para um de nossos projetos Magento 2 em agosto de 2015, quando era apenas uma versão Beta. Agora estamos mais do que felizes em usar e construir sites de comércio eletrônico baseados em Magento 2.

Minha equipe da Pronko Consulting ficará feliz em dar vida a uma nova visão e lançar um novo site Magento 2.

*****
Queremos agradecer a Max por esta entrevista e desejar a ele e sua equipe um ano produtivo e de sucesso.