Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rica mourao

Como re-estruturar um sistema web.?

Recommended Posts

Bom dia a todos, tudo bem?.

 

Gosto muito de web e já faz algum tempo que faço sites por hobby ou alguns "bicos".

Não sou expert no assunto mais vou me virando conforme preciso fazer projetos.

 

Conheço algumas ferramentas e linguagens de programação no nível básico (Dreamweaver, Fireworks, Html, Css, ASP, PHP e Mysql).

Estou cursando faculdade de tecnologia de redes e não conheço muita programação web, porém tenho muito interesse nessa área e vi que é uma área muito promissora.

 

Atualmente estou trabalhando em uma empresa de telecomunicações e desenvolvi um sistema em php utilizado na intranet, esse sistema controla as nfs conferidas pelos faturistas (registro de nfs corretas ou nfs com problema).

 

Desenvolvi esse sistema com os conhecimentos básicos que tenho, e fiquei surpreso com sua expansão (atualmente quase 100 pessoas estão utilizando o mesmo), o mesmo possui diversos módulos (administração, gerencia e faturamento).

 

A questão é como desenvolvi o sistema sem metodologias especificas (tais como UML, nao conheço outras rsrs) e sem estruturação , a cada dia que passa recebo pedidos de melhorias e implementações de novas funcionalidades, mais cobrança por deixar o sistema rápido e confiável.

 

Como o projeto vem crescendo futuramente outros programadores irão me ajudar, porém antes disso preciso fazer uma restruturação para ter uma visão geral do sistema e prepará-lo para ser atualizado constantemente, otimizar o desempenho, restruturar o banco de dados.

 

Pessoal queria uma luz do que devo fazer para organizar todo o sistema já que não conheço o dia a dia de uma equipe de programadores e não sei o que se usa para fazer isso (tenho medo de ficar perdido no projeto).

Atualmente o que faço para melhorar meu trabalho é identar o código e comentar o mesmo.

Não fiz fluxogramas (fiz esboços em papél sobre os fluxos que sigo atualmente), também não trabalho com teste de mesa (vou fazendo esboços no papel e quebrando a cabeça para encontrar o erro).

 

Preciso entrar na linha para fazer as coisas melhorarem rsrs, em outras palavras preciso de uma ajuda da galera mais experiente.

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, o que vou lhe passar é o que aprendi com minha própria experiência, mas, neste tema não há verdade absoluta, cada desenvolvedor ou equipe trabalha da forma que se sentir mais confortável.

 

o primeiro passo é justamente a identação, que você já está fazendo, mas não somente esta como também comentar as rotinas desenvolvidas por você.

Imagine que agora, ao bater o olho no código, você lembra de bate-pronto o motivo de cada variável que está lá, mas, imagina outro programador que não acompanhou a construção vendo o mesmo código?

 

O ideal é que seu sistema seja dividido em módulos, estes devem estar bem claros pra você ou qualquer outra pessoa que tenha contato com seu código,

Desenhar seus módulos e o relacionamento entre eles em um papel lhe ajudará a ter uma visão macro de como tudo se relaciona.

 

Por exemplo, colocar no papel em forma de fluxograma que, ao ser feita uma compra no módulo de compras de mercadorias, uma nova conta deve ser adicionada ao módulo de contas a pagar. Ao efetuar uma venda, uma nova conta deve ser incluida no módulo de contas a receber, e assim por diante. Estes são os relacionamentos entre os módulos.

 

Com relação a organização do código em específico, uma prática que gosto de seguir em ASP é dividir meus módulos em pastas, exemplo:

 

[root]

[root]/Administracao

[root]/Faturamento

[root]/Compras

[root]/Vendas

 

etc...

 

dentro de cada pasta, tenho as pastas:

 

[root]/Administracao/css

[root]/Administracao/js

[root]/Administracao/images

[root]/Administracao/ajax

 

etc...

 

qualquer item que esteja amarrado intimamente a este módulo, eu separo nestas pastas. Estilos de CSS, rotinas de javascript, etc...

 

Qual o benefício disso?

 

Quando eu quiser levar este módulo para outro sistema, apenas copio a pasta Administração, para o novo local e ela já estará quase que completamente integrada.

 

Não sei se esclareci suas dúvidas, tenho muito mais a falar, mas, para que este post não fique massivo e cansativo de ler, vou interromper por aqui, fico a disposição. :)

 

 

Atenciosamente,

 

Anderson Schmitt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Anderson,

 

Primeiro gostaria de agrader sua boa vontade de compartilhar sua experiência conosco.

 

Por enquanto estou empenhado no desenvolvimento desse sistema que criei, estou me redobrando e organizando tudo o já foi criado (tenho que dividir o tempo entre verificar bugs, treinar usuarios e criar novas funções).

 

Falando sobre a parte técnica, acredito que a identação ajuda muito quando preciso verificar problemas no código, o problema que faz eu perder tempo as vezes é quando preciso editar algum elemento gráfico no Dreweaver, ex preciso alterar uma imagem de posição na tabela.

O Dreamweaver destrói parte da identação da página, você conhece alguma maneira de resolver esse problema?.

 

Sobre os comentários,tento deixar o código mais compreensível e comentado possível, acredito que qualquer pessoa que ler o código será capaz de continuar o trabalho.

 

Voltando para a parte conceitual, como você documenta o desenvolvimento do seus projetos?.

 

Já os fluxogramas, eles realmente ajudam a ter uma visão geral sobre o sistema.

Como o sistema está ficando muito grande estou desenhando os fluxos no visio (está dando um trabalhinho rsrs).

 

Achei legal a idéia de colocar dentro de uma mesma pasta (ex: /administracao) todos os scripts importantes para aquele módulo, vou começar adotar isso como regra.

 

Outra idéia interessante que estou adotando é separar uma pasta chamada biblioteca, nela guardo todas as funções pré-formatadas e prontas para usar, isso faz com que ganhe velocidade no desenvolvimento.

 

E quanto ao banco de dados? Como você organiza o projeto do banco? você cria fluxograma MER ?

 

Mais uma vez agradeço pela ajuda e espero que esse tópico possa ajudar mais pessoas que estão com dificuldade.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Rica, tudo bom?

Desculpe a demora, a notificação de novas mensagens do forum havia caido na minha caixa de spam. :)

 

Quanto ao problema do Dreamweaver, este é realmente um problemão.

Eu, particularmente, não uso a parte visual do DW, uso só a Code. Quando crio ou edito elementos, edito direto no código, mas conheço poucos programadores que são como eu. Por conta disso, não sei como resolver este problema de identação do DW. :(

 

Que ótimo que você se preocupa em comentar e identar o código, é uma ótima iniciativa. No começo pode parecer meio chato, mas depois você acostuma e não consegue mais escrever código sem identação e comentários. Me dá até agonia quando pego código hoje em dia em que todas as linhas começam na coluna 1. hahaha

 

Eu faço meus fluxogramas geralmente no papel, como esboço, é rápido e simples de apresentar a idéia para o cliente, e ter elementos visuais desenhados numa folha de papel, por mais simples que possa parecer, faz o cliente seguir a mesma linha de raciocínio que você, evitando que ele viaje pensando em algo completamente diferente, ou pior ainda, evitando que ele não entenda nada do que você está falando.

Saindo da reunião, lanço o fluxograma no Visio.

Tenho costume também de imprimir e deixar todos os fluxogramas que tenho juntos em uma pastinha exclusiva para cada cliente (juntamente com e-mails importantes como orçamentos aprovados e homologações de projetos ou qualquer outro documento que o cliente tenha enviado).

 

Esta idéia da biblioteca também é muito interessante, eu sigo este mesmo padrão, tenho um include ASP com todas as funções comuns a todos os projetos, funções de data, moeda, acesso a dados, etc...

 

Quanto a documentação de banco de dados, quando estou no SQL Server, uso os diagramas do próprio SQL Server para fazer a documentação. Além de ter o retorno visual de como o banco de dados se integra, posso criar regras sobre como cada relacionamento se comporta, por exemplo:

- Posso decidir por excluir itens em cascata em um determinado projeto, isso significa que, se eu apagar a marca Chevrolet da tabela MARCAS, todos os carros da tabela CARROS que sejam da marca Chevrolet serão apagados em cascata sem nenhum comando adicional.

 

- Posso decidir inserir [NULL] em todos os filhos quando o pai for excluído, isso significa que, se eu apagar a marca Chevrolet da tabela MARCAS, todos os carros da tabela CARROS que sejam da marca Chevrolet terão a coluna ID_Marca alterada para [NULL].

 

- Posso decidir por impedir a exclusão caso hajam filhos, neste caso, o banco de dados não permitirá a exclusão da marca Chevrolet, enquanto houverem carros vinculados à esta marca na tabela CARROS. Neste caso, ou a marca, uma vez criada, e tendo carros vinculados, não poderá mais ser apagada, ou os carros vinculados à esta marca deverão ser apagados primeiro, para só depois excluir a marca.

 

Interessante, não? eu babei quando descobri esses recursos do SQL Server.

 

 

 

Fico a disposição Rica, qualquer coisa só dar um grito. :)

 

Atenciosamente,

 

Anderson Schmitt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow muito bom esse topico, acho que o problema de rica seja o problema de muita gente.. Hoje trabalho com suporte e desenvolvo apenas meus sistemas para aprender.. E concerteza pegar um codigo que não tenha nenhuma identação e comentarios é complicado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.