Frameworks no PHP: O que, quando, por que e qual?
PHP é a linguagem de programação mais famosa do mundo por várias razões: flexibilidade, facilidade de uso e vários outros fatores. Mas algumas vezes a programação se torna monótona e/ou repetitiva, e é aí que um framework pode ajudar.
O que é um framework de PHP?
De forma resumida o framework é uma estrutura, uma fundação para você criar a sua aplicação. Em outras palavras o framework te permite o desenvolvimento rápido de aplicações (RAD), o que faz economizar tempo, ajuda a criar aplicações mais sólidas e seguras além de reduzir a quantidade de código repetido. Os frameworks também permitem que os iniciantes criem aplicações mais estáveis garantindo uma boa relação entre o banco de dados e a camada externa de exibição. Isso tudo te permite gastar mais tempo desenvolvendo a aplicação em si do que repetindo os códigos que todas as aplicações têm.
A idéia padrão de trabalho por trás de um framework no PHP está ligada ao modelo MVC (Model View Controller). MVC é uma forma de programação que isola a lógica de negócio (como a aplicação funciona) da camada de exibição (a parte visual). O Model cuida do banco de dados, o View cuida da camada de exibição e o Controller cuida da lógica de negócio. Isso tudo faz com que você trabalhe mais rápido e de forma setorizada.
Por que usar um framework de PHP?
Os desenvolvedores utilizam frameworks por vários motivos, e o maior deles é para agilizar o processo de desenvolvimento. A re-utilização de código em vários projetos vai economizar muito tempo e trabalho? Isso é garantido, pois o framework já traz uma série de módulos pré-configurados (e funcionando) para fazer as mais variadas e comuns tarefas como envio de e-mails, conexão com o banco de dados, sanitização (limpeza) de dados e proteção contra ataques.
Estabilidade é outra grande vantagem dos frameworks. A simplicidade, que é um dos grandes “feitos” do PHP, também é o que possibilita inúmeros erros e falhas pelos principiantes? Nem todo código que funciona necessariamente está correto e bem desenvolvido.
Quando usar um framework de PHP?
Essa é uma dúvida muito comum em todos os níveis de desenvolvimento. Para a maioria dos iniciantes, usar um framework, além de ser mais fácil, vai ser mais estável, então é bom usá-los sempre que possível.
Em contrapartida vários programadores experientes vêem os frameworks como ferramentas usadas por programadores fracos, que não sabem como criar um código limpo, sólido e seguro.
Quando se trabalha com projetos que têm um prazo muito curto (o que eu chamo de “prazo Jack Bauer”) é sempre bom usar um framework, pois ele vai agilizar todo o processo. Outro motivo forte para o uso do framework é que você não está criando “código artesanal”? Há todo um padrão que você deve seguir para que as coisas funcionem, e está tudo documentado e explicado em uma vasta comunidade de suporte.
CakePHP
O CakePHP é uma grande opção para iniciantes e desenvolvedores avançados. Ele foi criado usando as bases e modelos do Ruby on Rails e é pesadamente focado no desenvolvimento ágil e rápido. Recentemente ele tem se tornado muito famoso por sua simplicidade e facilidade de uso.
Eu pessoalmente recomendo o CakePHP. Minha vida de programador mudou depois que eu comecei a usar ele.
Zend Framework
O Zend Framework é um framework focado no desenvolvimento de aplicações pra web 2.0. Ele tem um grande número de seguidores, fontes de suporte e uma comunidade cheia de usuários ativos e participativos. O Zend é o framework mais famoso hoje em dia, ele é robusto e permite a criação de aplicações enterprise (de grande porte) mas seu uso exige um conhecimento vasto do PHP.
CodeIgniter
Já o CodeIgniter é bastante conhecido pela sua facilidade de uso, performance e rapidez. É ideal para aplicações rodando em servidores compartilhados. Ele oferece soluções simples e de pequeno porte, com um grande número de tutoriais em vídeo, fóruns e wikis.
Fonte: Imasters
Conectando C# ao MySQL
Quem está habituado a programar C# normalmente utiliza SQL Server como banco de dados, uma vez que ela está integrada no Visual Studio e, por isso mesmo, existe grande facilidade em trabalhar com as duas ferramentas.
Por vezes existem projetos em que se torna conveniente (por várias razões) utilizar outro tipo de base de dados. Seja que banco de dados for, a sua integração é sempre diferente do SQL Server.
Neste caso vou mostrar como fazer a integração entre o C# e o MySQL.
Supondo que já existe uma instalação do MySQL na máquina, precisamos instalar um intermediário entre o C# e a base de dados. Neste caso necessitamos instalar o MySQL Connector NET.
A versão 5.2 já tem suporte ao Visual Studio 2008, mas eu vou utilizar a última versão (6.0).
Instalamos o Connector Net 6.0.
Devemos já ter uma base de dados com uma tabela (users por exemplo), em que os campos da tabela são: id, nome, email.
Como exemplo criamos um projecto Windows Forms Application.
Antes de mais nada, devemos fazer uma referência à classe que vai ligar o C# ao MySQL. Para isso vamos ao painel Solution Explorer, na raiz do projeto, clicamos com o lado direito do mouse e selecionamos Add Reference.

Na primeira divisória (.NET) selecionamos a referência MySQL.Data e damos OK.
Não esquecer: incluir no início do código as classes:
using System.Data;
using MySql.Data.MySqlClient;
Sem adicionar a referência à MySQL.Data, a classe MySql.Data.MySqlClient não será reconhecida.
Para exemplificar fazemos um formulário de inserção de dados (nome e e-mail) na base de dados.
No form colocamos duas caixas de texto, uma para o nome (txtNome) e outra para o e-mail (txtMail) e um botão que terá a ação de inserir os dados na base de dados.

Vamos então definir, em primeiro lugar, o dataset e a string de conexão à base de dados.
private MySqlConnection bdConn; //MySQL
private MySqlDataAdapter bdAdapter;
private DataSet bdDataSet; //MySQL
Na ação do botão:
//Definição do dataset
bdDataSet = new DataSet();
//Define string de conexão
bdConn = new MySqlConnection("Persist Security Info=False;server=localhost;database=rfidapp;uid=root;server=localhost;database=rfidapp;uid=root;pwd=''");
Neste caso a base de dados não tem password.
//Abre conecção
try{
bdConn.Open();
}
catch{
MessageBox.Show("Impossível estabelecer conexão");
}
//Verifica se a conexão está aberta
if (bdConn.State == ConnectionState.Open)
{
//Se estiver aberta insere os dados na BD
MySqlCommand commS = new MySqlCommand("INSERT INTO regists VALUES('',\\'" + txtNome + "\\',\\'" + txtMail + "\\')", bdConn);
commS.BeginExecuteNonQuery();
}
Tome atenção na sintaxe do SQL para o MySQL (INSERT) que é um pouco diferente do C#/SQL Server.
Neste momento o formulário deverá inserir dados no BD.
Fonte: Imasters
Sufoco para pilotar uma empresa de TI
Você está pensando em terminar a faculdade e montar uma empresa de TI acreditando que o governo vai te ajudar, aviso, tire o cavalinho da chuva que o coitado vai encolher. Enquanto você não passar pela via sacra do martírio de juros, impostos e das mais diversas dificuldades possíveis e imagináveis, não terá nem um dedo mindinho para te segurar.
Funciona assim; você coloca a idéia no papel, traça a estratégia do produto e/ou serviço, monta uma MPE (Micro ou Pequena Empresa), tira o CNPJ, mobilia escritório, compra equipamentos e começa a contratar pessoas. Neste momento, precisa de mais dinheiro para o capital de giro já que vendeu carro, TV, moto, geladeira, sogra, etc, a fim da empresa ter uma sobrevida. Para isso, recorre a uma instituição pública e recebe como resposta um sonoro “não” porque você não tem a empresa há mais de um ano. Estranho, principalmente se vermos que o governo gasta milhões de reais em publicidade dizendo que existem outros milhões para incentivo destas empresas. Mas que raios de incentivo é este então?
A resposta é; ninguém sabe. Justo no período mais crítico da vida de uma micro empresa, a “mãe” que deveria cuidar do filho simplesmente o abandona a sua própria sorte para que, numa atitude extrema e de desespero, recorra ao “conforto” dos braços de outros, não tão carinhosos, mas que ajudam de uma forma ou de outra. Falo das instituições privadas (bancos) que exploram e tiram até a pele do recém-nascido.
De outro lado alardeia-se em todas as mídias que o BNDES tem dinheiro para dar e vender. Pois então tente pegar um mísero centavo lá antes de completar um ano, mesmo que seja no cartão BNDES. Necas, niente, nada, nothing. Infelizmente no Brasil a concessão de crédito está atrelada a sua capacidade de garantir o dinheiro com outros bens e não com seu talento ou sua idéia. Ao contrário de outros países onde pode-se “dar” como garantia a geração de empregos e seu conhecimento, aqui somente sua casa, seu carro ou seu apartamento servem. Nem mesmo contratos de trabalho firmados com empresas é garantia.
Estas diferenças estão bem ilustradas num estudo de Fernando Pimentel Puga, economista do BNDES, intitulado O apoio financeiro às micro, pequenas e médias empresas na Espanha, no Japão e no México onde são apresentados os cenários destes países e que serve para nós, teimosos em querermos ser empresários, morrer de inveja e ficar com o cotovelo doendo por dias. Nem mesmo a FINEP consegue ajudar verdadeiramente aqueles que desejam levar adiante uma idéia. A burocracia é grande e quando não é isso, procura-se de todas as formas garantias até mesmo da pessoa física para o empréstimo ou financiamento.
Ok, sei que você deve estar imaginando que o governo precisa destas garantias para “receber de volta” o que foi investido. Particularmente discordo pois este “investimento” é realizado para o crescimento da economia e do país como um todo. Também sei que existem aventureiros e que a grande maioria daqueles que montam empresas são os que perderam seus empregos e precisam dar continuidade no sustento da família sem ao menos saber o mínimo de como criar e manter uma empresa. Mas e se fossem exigidas garantias como a participação em cursos sobre empreendedorismo e até mesmo o aval de instituições como o Sebrae num projeto? Não seriam estas suficientes para garantir que o negócio fosse andar? (neste mesmo estudo acima, é citado casos onde existe a co-participação de instituições na empresa a fim dela se manter).
No segmento de TI existem milhares de idéias sendo fomentadas diariamente em nosso país mas a maioria delas simplesmente sucumbem por falta de auxílio das instituições públicas. Somos criativos mas ainda não tivemos capacidade de descobrir como dar um bypass na burocracia e falta de interesse nestas idéias. E para ajudar, as faculdades nada ensinam desta mágica de tirar uma idéia da cabeça, colocá-la no papel e dar vida a mesma.
Tudo isso advém das palavras do presidente da FINEP, Luis Fernandes, que lembrou muito bem a necessidade premente que nosso país tem em inovar, comparando inclusive os crescimentos dos países do BRIC com a retração do Brasil. Mas não basta somente injetar dinheiro, é preciso também dar condições para que este dinheiro chegue na mão daquele que inova. Carência no pagamento, redução da carga de juros e eliminação da burocracia são pontos que devem ser enfrentados da mesma forma. De nada adianta ter milhões em fundos para aplicação se ninguém é capaz de pegá-los. Inovadores existem em nosso país, muitos aliás, mas se estes mecanismos não forem aliviados, não existe como ser inovador, a menos que nos tornemos inovadores na capacidade de atender as exigências governamentais.
Quiçá os brasileiros estivessem nos EUA com as mesmas oportunidades que Sergey Brin e Larry Page tiveram. Seríamos os número um não só em Indianápolis, mas também na tecnologia. E enquanto isso não acontece, vamos vendo Hélio Castro Neves ganhando na terra deles. Este sim sabe pilotar.
Fonte: Imasters
Google Quality Score – conheça o segredo por trás do leilão do Google AdWords
Falando sobre o SMX Advanced, resolvi escrever sobre um dos principais temas discutidos em qualquer evento de Search Marketing (SEM) – o Quality Score do Google AdWords. Se você usa o Google AdWords para qualquer campanha de marketing (ou tem uma agência que faz isso por você), conhecer o que está por trás do leilão do Google e como o preço pago por cada clique é determinado é fundamental.
Primeiro, uma breve explicação sobre como se determina a ordem dos anúncios exibidos nas páginas de buscas do Google (se isso é básico demais para você , pule para o próximo parágrafo). O Google sempre está preocupado em balancear três participantes do sistema de buscas – anunciante, usuário e o próprio Google. Nos primeiros sistemas de leilão de posições de anúncios em buscadores, o único critério que determinava a ordem dos anúncios era o lance de cada um. Ficava em primeiro quem fazia a melhor oferta. O problema desse modelo é que o anúncio poderia ser totalmente insignificante para o usuário que fez a busca. A grande inovação do Google foi criar um índice de qualidade para os anúncios, o chamado Quality Score. No Google AdWords, então, além do lance de cada anunciante, a qualidade do anúncio é levada em consideração para decidir a ordem dos anúncios e o preço a ser pago também.
Mas no que consiste o Quality Score? Essa é a resposta que o Google nunca revela, porém o que eles indicam é que são basicamente três fatores, com pesos desproporcionais. O primeiro e mais importante é a taxa de clique ou CTR (click-through rate), o segundo é a relevância do anúncio (aqui diversas variáveis contam, mas todas ligadas à linguagem do anúncio e à palavra buscada) e o terceiro é a página de destino (ou landing page). Da composição destes três fatores é atribuído um Quality Score ao grupo anúncio/palavra-chave.
E como se determina a ordem dos anúncios e o valor a ser pago? A ordem dos anúncios a serem exibidos é determinada pelo Ad Rank (multiplicação do lance pelo Quality Score). Primeiro calcula-se o Ad Rank de cada anúncio e se ordena do maior para o menor.
E, finalmente, o valor a ser pago por cada anunciante: existe uma matemática bem simples por trás desta conta – o preço pago pelo anunciante que ficou em primeiro na ordem dos Ad Ranks é igual ao Ad Rank do segundo colocado (30 no exemplo abaixo), dividido pelo seu Quality Score (8 no exemplo abaixo) e assim por diante. Exemplo:

Dessa forma, o incentivo é para que cada anunciante ofereça o lance máximo que realmente está disposto a pagar, pois ele não será penalizado caso os outros anunciantes estejam oferecendo valores menores, já que o valor real que pagará depende do valor oferecido pelo próximo anunciante. Além disso, um fator muito relevante é que, quanto maior o Quality Score, menor será o preço efetivo pago, portanto, sempre valerá a pena tentar melhorá-lo.
Para mais detalhes sobre como funciona o leilão do Google AdWords, recomendo este vídeo feito pelo Hal Varian, Chief Economist do Google: http://www.youtube.com/watch?v=K7l0a2PVhPQ.
Vale a pena também assistir o vídeo do presidente da ClickEquations, Craig Danuloff, em uma das palestras durante o SMX Advanced:. http://www.midiadigital.com.br/blog/sem/google-quality-score-under-a-microscope/.
Créditos para Guilherme Gomide, que filmou e editou essa palestra.
Espero que vocês tenham aproveitado as novidades discutidas no SMX Advanced e trazidas pelo MMOnline. Caso queiram mais informações sobre o evento ou sobre os artigos escritos, fiquem à vontade para me mandarem emails (rgrosman@fbiz.com.br) ou seguirem-me no Twitter (http://twitter.com/rgrosman).
Fonte: Imasters
