Por Que Ainda Investir em Aprender a Desenvolver para Magento 1

Em novembro de 2015 foi lançado o Magento 2. Até então o Magento, mesmo com sua arquitetura já um pouco ultrapassada, reinava boa parte de seu mercado e continua reinando.

Não tenho dúvidas que o Magento 2 veio pra ficar e se estabelecer como o futuro (já presente) da plataforma, pois, por mais que ainda existam muitos bugs (o que é normal em qualquer lançamento de software), possui muitas features incríveis que realmente fazem falta no Magento 1. O Magento 2 veio separar o joio do trigo, os homens dos meninos, já que possui uma arquitetura totalmente nova e moderna e muitos, mas a muitos profissionais (no Brasil pior ainda), ainda não se adaptaram.

Mas será mesmo que as coisas vão mudar assim, tão rápido? Será que a “chavinha” vai mudar da v1 para a v2 de uma hora para outra e o mercado vai aderir imediatamente esta moda? Por quanto tempo ainda veremos o nosso bom e velho Magento 1 por aí, vendendo e gerando pedidos e mais pedidos para suas lojas?

Bom, o objetivo deste meu texto é basicamente levantar alguns motivos que mostram que ainda vale a pena investir seu tempo para aprender a desenvolver para Magento 1. Ainda é muito vantajoso, acredite em mim.

Ótima Oportunidade com Carência de Mercado

A primeira questão é:

Tá legal! O Magento 2 está aí, veio com a bola toda e, como dizem os americanos, “really full of itself”, mas como ficam todos os projetos que ainda são baseados em Magento 1? Desamparados? Como ficam os lojistas que precisarem de manutenções em suas lojas Magento, que ainda são baseados em Magento 1, pois estão receosos em migrar para o Magento 2 por alguns motivos possíveis:

  • falta de maturidade da plataforma;
  • escassez de módulos para Magento 2 para soluções diversas;
  • falta de mão de obra realmente especializada em Magento 2 para migração de um projeto que já está rodando e funcionando; enfim.

Os motivos que podem fazer com que muitos lojistas não migrem para o Magento 2 podem ser muitos e totalmente variados. Então, como fica essa galera com toda essa demanda precisando de profissionais qualificados em Magento 1 que possam lhes ajudar com seus projetos? Se não houver mais profissionais topando trabalhar com Magento 1 no mercado, pois estão todos empolgados com o Magento 2, esses lojistas teriam duas opções talvez: migrar para o Magento 2, mesmo com o mercado oferecendo pouca mão de obra qualificada em relação a demanda que existiria ou migrar para outra plataforma de e-commerce e abrir mão do grande Magentão.

Já que em toda carência de mercado existe uma oportunidade, esta seria mais uma oportunidade para profissionais ganharem dinheiro com essa demanda.

O Mercado Ainda Não Está Preparado para o Magento 2

O Magento 2 pode até ser mais rápido, mais veloz em produção, mas vamos lá, sejamos sinceros, você já viu o quanto de recursos de um server o Magento 2 consome? Enquanto podemos encontrar no System Requirements do Magento 1 um valor mínimo de 256MB de memória para o PHP, no System Requirements do Magento 2 o valor mínimo é de 2GB, ou seja, fazendo um cálculo de padaria, 8 vezes mais do que seu predecessor.

Consequentemente nosso ambiente de desenvolvimento parece estar em constante decolagem a cada página renderizada no Magento 2 sem cache e em modo developer. Já são incontáveis workarounds que encontro na internet para conseguir tornar viável o desenvolvimento em Magento 2 utilizando um MacBook Pro com Docker, por exemplo.

Consequentemente, não é qualquer lojista que poderá optar por um projeto em Magento 2, já que o próprio desenvolvimento perde um pouco de sua performance e o gasta com infraestrutura pode vir a ser maior.

Juntando isso com a falta de profissionais qualificados, que não se importam em performar seus códigos eu pergunto: será que estamos totalmente preparados para o Magento 2? Não acredito que isso seja uma verdade, mas fique á vontade para ter essa reflexão consigo mesmo e tirar suas próprias conclusões.

A Arquitetura do Magento 1 Mais Fácil de Aprender

Se existe uma diferença entre o Magento 1 e o Magento 2, com certeza é a arquitetura. Na verdade, essa é simplesmente toda a diferença. O Magento 2 veio com essa onda do momento, em que termos como Composer, TDDDependency Injection, Object Manager, Knockout JS, Plugins, Interceptors, e assim por diante, estão na boca da galera. O Magento 2 veio como o irmão mais novo do Magento 1, anda totalmente na moda, todo “nos panos”, como diz um amigo meu. Olhando para as tecnologias do momento e isso é realmente incrível. Só tem um problema… Quem está começando agora com desenvolvimento, vai ficar totalmente perdido.

Quando iniciei com desenvolvimento em Magento 1 tive várias dificuldades, pois não é de hoje que sabemos que o Magento exige uma curva de aprendizado bem longa em relação a outras plataformas. Atualmente o Magento ainda assusta muitos iniciantes e eu fico pensando aqui comigo, se eu tivesse encontrado o Magento 2 na frente logo quando comecei com desenvolvimento web, acho que teria preferido ir vender côco na praia e evitar a perda e envelhecimento de muitos fios de cabelo, que perdi ao longo de minha carreira como desenvolvedor Magento.

Com essa galera que está iniciando agora não penso que seja diferente. Se o Magento 1 para alguns desenvolvedores iniciantes e experientes pode ser considerado um Tiamat, o que seria o Magento 2 então?

As Regras de Negócio São Extremamente Parecidas

O Magento 2, por mais que tenha uma arquitetura totalmente (nem tanto) atualizada, ainda continua tendo muitas de suas regras de negócio baseadas no Magento 1. O fluxo de cadastro de clientes continua o mesmo. O fluxo de um cadastro de produto continua parecido. O fluxo de um pedido possui os mesmos conceitos, e na maioria das vezes, códigos e métodos extremamente parecidos.

Vamos analisar, por exemplo, dois métodos da classe Customer de ambas as versões da plataforma. Os métodos authenticate e loadByEmail. Para isso vamos comparar as versões CE 1.9.3.1 e CE 2.2.

https://gist.github.com/tiagosampaio/66f3506acd3fc8a87d915e54d64fc1a8.js

https://gist.github.com/tiagosampaio/eed8d29588a1cbaa1d47b066f7d39cc8.js

Reparem que, além dos métodos serem extremamente parecidos (o loadByEmail é idêntico), possuírem os mesmos nomes, estão exatamente na mesma ordem, primeiro o authenticate, depois o loadByEmail.

Concluindo

Contudo, pode ser uma ótima idéia iniciar sua carreira Magento aprendendo a desenvolver para o Magento 1, por ter uma arquitetura menos complexa e mais limpa do que o Magento 2. O seu aprendizado pode ser mais focado nas regras de negócio da própria plataforma e o conteúdo a ser aprendido seria mais consistente para quando você partisse para o Magento 2.

Lembrando que isso é simplesmente uma opinião e não deve ser levada como regra ou verdade absoluta. Sou totalmente a favor de sempre aprendermos coisas novas, e isso inclui Magento 2, mas conhecer a arquitetura do Magento de forma sólida é diferente de aprender a utilizar o composer, por exemplo.

Um grande abraço,

– Tiago

Leave a comment