- Sim - os aplicativos da Web são diferentes dos sites
Eu os trataria separadamente. Se você tem uma parte do site que é simplesmente uma coleção de documentos (que são iguais para usuários anônimos e usuários logados) - então o melhor método de estruturação é muito diferente de um aplicativo Web que serve páginas dinamicamente diferentes para cada usuário. Divida essas duas partes do site em dois aplicativos / componentes e lide com cada parte de maneira diferente.
- Comece a usar o controle de versão
Uma vez que seu código está sob controle de versão, você pode passar e, com confiança, remover todo o código desnecessário que você mantinha anteriormente 'apenas por precaução' etc. etc. Não sei como sobrevivi sem o controle de versão.
Se quatro URLs diferentes apontam para o mesmo recurso, o problema é muito maior. Você acaba lidando com uma quantidade infinita de URLs. Assim que puder, verifique se você possui uma política de Normalização de URL. Feito isso, você pode começar a anexar significados semânticos aos URLs e poder fazer pesquisas inversas de recurso para URL. Isso permite que você separe a 'impressão da web' dos 'recursos' do site.
Você deve se perguntar: "dado um URL, qual é a sua forma normalizada?". Depois de ter fixado isso. Então, mais de 50.000 URLs no seu site podem ser reduzidos, ou seja, 2.000. o que é muito mais fácil de entender e gerenciar em sua mente.
consulte: http://www.sugarrae.com/be-a-normalizer-a-c14n-exterminator/
- Comece modelando 'o que é', não 'o que você quer que seja'
Se você estiver arrumando um site herdado, que não foi projetado com as melhores práticas em mente desde o início, é tentador pular de 'uma bagunça' para 'o design ideal'. Eu acredito que você precisa fazer isso em pelo menos duas etapas: 'mess' -> 'código legado bem modelado' -> 'novo código ideal com recursos adicionais'. Pare de adicionar recursos. Concentre-se em consertar a bagunça ou encapsulá-la atrás de uma camada anticorrupção. Só então, você pode começar a mudar o design para algo melhor.
Consulte: http://www.joelonsoftware.com/articles/fog0000000069.html
Veja: http://www.laputan.org/mud/
- Colocá-lo em teste é uma boa ideia.
Crie uma suíte / estrutura de teste e comece a adicionar testes. Mas, é bastante complicado testar algum código legado. Portanto, não fique muito pendurado nisso. Contanto que você tenha a estrutura lá, você pode adicionar testes pouco a pouco.
Veja: http://www.simpletest.org/en/web_tester_documentation.html
- Tenha coragem em suas convicções
A maior parte da literatura sobre as melhores práticas de desenvolvimento de software é centrada em desktop / Enterprise App Centric. Enquanto o site está em uma confusão, você lê esses livros e pode admirar a sabedoria que emana deles. Mas não esqueça que a maioria dessas práticas recomendadas foi acumulada em épocas anteriores à web / SEO se tornar importante. Você sabe muito sobre a web moderna, mais do que é mencionado em livros clássicos como POEA, Gof etc. Há muito o que tirar deles, mas não descarte completamente sua própria experiência e conhecimento.
Eu poderia continuar. Mas essas são algumas das coisas que escolhi ao refatorar um site antigo antigo para um novo e brilhante.