Pregunta

Estoy en un punto en mi carrera independiente, donde he desarrollado varias aplicaciones web para pequeñas y medianas empresas que apoyan a las cosas tales como administración de proyectos, de reservas y gestión de correo electrónico.

Me gusta el trabajo pero que con el tiempo, mis aplicaciones de llegar a un punto donde la escucha de mantenimiento es muy alto.Vuelvo a mirar el código que escribí hace 6 meses y parece que tienen para pasar un rato acaba de aprender que originalmente codificado antes de que pueda hacer una revisión o característica de ganancia.Yo trato de practicar el uso de marcos (yo he utilizado Zend Framework antes, y estoy considerando Django para mi próximo proyecto)

¿Qué técnicas o estrategias que se usan para planificar una aplicación que es capaz de manejar una gran cantidad de usuarios sin romper y todavía mantener el código limpio suficiente para mantener fácilmente?Si alguien tiene los libros o artículos que podría recomendar, que sería muy apreciado también.

¿Fue útil?

Solución

Aunque sin duda hay buenos artículos sobre el tema, ninguno de ellos es un sustituto de la experiencia del mundo real.

El mantenimiento no es nada que usted puede planear en línea recta, excepto en muy pequeños proyectos.Esto es algo que usted necesita tomar el cuidado de durante todo el proyecto.De hecho, la creación de las cargas de las clases y el código de infraestructura en adelante se puede producir código que es aún más difícil de entender que ingenuo código espagueti.

Así que mi consejo es limpiar los proyectos existentes, por continuamente la refactorización de ellos.Mirar las partes que fueron un dolor de cambio, y se esfuerzan por soluciones más sencillas que son fáciles de entender y ajustar.Si el código es aún demasiado malo para que, considere la posibilidad de reescribir desde cero.

No iniciar nuevos proyectos y esperamos que tenga éxito, simplemente porque su leer más artículos o utiliza un nuevo marco.En su lugar, identificar los errores de su existente proyectos y fijar sus específicos problemas.Cuando usted necesita para cambiar su código, pregúntate a ti mismo cómo reestructurar a los cambios de apoyo similar en el futuro.Esto es lo que usted necesita para hacer de todos modos, porque no se ser cambios similares en el futuro.

Haciendo los refactorings caerás a través de diversas preguntas específicas usted puede preguntar y leer artículos sobre.De esa manera vas a aprender más de lo que apenas haciendo preguntas generales y de la lectura de artículos generales sobre el mantenimiento y marcos.

Empezar la limpieza de su código hoy.No ceden a sus proyectos a futuro.


(Lo mismo es cierto para la documentación.Todo el mundo la primera docs eran muy malas.Después de varios meses de llegar a ser demasiado detallado y lleno de cosas sin importancia.Para complementar la documentación con soluciones a los problemas que realmente había, porque hay buenas posibilidades de que el próximo año se le enfrenta con un problema similar.De esas experiencias que va a mejorar su estilo de escritura más que a cualquier "cómo escribir una buena" guía de estilo.)

Otros consejos

Me gustaría sinceramente recomiendo mirar a Martin Fowlers Los patrones de Arquitectura de Aplicaciones Empresariales.Se discute de un montón de maneras de hacer su aplicación más organizado y fácil de mantener.Además, me gustaría recomendar el uso de pruebas de unidad para darle una mejor comprensión de su código.Kent Beck, el libro de Test Driven Development es un gran recurso para el aprendizaje de cómo el cambio de dirección de su código a través de pruebas de unidad.

Para mejorar la mantenibilidad usted puede:

  • Si usted es el único desarrollador, a continuación, adoptar un estilo de codificación y se adhieren a ella.Que te dará confianza, más tarde, cuando la navegación a través de su propio código sobre las cosas que podría haber posiblemente hecho y de las cosas que absolutamente no.Está seguro de dónde buscar y qué buscar y qué no busque usted va a ahorrar un montón de tiempo.

  • Siempre tómese el tiempo para traer la documentación hasta la fecha.Incluir la tarea en el plan de desarrollo;incluir ese tiempo en el plan, como parte de cualquier cambio o nueva característica.

  • Mantener la documentación equilibrada:algunos de alto nivel de los diagramas, los comentarios significativos.Mejores comentarios que dicen que no se puede leer desde el propio código.Como razones de negocios o "por qué" detrás de ciertos fragmentos de código.

  • Incluir en el plan el esfuerzo para mantener la estructura del código, nombres de carpeta, espacios de nombres, objetos, variables y nombres de rutina hasta la fecha y una reflexión de lo que realmente hacen.Esto va un largo camino en la mejora de la mantenibilidad.Siempre llame a un pala "pala".Evitar grandes fragmentos de código, la estructura por los medios disponibles en su idioma de preferencia, dar trozos de nombres significativos.

  • Bajo acoplamiento y alta coherencia.Asegúrese de que hasta la fecha, con las técnicas de la consecución de estos:diseño por contrato, la inyección de dependencia, aspectos que, patrones de diseño, etc.

  • De la tarea de gestión de punto de vista se debe estimar más el tiempo y la carga de la mayor tasa de no-continuo de piezas de trabajo.No dude en hacer que el cliente consciente de que necesitará más tiempo para hacer pequeños no-continuos cambios propaga a través del tiempo como contraposición a la más grande continuo de los proyectos y el mantenimiento continuo desde la administración y el análisis de sobrecarga es mayor (en el que usted necesita para administrar y analizar cada uno de los cambios incluidos los efectos sobre el sistema existente por separado).Uno de los beneficios de su cliente va a obtener es mayor esperanza de vida del sistema.El otro es precisa la documentación que se conserve su opción de buscar la ayuda de alguien más si deciden hacerlo.Tanto para proteger a los clientes de la inversión y son fuertes en puntos de venta.

  • El uso de control de código fuente si no es que ya

  • Mantener un registro detallado de todo lo realizado por el cliente, además de cualquier medio de comunicación importante (un simple ordenador o base de papel de la CMS).Refrescar la memoria antes de cada asignación.

  • Mantener un registro de los temas que quedaron pendientes, ideas, sugerencias por cliente;de nuevo refrescar la memoria antes de comenzar una tarea.

  • Planear con anticipación cómo el poste de apoyo para la aplicación va a ser llevada a cabo, discutir con el cliente.Hacer que sus sistemas son fáciles de mantener.Plan para la parametrización, herramientas de monitoreo, de-construir las comprobaciones de estado.Vender post-apoyo a la ejecución del cliente como parte del contrato inicial.

  • Expanda por la contratación, incluso si usted necesita a alguien sólo para proporcionar post-apoyo a la ejecución, hacer el admin bits.

Se recomienda la lectura de:

El consejo más importante que puedo dar, habiendo ayudado a crecer un viejo aplicación web en un muy alto disponible, la alta demanda de la aplicación web es encapsular todo. - en particular,

  1. El uso de buen MVC principios y marcos para separar la capa de la vista de su lógica de negocio y modelo de datos.
  2. El uso de una sólida persistencia de la capa para no par su lógica de negocio para su modelo de datos
  3. Plan para la apatridia y asincrónica comportamiento.

Aquí hay un excelente artículo sobre cómo eBay aborda estos problemas http://www.infoq.com/articles/ebay-scalability-best-practices

  1. Utilizar un framework / MVC sistema.El más organizado y centralizado que su código es el mejor.

  2. Trate de usar Memcache.PHP tiene una construida en la extensión para la que, se tarda unos diez minutos para configurar y otros veinte para poner en su aplicación.Puedes guardar lo que quieras, ¡me cache a todos mis registros de base de datos en la que - para cada aplicación.No vaga.

  3. Me gustaría recomendar el uso de un sistema de control de origen, tales como la Subversión si usted no lo ha hecho.

Usted debería considerar la posibilidad de que tal vez el uso de SharePoint.Es un entorno que ya está diseñado para hacer todo lo que he mencionado, y tiene muchas otras características que tal vez no han pensado (pero tal vez usted va a necesitar en el futuro :-) )

Aquí's algo de información desde el sitio oficial.
Hay 2 diferentes entornos de SharePoint puede utilizar:Windows Sharepoint Services (WSS) o Microsoft Office Sharepoint Server (MOSS).WSS es gratuita y se incluye con Windows Server 2003, mientras que MOSS no es gratis, pero tiene mucho más características y cubre casi todo lo que la empresa necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top