Análise do livro: Criando um e-commerce com CodeIgniter
Recentemente foi lançado o livro: Criando um e-commerce com o CodeIgniter do autor Ademir C. Gabardo e assim que foi feito seu lançamento, comprei-o na mesma hora.
No post de hoje quero fazer uma pequena análise sobre o conteúdo do livro e se vale a pena ou não comprá-lo.
Durante o texto, as frases em negrito expressam meus comentários.
A proposta do livro é a criação do zero de uma loja-virtual usando o CodeIgniter e também ensinando a desenvolver os principais módulos que uma loja-virtual deve possuir, como por exemplo:
- Carrinho de compras.
- Integração com um gateway de pagamento
- Cálculo de Frete
- Envio de e-mails para os clientes
- Área Administrativa
- Autenticação de usuários, etc.
O livro começa rapidamente com a história do CodeIgniter até chegar à versão 3.0, que é a utilizada no livro. Esta parte do livro é interessante para quem deseja conhecer um pouco mais de como são os bastidores da criação de um framework.
Nesta etapa o autor também detalha brevemente como será feita a criação do sistema da loja-virtual nos capítulos seguintes, explicando, também, que será usado o framework css bootstrap, que vai cuidar do visual do site.
Nos capítulos 2 e 3, o autor detalha como que um framework funciona, quais as novidades na versão 3.0 do CodeIgniter e também explica com riqueza de detalhes várias etapas das configurações dele.
Esta é uma parte muito importante pois para quem conhece o CodeIgniter somente superficialmente, aqui será possível tirar diversas dúvidas sobre como usar e configurar de maneira correta o framework.
Então, no capítulo 3, é iniciada a construção de um pequeno blog com o CodeIgniter, para que o usuário que nunca teve contato com o framework possa se sentir mais confortável quando se deparar com funções mais avançadas no decorrer do livro.
A intenção deste capítulo era iniciar o leitor no mundo MVC através do CodeIgniter, porém, o autor não usa o modelo MVC aqui, ou seja, as transações com o Banco de Dados são feitas diretamente no controller. O autor deixa claro isso ao entrar no capítulo, porém, eu acredito que não custaria nada ter abordado a camada Model aqui, também, para deixar o leitor mais familiarizado ainda com o framework.
Outra coisa que me incomodou um pouco também foi o fato de o autor usar praticamente todas as funções do framework para a impressão de html nas views. Eu acredito que não é só porque um framework traz várias funções em PHP que simplesmente enviam para a tela simples tags html, que deveríamos usar TODAS elas. Ao meu ver isso acaba que prejudicando seriamente a camada V (views), pois é onde deveria existir praticamente apenas HTML, e muito pouco de PHP.
Se um designer pegar o código da view e colocar em um editor visual de html, como o Dreamweaver, por exemplo, ele não conseguirá ver grande parte da tela final, pois existem muitas TAGs em PHP que só funcionarão com um servidor PHP rodando. Por exemplo: acho desnecessário utilizar a função heading(‘Texto’, 3) do framework só para imprimir um cabeçalho H3.
Desta maneira, praticamente todo o código HTML que deverá estar na view, estará dentro de echos do código PHP.
Capítulo 4 – Iniciando a criação da loja online
Neste capítulo o autor dá uma breve introdução sobre o comércio eletrônico e inclusive fala também sobre a evolução da internet. Achei muito interessante, inclusive, confesso que alguns conteúdos ali escritos eram desconhecidos por mim.
Em seguida ele mostra o que uma loja-virtual deve ter e fala sobre algumas projeções sobre o comércio eletrônico no Brasil, que se mostra em grande expansão.
Fala também sobre os sistemas de cobranças, sistema de envio de mercadorias, demonstrando sobre qual escolher: correios ou uma transportadora.
Então, dá o início ao desenvolvimento da loja online começando pela tela inicial, onde é usado o Bootstrap.
Gostei bastante da explicação que o autor dá aqui sobre como é feito o cálculo de frete, e demonstra que geralmente as coisas não são tão simples assim de se calcular baseando-se apenas em altura, largura, comprimento e peso de um produto. Demonstra que existem outros fatores a serem considerados, porém, ao usar estas 4 variáveis, geralmente o valor do frete é satisfatório e atende à maioria dos consumidores.
No capítulo 5, é iniciada a parte de Administração da Loja, que é de extrema importância para gerenciar os produtos, categorias, preços, fotos, etc.
Na parte de desenvolvimento não há muito o que eu possa falar aqui. É basicamente o CodeIgniter sendo usado para construir algo bem específico, neste caso a loja-virtual.
A didática do autor flui bem durante o livro, porém, devo destacar que existem alguns erros de revisão no meio dos códigos. É o famoso copiar/colar de um código muito parecido, onde somente algumas variáveis são alteradas mas estas alterações só se mostram no texto, e não no código, que ficou o antigo, por um esquecimento talvez.
Para uma pessoa menos atenciosa, isso pode provocar dores de cabeça absurdas quando tentar rodar o código e ele não funcionar. Então fica a dica de uma re-revisão numa próxima edição.
Bom, chegamos ao ponto agora onde eu acho que o livro realmente deixou a desejar. São basicamente 2 reclamações que tenho, uma inclusive já mencionada acima.
1ª A loja virtual construída pelo livro baseou-se na biblioteca Cart do CodeIgniter
Quando eu comecei a ler o livro, imaginei que o autor já saberia que esta biblioteca seria descontinuada a partir da versão 3.0, e que ela ainda está lá apenas por questões de retrocompatibilidade. Isso realmente me deixou um pouco decepcionado, pois não é difícil de se construir um carrinho de compras, ainda mais usando as funções nativas do CodeIgniter para criar algo do tipo.
Esta informação está descrita claramente no ChangeLog do CodeIgniter 3.0 e que não é recomendado o uso da biblioteca cart nos seus projetos. Você pode ver isto clicando aqui.
Ou pelo menos, o autor poderia ter colocado um aviso dizendo que a biblioteca será descontinuada em versões futuras, apenas para que o leitor fique avisado.
2ª O uso excessivo de funções em PHP que cospem tags HTML nas views
Já falei sobre isso mais acima, e realmente é algo que me incomodou bastante. Uma das principais vantagens do MVC é a separação dos códigos, basicamente o programador trabalha em cima dos Models e Controllers e as Views ficam a cargo dos designers, porém, no livro existe muito “echo” que simplesmente mostra TAGS html no código, como por exemplo a função heading(). Eu acredito que o programador deva colocar na balança se vale a pena usar todas as funções que o framework fornece em seus projetos,
Eu particularmente não gosto de usar funções como a heading(), pois não vejo vantagem. Se um designer abrir essa tag em um editor WYSIWIG vai receber apenas um texto em PHP, e não vai poder visualizar, por exemplo, como poderá ficar o visual final da página.
Porém, funções que geram seu conteúdo dinamicamente acho válidas, como por exemplo: anchor(), que cria um link já levando em conta as configurações de URL base do CodeIgniter. Porém confesso, que nem mesmo esta função eu gosto de usar muito.
Outra função que também não tenho o o costume de usar é o form_input() da biblioteca form do CodeIgniter. A função basicamente cria os campos dentro dos fomulários, mas novamente caímos naquele caso do designer, que não é obrigado a saber pra que serve isso, podendo prejudicar seu trabalho.
Isto acopla demais o funcionamento do site a um determinado framework, e o desginer não tem como conhecer qual framework está sendo usado ou simplesmente saber o que é um framework.
Mas digo novamente, isso vale para cada programador.
No final do livro o autor também fala sobre algumas outras funcionalidades do CodeIgniter, como por exemplo: como criar seus próprios arquivos de configurações, como conectar em mais de um banco de dados, captcha, manipulação de imagens, etc. Inclusive com exemplos. Gostei bastante desta parte.
O veredito
Em fim, gostaria então de dizer a você, caro leitor, se vale a pena ou não comprar o livro, e minha resposta é:
SIM, vale a pena.
Por mais que o livro tenha alguns probleminhas, acredito que a maior parte do seu conteúdo cumpre o que promete e que quem lê-lo terá uma boa base para conseguir criar uma loja online e se aprofundar mais no CodeIgniter.
Se você também já comprou o livro e quiser mencionar algo a respeito, use os comentários abaixo.
Para comprar o livro, clique aqui.
Abraços
Fábio