- Sí, las aplicaciones web son diferentes a los sitios web
Los trataría por separado. Si tiene una parte de su sitio que es simplemente una colección de documentos (que se ve igual para usuarios anónimos y usuarios registrados), entonces el mejor método para estructurarlo es muy diferente de una aplicación web que sirve páginas dinámicamente diferentes a cada usuario Divida esas dos partes del sitio en dos aplicaciones / componentes y aborde cada parte de manera diferente.
- Comience a usar el control de versiones
Una vez que su código esté bajo el control de la versión, puede pasar y, con confianza, eliminar todo el código innecesario que había guardado 'por si acaso', etc. No sé cómo sobreviví sin el control de la versión.
Si cuatro URL diferentes apuntan al mismo recurso, entonces el problema es mucho mayor. Terminas lidiando con una cantidad infinita de URL. Tan pronto como pueda, asegúrese de tener una política de normalización de URL. Una vez hecho esto, puede comenzar a adjuntar significados semánticos a las URL y poder realizar búsquedas inversas de recurso a URL. Esto le permite separar la 'impresión web' de los 'recursos' del sitio.
Tienes que preguntarte, "dada una url, ¿cuál es su forma normalizada?". Una vez que tengas esto anclado. Luego, más de 50,0000 URL en su sitio pueden reducirse a 2,000. lo cual es mucho más fácil de comprender y manejar en tu mente.
ver: http://www.sugarrae.com/be-a-normalizer-a-c14n-exterminator/
- Comience modelando 'lo que es', no 'lo que quiere que sea'
Si está ordenando un sitio heredado, que no fue diseñado teniendo en cuenta las mejores prácticas desde el principio, entonces es tentador pasar de "un desastre" al "diseño ideal". Creo que debe hacerlo al menos en dos pasos: 'desorden' -> 'código heredado bien modelado' -> 'código nuevo ideal con características adicionales'. Deja de agregar funciones. Concéntrese en arreglar el desastre o encapsularlo detrás de una capa anticorrupción. Solo entonces, puede comenzar a cambiar el diseño en algo mejor.
Ver: http://www.joelonsoftware.com/articles/fog0000000069.html
Ver: http://www.laputan.org/mud/
- Ponerlo a prueba es una buena idea.
Cree un conjunto de pruebas / marco y comience a agregar pruebas. Pero, es bastante difícil probar algún código heredado. Por lo tanto, no te obsesiones demasiado con eso. Mientras tenga el marco allí, puede agregar pruebas poco a poco.
Ver: http://www.simpletest.org/en/web_tester_documentation.html
- Ten coraje en tus convicciones
La mayor parte de la literatura sobre las mejores prácticas de desarrollo de software está centrada en el escritorio / Enterprise App Centric. Mientras su sitio está en un desastre, lee estos libros y puede asombrarle la sabiduría que emana de ellos. Pero, no olvide que la mayor parte de esta mejor práctica se ha acumulado en tiempos anteriores a la importancia de la web / SEO. Sabe mucho sobre la web moderna, más de lo que se menciona en libros clásicos como POEA, Gof, etc. Hay mucho que aprender de ellos, pero no descarte por completo su propia experiencia y conocimiento.
Podría seguir. Pero esas son algunas cosas que he elegido al refactorizar un antiguo sitio heredado en uno nuevo y brillante.