Linguagens, Frameworks e Plataformas quem é quem?

Saiba um pouco mais sobre essas definições e conheça quem é quem nesse universo.

Bom dia pessoal, vez por outra me pego conversando com alguém sobre esse assunto e tentando explicar a diferença entre linguagens, frameworks e plataforma, seu apara amigos, clientes ou usuários do blog. Por esse motivo, nesse post vou tentar esclarecer um pouco mais esse assunto que confunde tanta gente.

Hierarquia

O primeiro ponto que precisamos entender é a hierarquia, linguagens, frameworks e plataformas estão, nessa sequência, em níveis hierárquicos diferentes, aqui a regra de ouro é entender que: Linguagens constroem frameworks e frameworks constroem plataformas, simples assim como na figura abaixo.

A hierarquia de frameworks, linguagens e plataformas

Linguagens

As linguagens de programação são a base dos frameworks, e nesse ponto, creio que existam poucas dúvidas sobre o que é uma linguagem de programação, mas vamos a definição.

Linguagem de programação é um conjunto de regras e sintaxes capazes de em conjunto criar uma solução de software.

Como exemplo temos, PHP, ASP, C#, JAVA, Python, Ruby, e aqui é importante frisar que não citei o HTML, justamente por que ele não é uma linguagem de programação e sim uma linguagem de marcação.

Frameworks

Antes, de falar dos frameworks, é interessante entender a sua origem. Durante o processo de desenvolvimento de software diversas vezes caímos em situações repetitivas e que ja foram resolvidas anteriormente, por você ou por outros programadores, e é nesse prisma que surgem os frameworks, com o objetivo de agregar funcionalidades que já foram desenvolvidas anteriormente e disponibilizar ao desenvolvedor.

De forma simples, você pode entender um framework como uma caixa de ferramentas que o desenvolvedor tem a disposição para criar uma solução, nessa linha temos por exemplo: Zend, Rails, .Net, Struts.

Veja na tabela abaixo os mais comuns:

Plataforma

Por fim chegamos as plataformas, que são em última instância, software, funcional, instalado e passível de utilização por usuários finais, não desenvolvedores. Nessa categoria temos diversas sub-categorias de plataforma, como, CMS, Erp, E-commerce, etc…

É nesse momento que surgem, Drupal, WordPress, Joomla, Plone, Magento, Opencart dentre outros.

Um bom resumo disso é: o Php, constrói o Zend Framework, que por sua vez, constrói o Magento e-commerce, simples assim!

Até a próxima!

Como ativar o Vqmod no Opencart?

Saiba como ativar o VQmod em sua loja Opencart, pré-requisito indispensável para os melhores módulos e plugins criados para a plataforma.

Olá pessoal, nos últimos anos tenho passado boa parte do meu tempo implantando e mantendo projetos de comércio eletrônico sob a plataforma Opencart, que apesar de seus defeitos tem se mostrado bem confiável para projetos de médio porte. 

Neste turorial vou explicar o passo a passo que você deve seguir para ativar o Vqmod (sistema de alteração virtual de scripts)  em sua loja Opencart e assim poder utilizar centenas de módulos e plugins que foram criados para a plataforma em cima desse sistema.

Se você ainda tem dúvidas sobre o que é e como funciona o Vqmod, leia esse outro artigo: “Como funciona o VQmod no Opencart?

Vamos a instalação?

Passo 1:
Faça o download do pacote mais atualizado no link: https://code.google.com/p/vqmod/downloads/list

Passo 2:

Descompacte o conteúdo no pacote na raíz de sua aplicação, criando assim uma pasta chamada vqmod na raiz do seu sistema, assim como esta na imagem abaixo:

Passo 3:

Você precisa dar permissão de escrita nos seguintes arquivos:
sualoja/index.php
sualoja/admin/index.php
sualoja/vqmod/mods.cache
sualoja/vqmod/vqcache
sualoja/vqmod/logs

Passo 4:

Acesse via browser o endereço sualoja.com.br/vqmod/install

Caso tenha ocorrido tudo certo, você receberá uma mensagem de sucesso, e caso contrário um alerta para dar permissão em algum arquivo que tenha faltado.

Após a instalação basta começar a utilizar os módulos e extensões que necessitam do Vqmod instalado, para isso, basta adicionar o xml do módulo na pasta: sualoja/vqmod/xml

É isso, simples e prático! Até a próxima

 

O que é desenvolvimento de software iterativo?

Saiba o que significa desenvolvimento iterativo e como ele pode lhe ajudar a entregar software com qualidade e dentro dos prazos

Bom dia pessoal, hoje é terça-feira, e vou iniciar uma nova série de posts aqui no blog que tem como tema engenharia de software, assunto que pretendo estudar bastante nos próximos meses e pretendo compartilhar o que aprender aqui nestes espaço.

Basicamente, segundo a definição de Margaret Rouse, desenvolvimento iterativo é uma forma de “quebrar” o desenvolvimento de uma grande aplicação em pequenos pedaços de software.

No desenvolvimento iterativo, cada ciclo de desenvolvimento deve contemplar:

  • Levantamento de requisitos
  • Análise a arquitetura da solução
  • Implementação
  • Testes
  • Distribuição
Abaixo você pode ver uma abordagem visual do conceito proposto pelo RUP:
RUP - Desenvolvimento Iterativo

O produto de cada iteração apesar de incompleto do ponto de vista visual e de integração deve permitir seu uso total e testes pelo usuário final mantendo qualidade de produto final.

Cada nova iteração de incluir novas funcionalidades as iterações anteriores, ampliando desta forma o escopo da solução. Normalmente o desenvolvimento iterativo é usado em conjunto com uma metodologia Agil de desenvolvimento que irá controlar o escopo da implementação daquela iteração.

De forma geral cada iteração ou ciclo tem um período e escopo curtos que giram em torno de duas semanas e ao seu final deve gerar código funcional que dever ser demonstrado e validado pelo cliente.

O desenvolvimento iterativo contrasta com o modelo tradicional de desenvolvimento de software baseado em cascata e que envolve o usuário final apenas nas etapas inicial, durante o levantamento de requisitos e final após a entrega do produto, e tem demonstrado uma melhor capacidade de entrega de projetos de software com sucesso.

Veja abaixo o modelo Waterfall:

O propósito do desenvolvimento iterativo esta em permitir um processo mais flexível a mudanças de escopo durante o processo de desenvolvimento do produto reduzindo desta forma os riscos de falha no projeto de desenvolvimento de software.

Para vinalizar veja o vídeo abaixo uma pequena explicação sobre este conceito:

É isso pessoal, essa é apenas uma pequena introdução ao assunto que pretendo abordar aqui no blog todas as terças-feiras, até a próxima.

Melhorando o desempenho de seu banco de dados do Opencart!

Saiba como você pode de forma simples aumentar o desempenho de sua loja Opencart com alguns pequenos ajustes no banco de dados.

Oi pessoal tudo bom? Hoje é terça-feira, dia de colocar a mão na massa, ou melhor, no código aqui no blog e como ultimamente tenho falado bastante do Opencart, hoje vou continuar no assunto, mas antes leia alguns dos posts que já fiz sobre a plataforma.

O problema com o banco de dados do Opencart

Nesse período de mais de dois anos que venho trabalhando diariamente com o Opencart, consegui conhecer algumas de suas vantagens e desvantagens e posso dizer com tranquilidade que um dos maiores problemas da plataforma esta em seu banco de dados, porém esse problema pode ser minimizado aplicando algumas pequenas alterações no banco.

Vamos a elas?

Índices, sim eles existem

Por incrível que pareça o pessoal que desenvolveu o Opencart não teve muita preocupação com a criação de índices a grande maioria das tabelas possui apenas um único em indice que contempla apenas a chave primária.

Quem já lidou com grandes bancos de dados sabe da importância desta prática e o quanto ela reduz o tempo das consultas.

Você pode criar índices em todas as tabelas do banco de dados, mas vou listar aqui as que julgo mais importante e o comando para você criar os índices:

Tabela de Produtos (product)

#Indice para fabricantes
 CREATE INDEX manufacturer ON `oc_product` (`manufacturer_id`)
#Indice para status de estoque
 CREATE INDEX stock_status ON `oc_product` (`stock_status_id`)
#Indice para o status
 CREATE INDEX status ON `oc_product` (`status`)

Tabela de Pedidos (order)

#Indice para loja
 CREATE INDEX store ON `oc_order` (`store_id`)
#indice para cliente
 CREATE INDEX customer ON `oc_order` (`customer_id`)

Chaves estrangeiras, elas podem ajudar

Outra boa prática é a criação de chaves estrangeira e que tenham remoção de dados em cascata, desta forma se você remover um produto diretamente no banco todas os dados vinculados ao produto em outras tabelas serão também removidos.

Esse é um processo longo e um pouco mais complexo pois envolve mexer em diversas tabelas, no caso de produto são 16 tabelas vinculadas, mas pode ter certeza que o esforço vai valer a pena, pois sua base de dados vai ficar sempre homogênea.

Veja abaixo o exemplo da criação da chave na tabela product_to_category que é responsável por vincular os produtos as categorias do sistema.

O primeiro passo é alteras as tabelas envolvidas pra o tipo Innodb:
 ALTER TABLE `product` ENGINE=InnoDB
 ALTER TABLE `product_to_category` ENGINE=InnoDB
#cria a chave estrangeira com a tabela produto
 ALTER TABLE `oc_product_to_category` ADD CONSTRAINT `product_id` FOREIGN KEY ( `product_id` ) REFERENCES `oc_product` ( `product_id` ) ON DELETE CASCADE ON UPDATE CASCADE ;

Não altere o banco!

Por fim a última dica que eu tenho sobre melhorar o desempenho do banco de dados é: não altere o banco de dados e sobre alterar estou falando em criar campos, renomear colunas etc…

Fazendo isso você pode quebrar referências e prejudicar e muito sua loja Opencart além de dificultar e muito o processo de atualização.

Se precisar crie novas tabelas, mas não altere as tabelas do sistema.

É isso pessoal essas foram algumas dicas que podem melhorar o desempenho da base de dados do Opencart e consequentemente aumentar a velocidade e os resultados de sua loja Opencart.

Até amanhã!!!

Conheça o Hello e nunca mais perca nenhum contato!

Saiba como esse aplicativo vai aumentar sua produtividade na organização de contatos e manutenção do histórico de reuniões

Bom dia pessoal, como foi o fim de semana? Espero que muito bem, como vocês sabem segunda-feira é dia de trazer dicas de produtividade aqui no blog. Se você não acompanhou os últimos posts não perca:

  • Aumente sua produtividade com Alfred no Mac
  • Descubra onde você gasta seu tempo com RescueTime

Mas vamos a dica do dia:

O problema…

Todas as semanas fazemos diversas reuniões, conhecemos pessoas e discutimos diversos assuntos, porém, não raro é comum encontrarmos depois de algum tempo um “bolo” de cartões de visita na mesa ou na gaveta, sem conseguir ligar mais o nome a pessoa.

Até pior do que isso é quando em uma segunda reunião você não se lembra o nome de alguém ou o assunto discutido ou até quando você conheceu a pessoa.

A solução…

Para resolver esse problema o pessoal que criou o Evernote, um dos mais famosos softwares de produtividade desenvolveu um aplicativo chamado Hello que permite a você apenas tirar uma foto do cartão de visita e o App identifica todos os dados e te permite criar um contato diretamente na sua agenda além de permitir que você descreva quando, onde e como conheceu aquele contato.

Outro ponto muito interessante do aplicativo é já integrar com o Linkedin e Facebook permitindo que você já se conecte ao perfil do novo conhecido, tudo em poucos toques e da forma mais simples possível.

Ah, todos os seus dados vão para nuvem em sua conta Evernote que fica acessível em todas as plataformas.

Ficou curioso? Assista o vídeo sobre o aplicativo abaixo:

O Hello pode ser baixado gratuitamente na AppStore e no Android MarketPlace.

Bom por hoje é isso pessoal, espero que a dica ajude vocês a não perder mais nenhum contato, até amanhã!

Tags x Meta-tags no Opencart em 3 minutos!

Saiba como utilizar as Tags e as Meta-tags de forma correta para melhorar o desempenho de sua loja.

Bom dia pessoal, hoje é sexta feira, dia de falar sobre dicas de usabilidade, seo e interface aqui no blog, e dessa vez quero falar em 3 minutos de um tema simples e que diversas vezes se torna um ponto de confusão para administradores de lojas que utilizam a plataforma Opencart, trata-se do uso de Tags e de Meta-tags.

 Tags x Meta-tags

As meta-tags

Apesar de gerar alguma dúvida essa é uma questão muito simples, as meta-tags são palavras que definem o conteúdo da página e que serão utilizadas pelos buscadores (Google, Bing) para indexar o seu site, ou seja quanto mais descritivas melhor.

Veja a definição do W3c para as meta-tags:

The <meta> tag provides metadata about the HTML document. Metadata will not be displayed on the page, but will be machine parsable.

Ou seja é um conteúdo destinado a leitura por máquinas e não aparecerá no conteúdo da página, desta forma preocupações com formatação e etc são desnecessárias, sendo o foco principal a contextualização do conteúdo.

As tags do Opencart

Talvez o ponto principal de dúvida seja o nome adotado pelo Opencart, pois as tags do sistema nada mais são do que uma taxonomia que agrupa produtos que tenha alguma relação, por exemplo: Você possui uma loja de roupas, em quer exibir produtos relacionados ao inverno, ao invés de criar uma categoria Inverno você simplesmente utiliza uma TAG com o nome inverno em todos os produtos que tem relação com esta tag.

Desta forma todos os produtos serão agrupados em uma url própria, e o link para as tags que o produto participa será exibido no rodapé da página de produto, de forma similar ao que ocorre no sistema WordPress.

É isso simples e fácil, meta-tags buscador, tags agrupamento, e você aproveita melhor sua loja Opencart, até sexta que vem com mais dicas de usabilidade e SEO.

5 coisas que você não sabia sobre o Opencart

Conheça um pouco mais sobre o Opencart, plataforma de comércio eletrônico que não para de crescer

Olá leitores, depois de um longo inverno, estou de volta ao blog e com força total e para começar quero trazer pra vocês um texto rápido com 5 coisas que você provavelmente não sabe sobre o Opencart, minha plataforma de e-commerce favorita.

Mas antes leia algumas dicas que já trouxe aqui no blog sobre o Opencart:

Vamos as curiosidades?

Você pode apagar os produtos da sua loja Opencart,

Muita gente tem dúvida sobre apagar ou não produtos de sua loja virtual com receio que seja perdida a referência para pedidos antigos e que envolvam tais produtos.

Keep Calm! O Opencart salva praticamente todos os dados do produto e do cliente na tabela order que é destinada ao armazenamento de pedidos, desta forma mesmo que o produto seja removido a referência não é perdida.

É possível atualizar o sistema sem grandes problemas,

Outro mito esta na possibilidade de atualização do sistema, apesar do opencart não possuir uma forma de atualização simples como o WordPress a ferramenta pode sim ser atualizada sem grandes impactos, desde que o desenvolvedor tenha tido o cuidado de não mexer em arquivos do core do sistema e também não tenha alterado tabelas do sistema.

Para aprender a alterar o sistema sem “quebrar” o core veja esse post aqui sobre o VQmod.

O sistema praticamente não atualiza dados no banco (No UPDATE),

Não sei o que aconteceu com o pessoal que desenvolveu o sistema mas parece que eles não conheciam o comando update do SQL.
Praticamente todas as atualizações de dados do sistema passam por remover o conteúdo e inserir novamente, isso vale para produtos, endereços, etc… Bizarro

Dá pra melhorar performance,

Eu gosto muito do Opencart, mas ele não é muito legal com os servidores, claro, nada que se compare com o Magento que é um elefante, mas a falta de updates e uma modelagem de dados muito digamos discutível, tornam o sistema um pouco exigente em questões de hardware.

Uma boa forma de melhorar isso é realizar um tunning em seu banco de dados, criando índices e tomando cuidado com a quantidade de atributos, categorias e opções de produtos.

Não existem chaves estrangeiras

Por incrível que pareça o banco de dados do Opencart não possui chaves estrangeiras ou seja se você apagar um dado diretamente no banco de dados, coisa que desenvolvedor adora fazer, você provavelmente vai ficar com vários dados “sobrando” no banco.

Um exemplo, se você apagar um produto, o banco não irá remover suas referências de categoria, atributos e etc…

Solução para isso: ou você nunca apaga nada direto no banco de dados, ou investe um tempo criando todos os relacionamentos do banco 🙂

É isso essas são algumas curiosidades do sistema, lembrando que elas valem para a versão 1.5.1 do Opencart, em versões mais recentes isso pode ter mudado, ou não 🙂

Até a próxima

Instalando Zend Server no Mac Os

Saiba como instalar o Zend Server 6 no Mac Os Mavericks

Pessoal, a dica de hoje é bem direta e vem em vídeo, é um simples vídeo-tutorial sobre como instalar e ativar o Zend Server 6 no Os X Mavericks, como eu não uso o Zend Server não tenho muito o que falar dele, apenas que a instalação foi simples e que ele utiliza agora como webserver o Ngix que é extremente rápido!!!

Nos próximos dias vou fazer alguns testes com ele e se valer a pena coloco aqui para vocês quais foram as minhas impressões… Com certeza a galera do Zend Framework vai gostar do Zend Server…

Até a próxima!

Validação de formulários com Jquery, uma abordagem simples… | Parte 2

Confira um exemplo de implementação de validação de formulário simples com html, css e jQuery.

Oi pessoal, semana passada publiquei aqui no blog a primeira parte deste tutorial sobre a validação de formulários utilizando html, css e jQuery.

Como eu expliquei na semana passada utilizo uma lógica simples baseada em 3 princípios:

  • As mensagens de erro são inclusas no html e ocultas via css
  • Quando algum critério não é atendido o contador de erros é aumentado em um e a mensagem é exibida
  • Caso não exista nenhum erro o formulário é postado

O arquivo CSS

Em nosso arquivo css temos o estilo das mensagens de erro que serão exibidas em vermelho abaixo dos inputs.

Confira o código abaixo:

O arquivo JS

O arquivo JS é responsável por controlar o fluxo da aplicação e possui uma lógica bem simples que segue o fluxo:

  • Inicia o contador de erros em zero
  • Valida se o nome esta vazio
  • Valida se o email esta vazio
  • Valida se a senha esta vazia
  • Valida se a senha confere com a confirmação de senha
  • Caso qualquer validação esteja incorreta aumenta 1 no contador de erros
  • Caso o contador de erros seja igual a zero posta o formulario

Para validar e invalidar campos utiliza as funções setValid e setInvalid que você pode ver abaixo

As funções setValid e setInvalid

São as funções responsáveis por alterar os inputs para verde ou vermelho de acordo com a situação do input.

Veja as funções abaixo:

É isso pessoal espero que tenha ficado clara a mecânica para validação de formulários com jQuery e CSS. Essa base pode ser utilizada para quase qualquer situação, adicionando novas validações como formatos de CPF, Email etc, até validações de back-end que utilizam o Ajax do Jquery, mas isso é assunto para os próximos posts…

 

Validação de formulários com Jquery, uma abordagem simples… | Parte 1

Saiba mais sobre Validação de formulários de uma forma simples e elegante sem complicar seu código.

Bom dia pessoal, hoje é terça-feira dia de falar de código aqui no blog e colocar a mão na massa, hoje vou  abordar um assunto que apesar de ser básico no desenvolvimento web: Validação de formulários,porém ainda gera muitas dúvidas e dor de cabeça para os desenvolvedores, principalmente os iniciantes, a validação de dados em formulários.

Nesses mais de 10 anos na área já vi todo tipo de validação, com JS, no Backend, Híbrida e feita das formas mais entranhas possíveis. Bom, depois de penar bastante com esse assunto consegui definir um padrão para o meu desenvolvimento que facilitou muito a minha vida, o modelo é baseado em Jquery, Html e css puros e se necessário alguma validação de banco de dados utilizo um script de back end.

A construção do HTML

Como minha Validação de formulários é baseada apenas em HTML, Js e Css, o primeiro passo é a construção do html, nesse exemplo do artigo vamos construir um formulário bem simples para cadastro de nome, cpf, e-mail e senha com um campo para confirmação da senha, veja o exemplo de construção do html abaixo:

 

Como você pode ver no exemplo acima, cada campo é composto de 3 elementos a label ou nome do campo, o campo efetivamente através do elemento input e uma mensagem de erro que é inserida dentro do elemento span.

A lógica de validação

A lógica para validação exibição de erros e efetiva postagem dos dados seguem algumas premissas simples:

  • O texto das mensagens de erro constantes nos elementos SPAN com a class erro são ocultas inicialmente
  • Quando algum critério de validação não é respeitado a mensagem é exibida
  • Caso não exista nenhum erro o formulário é postado

Esses são o 3 princípios utilizados nessa validação, no próximo artigo vou trazer para vocês o exemplo do css e do script Jquery responsável pela validação.

Até a próxima!