+14

Programar de forma Hierárquica

criado por Rubens Takiguti Ribeiro em 24/11/2009 7:54pm
Normalmente, um programador que começa a utilizar PHP estrutura suas primeiras aplicações de forma sequencial. Basicamente cria um diretório e vai jogando tudo lá dentro. Aos poucos, percebe que a estratégia adotada vai ficando confusa, comaça a aparecer alguns arquivos chamados index2.php, index3.php, salvar46.php, etc. e fica cada vez mais difícil achar aquilo que queria. Este artigo trata de algumas técnicas e estratégias para tornar o desenvolvimento de uma aplicação mais simples em termos de manutenção e, principalmente, expansão.

A caminhada de um bom programador passa por alguns tropeços como estes, mas a conquista ocorre quando há vontade de mudar.

Para começar, estruturar os diretórios da aplicação de forma hierárquica é fundamental e impactará em todo o desenvolvimento da mesma. Organizar e padronizar onde ficarão as classes, onde ficarão as folhas de estilos, onde ficarão as imagens, onde ficarão os scripts acessíveis na Web é uma tarefa aparentemente simples, mas pode se tornar bastante complexa em alguns cenários. Por exemplo, se o seu sistema terá suporte à internacionalização ou não, são detalhes que precisam ser tomados de antemão, já que reestruturar seu sistema para suportar isso é algo bem trabalhoso.

Um exemplo de como estruturar a árvore de diretórios é a seguinte:

  • /sistema

    • /classes

      • /modelo

      • /visao

      • /controle

      • /autenticacao

      • ...



    • /temas

      • tema1

        • /imagens



      • tema2

        • /imagens



      • ...



    • /imagens

      • /icones

      • /fotos

      • ...



    • /javascript

    • /modulos

      • modulo1

        • submodulo1



      • modulo2

      • ...







Os nomes dos diretórios são autoexplicativos. Algumas observações importantes: o diretório de classes pode ser subdividido hierarquicamente. O nível hierárquico não precisa ser, necessariamente, em apenas 2 níveis de diretórios. Com o lançamento do PHP 5.3, veio o suporte a namespaces, que possibilita montar funções de autoload mais sofisticadas, e baseadas na estrutura hierárquica de diretórios (semelhante à linguagem Java, com utilização de pacotes).

De forma semelhante, o diretório de módulos (diretório onde ficam os arquivos acessíveis pela Web) pode ser dividido hierarquicamente. Por exemplo, existir um módulo chamado "categorias", que possui os arquivos "index.php", "exibir.php", "inserir.php", "alterar.php" e "excluir.php" (nomes auto-explicativos). Dentro deste módulo, pode existir um submódulo chamado "livros". Neste submódulo, poderiam ter arquivos com os mesmos nomes que o anterior, só que trabalhariam com os livros de determinada "categoria".

Criar um diretório de temas é interessante para aplicações que pretendem dar este tipo de suporte. É, no entanto, uma boa prática separar código HTML de estilos, independentemente da questão do suporte a múltiplos temas.

Comentários:

Mostrando 1 - 10 de 11 comentários
AndersonSilva disse:
Ótimo Artigo sobre hiarquia, estou aprendendo sobre o mesmo e estou postando todos os conteudos da faculdade no site http://www.baixafree.com.br
Obrigado!!!!
20/01/2013 4:42am (~3 anos atrás)

Marcos disse:
a idéia é usar MVC, no entanto, acredito que os Frameworks lhe deixam limitados a ele.Interessante escrever o próprio Framework, fica mais ao seu gosto.
01/01/2013 5:35pm (~3 anos atrás)

Jefrey disse:
para ajudar eu faço um mapa mental com o mindmeister.com e coloco em ordem os ítens do site.
09/12/2010 8:06pm (~6 anos atrás)

Jefrey disse:
para ajudar eu faço um mapa mental com o mindmeister.com e coloco em ordem os ítens do site.
09/12/2010 8:06pm (~6 anos atrás)

Marcelo Iwata disse:
Legal..
Recomendo a quem quer esmiuçar o MVC sob a perspectiva de um Gerenciador de Conteúdo estude a estrutura do Joomla e seus módulos e componentes.
09/12/2010 3:51pm (~6 anos atrás)

PARABÉNS E COMO O COLEGA FALOU, ME LEMBRA OS MEUS PRIMEIROS PROJETOS NA FACULDADE.
04/12/2010 6:22pm (~6 anos atrás)

Luiz Tarabal disse:
Muito bom o artigo.
25/11/2010 2:23am (~6 anos atrás)

Amigo, muito explicativo o artigo, parabéns pela iniciativa!
18/11/2010 4:57pm (~6 anos atrás)

Muito bacana. E é engraçado quando eu li as suas primeiras palavras e lembrei dos meus primeiros sistemas, meses atrás, com absolutamente tudo jogado numa pasta qualquer.
17/11/2010 12:27am (~6 anos atrás)

Excelente artigo, parabéns
15/11/2010 11:48am (~6 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)