PHP: Sim, nós precisamos de padrões

Se você é um programador web e tem o PHP como sua linguagem principal, ou uma das linguagens que mais usa, pode ser que você já tenha ouvido falar que a comunidade PHP está buscando se organizar e criar padrões para simplificar/melhorar/evoluir o ecossistema desta linguagem que é tão usada no mundo todo.

Se você ainda não ouviu falar disso, então está na hora de correr atrás e se antenar mais para não ficar para trás!

Onde começam os problemas?

PHP é uma linguagem criada para a web e cresceu na web. E isso tem seus pontos altos e seus pontos baixos. O ponto alto é que é realmente fácil começar a desenvolver para web com PHP, pois basta usar um servidor HTTP (ou o embutido do PHP 5.4), um navegador, um editor de textos e pronto, você já começa com os “olá mundo!” da vida. Isso é algo fantástico no PHP e acaba trazendo muita gente para a linguagem.

Mas trazer muita gente significa trazer muita opinião, já que cada um pode fazer o que quiser e da forma que quiser. Com isso temos vários programadores, iniciantes ou não, construindo aplicações PHP em cada esquina por aí. Com várias aplicações sendo construídas  e nenhum padrão a se seguir, as pessoas acabam criando padrões e tentando convencer as pessoas que estão ao redor que  aquele padrão é bom.

No caso do PHP (e outras linguagens também), é possível escrever código de muitas maneiras diferentes e usando trocentos padrões e não padrões diferentes.

Como as pessoas acabam criando padrões e também acabam trabalhando em equipes de empresas e/ou comunidades, esses padrões se espalham e podem até se tornar padrões amplamente aceitos e utilizados. No PHP temos os padrões de código do PEAR e do Zend Framework, que são os mais conhecidos. Mas aí vem o pessoal dos outros frameworks e resolve que os padrões do PEAR do ZF não são tão bacanas assim e resolvem criar os seus padrões… Olha aqui o do CodeIgniter, o do CakePHP, o do Kohana, o do Yii, o do … É, acho que já deu para entender, não é?

Neste cenário fica muito claro que existe uma segregação entre os frameworks e também entre os usuários e programadores destes frameworks. Todo mundo pensando que o outro é inimigo, concorrente, alguém a ser vencido e eliminado.

FIG

Como sempre existem aqueles que não buscam a guerra, aconteceu de um pessoal se juntar e começar a pensar “espera um pouco, qual é o motivo de brigarmos e repetirmos esforços?”, e desse questionamento nasce um grupo para tratar da interoperabilidade entre os frameworks, o FIG (Framework Interop Group).

E com isso as coisas se resolvem, o mundo se torna um lugar feliz e as pessoas passam a sorrir mais e a dormir melhor…

Não é bem por aí, já que, para funcionar a tal da interoperabilidade entre os frameworks, era necessário criar os padrões, para que todos trabalhassem de uma forma mais parecida e reaproveitável. O problema é, qual padrão usar? Já que, em teoria, todos estão corretos e cada um é o melhor de todos?

PSR

Depois de muita discussão começam a surgir as PSR (PHP Standards Recommendation), que são as recomendações de padrões para o PHP.

Veja bem, as PSR são RECOMENDAÇÕES, não obrigações. Ou seja, você faz se quiser fazer e se entender o bem maior que esta padronização pode trazer.

Com as PSR a tendência é ter componentes melhores e com mais possibilidades de reuso. Com isso podemos centralizar esforços em código bom e bons projetos, em vez de ficar cada framework com a sua comunidade refazendo tudo o que já existe por aí.

A PSR-0 trata do autoload de classes, assim não é mais necessário ficar fazendo o famoso include para trazer trechos de código de outros arquivos.

Já a PSR-1 é composta por regras básicas para a base de código, como arquivos sempre em UTF-8, namespaces seguindo a PSR-0, classes devem estar em StudlyCaps e métodos e funções em camelCase, não usar a short tag do PHP e outras coisinhas.

A PSR-2 é um guia de estilos mais completo, onde são definidos itens polêmicos como o uso de 4 espaços em vez de tabs, a abertura de chaves para classes, métodos e funções deve ser na linha abaixo da declaração, mas para blocos lógicos e laços deve ser na mesma linha (putz, esse me deu raiva… mas me acostumei com ele), e mais um monte de regras, que você se acostuma fácil depois de algumas horas seguindo.

E o melhor de tudo é que o código das pessoas começa a ficar mais semelhante, mais organizado e isso facilita pacas na hora de manter um projeto que você não iniciou. Isso é empatia! Pensar no próximo (lembrando que muitas vezes “o próximo” somos nós mesmos uns meses depois).

Concluindo…

Padrões são bons, pessoal! Sério, a vida de desenvolvedor em comunidade (software livre, empresa, você e seu eu do futuro), fica muito melhor.

A comunidade PHP é conhecida por ser relaxada, desorganizada, preguiçosa e cheia de sobrinhos que pensam que programam e só sabem usar scripts prontos… Está mais do que na hora de mudar esse conceito sobre o PHP e sobre sua comunidade. A evolução está nos puxando para frente neste momento e não podemos ficar parados!

Fale sobre o FIG, as PSR e todo o movimento de melhorias e profissionalização do PHP com seus amigos, traga o pessoal para discutir e implementar melhores práticas e ajude a comunidade PHP a ser reconhecida como capaz.

Adicional

Fiz uma palestra em 2012 sobre o assunto, os slides estão aqui:

A Evolução do PHP – 4º Dev In Santos from Evaldo Junior

Além disso, existe o PHP The Right Way, parada obrigatória para quem está aprendendo e/ou quer melhorar.

InFog

Publicado em Blog, comunidade, Desenvolvimento, PHP | Com a tag , , | 9 comentários

Dica de leitura: Little Brother

Olá, pessoal!

Depois de comprar um smartphone (há quase 2 anos) com Android, comecei a buscar algumas fontes de livros públicos para ler, principalmente usando o formato ePub, que é ideal para esse tipo de dispositivo (não PDF NÃO é para leitura digital, ok?).

Já li algumas obras completas pelo aparelho e o legal é que qualquer momento de espera acaba se tornando um momento de leitura, deixando até as filas de supermercado e banco um pouco menos desagradáveis.

Pois bem, uma das minhas últimas leituras foi Little Brother, do Cory Doctorow. A obra também está disponível em português, com o nome de O Pequeno Irmão, pela editora Record.

O autor disponibiliza o download gratuito do livro e diz que você pode comprar uma cópia, se gostar, ou doar livros para alguma biblioteca pública, ou outras ações neste estilo. Isso é bem legal =D (Eu ainda não fiz nenhum nem outro…)

littlebrother

Pois bem, eu descobri o livro através de um tweet do Karlisson, sim, do Hacktoon, e me interessei em ler.

Para quem já se ligou no trocadilho do nome, já percebeu que a obra tem fortes influências de 1984, “O” livro do George Orwell.

A história se passa em uma sociedade cada vez mais vigiada (Olá, grande irmão), na cidade de San Francisco, e gira em torno de Marcus Yallow, um garoto de 17 anos que é vidrado em tecnologia e em entender como as coisas funcionam. Ele curte desmontar e montar computadores, brinca com programação e manja muito de GNU/Linux, criptografia, redes de computadores, etc.

Marcus vive pensando em segurança e em formas de burlar os sistemas de segurança da escola e outros que o vigiam diariamente.

O mundo de Marcus vira de cabeça para baixo quando um atentado terrorista destrói uma parte da cidade e deixa milhares de mortos e feridos e Marcus e seus amigos são presos pelo Departamento de Segurança Nacional e interrogados.

Após ser solto, Marcus começa a pensar em planos para se vingar por ter sido preso injustamente e por outros motivos que não vou descrever aqui (sério, já escrevi mais do que deveria e estou estragando a história…).

O livro fala sobre criptografia, como funcionam diversos tipos de ataques na internet, como funciona a vigilância de dados e pessoas na internet e muitos outros assuntos muito divertidos para quem curte esses assuntos.

Bem, já falei demais. Corre lá e baixa uma cópia, o livro é ótimo!

Alias, acabou de sair uma sequência: Homeland. Acho que já sei o que ler a seguir =)

InFog

Publicado em Blog, dicas, Livros, Resenhas, segurança | Com a tag , , , | 3 comentários

Level up! Ganhando XP em programação

Olá!

Hoje vou falar um pouco sobre como ganhar experiência e fluência em programação. Na verdade não há muito segredo, o que você realmente vai precisar é seguir essa pequena lista:

  • Programar
  • Programar
  • Ler softwares e como eles resolvem problemas
  • Programar
  • Programar

Se você sentir que não está evoluindo muito, tente refazer a lista, passo a passo. Esta lista pode ser repetida diversas vezes e vai funcionar bem. O terceiro item pode ser feito mais de uma vez, pois é bom aprender com bons exemplos.

Quem me conhece, ou acompanha este blog, pode ver que o meu foco mudou um pouco com o passar dos anos. Eu já fui muito focado em suporte à ambientes GNU/Linux e hoje em dia me mantenho mais focado em programação para web, principalmente em aprender framworks em PHP e Python. E durante este tempo eu sempre tenho tentado me manter ativo, estudando e estudando. Só assim é que se aprende.

Acredito que qualquer um vai concordar comigo que não se pode aprender a cozinhar, lendo livros de receita e olhando receitas na tv. Nem mesmo se pode aprender a dirigir comprando um bonito livro de “teoria geral da condução de veículos automotores”. Por isso mesmo é que é tão importante PROGRAMAR para aprender a programar. É simples assim.

Há alguns anos eu resolvi encarar um desafio muito interessante, de dar aulas na Unimonte, uma faculdade de Santos. Durante este período eu vi diversos casos muito interessantes de pessoas querendo aprender a programar e também de outras querendo apenas se formar =)

Vamos para a parte legal, as pessoas querendo aprender a programar. Em geral se tem aulas de programação uma ou duas vezes por semana, por cerca de uma hora e meia. Vamos dizer então, que são 3 horas de aula por semana. Se uma semana tem 168 horas, então o total de horas de programação é de menos de 2% na semana. Se o aprendiz de programação se dedicar à programação apenas durante essas aulas, ele terá um percentual muito baixo e dificilmente conseguirá evoluir na arte de ensinar computadores a fazer o que queremos que eles façam.

Agora, se a pessoa começa a fazer um estágio na área (de 8 horas/dia), o percentual de programação já sobe para quase 25% da semana e isso é um tempo de vivência bem maior e que, certamente, vai garatir um aprendizado maior.

Imagine, então, se o aprendiz começar a fazer as aulas, trabalhar e ainda estudar por conta própria mais duas horas por dia e umas quatro horas nos finais de semana. Agora o percentual vai para 37% da semana programando!

Ou seja, em uma semana essa pessoa vai estudar o equivalente a quase 19 (quase 5 meses) semanas de quem só estudar durante as aulas! UAU!

 

Mas, veja bem, a ideia não é se matar de estudar e não fazer mais nada além de programar. Também é necessário parar um pouco, esfriar a cabeça, fazer outras atividades. Pois isso ajuda no processo de aprendizado.

Ok, toda essa conta foi muito bonita, mas… Sempre tem a história do “ninguém me dá um emprego ou um estágio”. Neste caso, meu caro aprendiz, você pode usar todo o poder de uma das maiores “empresas” de programação do mundo, o Software Livre. Sim, este mesmo. E nem precisa saber hackear o kernel Linux. Você pode ajudar em projetos menores na sua linguagem preferida.

Lá no GitHub, no BitBucket e no SourceForge, tem um monte de projetos em software apenas aguardando a sua colaboração. E o legal é que você vai precisar se esforçar para fazer código de qualidade, que seja aceito pela comunidade.

Depois de aprender bastante com as comunidades de Software Livre, vai ficar bem mais fácil provar o seu conhecimento e continuar aprendendo. Mas depois de aprender bastante, ficar muito bom e conseguir um emprego, não vale abandonar o Software Livre, heim!

Bons estudos!

InFog

* Imagens em Creative Commons, no Flickr.

Publicado em Blog, Desenvolvimento, Open Source, Software Livre | Com a tag , , , | 1 comentário

A evolução do PHP, a linguagem número 1 da web

Olá, pessoal!

Hoje eu fiz uma palestra no 4º encontro do DevInSantos e falei sobre a evolução do PHP.

Busquei expor como a comunidade PHP vem se organizando e como a linguagem também tem mudado para atender as expectativas dos bons programadores PHP. Afinal, a linguagem não pode ficar parada no tempo, perdendo espaço aos poucos para outras opções.

Ah, ajude um programador PHP novato, indique estes slides para ele, e é claro, indique também o PHP The Right Way.

Publicado em Desenvolvimento, Eventos, Palestra, PHP | Com a tag , , | Deixar um comentário

4° Encontro Dev in Santos

Olá, pessoal!

Neste sábado, dia 10 de Novembro, acontecerá o quarto emcontro Dev in Santos.

Este é um evento feito por desenvolvedores e para desenvolvedores. Diversas palestras serão feitas sobre vários assuntos. De PHP à Java, de Python à Ruby.

Se você curte desenvolvimento, trabalha na área, quer saber mais sobre diversas plataformas e e linguagens e formas modernas para desenvolvimento de sistemas, você não pode perder =D

Eu estarei lá! Farei uma palestra sobre o novo PHP e como a linguagem está mudando e evoluindo.

Inscreva-se pelo Meetup: http://www.meetup.com/devinsantos/events/81805942/

O evento será em Santos, na Unimonte, das 9h00 às 18h50.

Nos vemos lá!

InFog

Publicado em Blog | Deixar um comentário

Turbine-se com CodeIgniter – Turma Nov2012 – Git, GitHub e PaaS PHP

Olá, pessoal!

O Turbine-se com CodeIgniter foi reformulado! Agora, além de aprender a utilizar o CodeIgniter para desenvolver aplicações WEB, você também verá como utilizar o Git para fazer o controle de versões do seu projeto e o GitHub para hospedagem e colaboração em projetos. Além disso faremos o deploy dos aplicativos nas nuvens utilizando serviços PaaS para PHP.

PHP nas Nuvens

A ideia do curso é ajudar a comunidade PHP a evoluir e a utilizar ferramentas melhores e mais atuais =)

Se interessou? Corra para http://turbinesecomcodeigniter.com.br/ e garanta a sua vaga para a próxima turma.

Publicado em Aulas, CodeIgniter, Git, PHP | Com a tag , , , | Deixar um comentário