Como siempre digo, los mayores desafíos del desarrollo web son el rendimiento, la escalabilidad y la seguridad. Esto se aplica no solo a su sitio web, sino también a su base de código. Hablemos de algunas técnicas comúnmente utilizadas hoy para resolver estos problemas.
Así que ha terminado la primera versión de su sitio web, y se ejecuta como basura. Lo más probable es que estés haciendo cosas muy complicadas o que estés haciendo cosas de una manera muy complicada. En la mayoría de los casos, es el último. Considere otro escenario: ha hecho un gran trabajo y ha lanzado un sitio web decente. A la gente le encanta y lo recomiendan a sus amigos. Pasan pocas semanas, y comienzas a notar que tu sitio web se está volviendo más lento para responder, a veces muriendo directamente por solicitud de página. En ambos casos, tiene un problema de rendimiento. Identifique dónde están los cuellos de botella en su sistema.
PHP tiene excelentes herramientas de creación de perfiles como Xdebug y webgrind. Este último proporciona visualización basada en la web mediante la implementación de un subconjunto de características de KcacheGrind.
- ¿Cuál es la mejor empresa de desarrollo de ASP.NET en Canadá?
- ¿Cómo cambio el texto y el estilo de un elemento de entrada del archivo de carga HTML?
- ¿Cuál es la mejor manera de obtener precios de hotel a través de API?
- ¿Es posible migrar un sitio web hecho en Squarespace a Weebly?
- ¿Cuál es la mejor manera de organizar muchos archivos HTML-CSS? Estoy haciendo un sitio web con alrededor de 8 páginas y estoy haciendo un archivo CSS para cada archivo HTML. ¿Eso es normal? ¿Qué es una buena estructura de carpetas?
Con JavaScript, la creación de perfiles es aún más fácil ya que está integrada en todas las herramientas de desarrollo web de los navegadores populares: Firebug, herramientas de desarrollador de Chrome, herramientas de desarrollador de IE.
Y en cuanto al sitio web en su conjunto, existen herramientas de análisis como PageSpeed e YSlow para ayudarlo con la optimización de su sitio web.
Después de ejecutar algunas herramientas de creación de perfiles, puede sacar algunas conclusiones:
¿Su sitio web pasa demasiado tiempo haciendo operaciones que consumen mucho tiempo en el lado del servidor, como cálculos complejos o costosas consultas de bases de datos? Considere mecanismos de almacenamiento en caché como Redis o memcached.
¿Su sitio web está haciendo demasiadas solicitudes al servidor? Encuentre una manera de minimizar las solicitudes del servidor. Para JavaScript y CSS, minimícelos y conéctelos con herramientas como RequireJS. Para los recursos de imagen, considere CSS Sprites. Para activos estáticos en general, considere alojar sus archivos en CDN.
¿Su sitio web pasa demasiado tiempo haciendo cálculos en el navegador? Lee un poco: JavaScript: Las partes buenas, los secretos del JavaScript Ninja.
Pasemos a un tema más amplio y hablemos sobre la arquitectura del sitio web y la escalabilidad de la base de código.
Como con cualquier proyecto de software, a medida que se vuelve más complejo, se vuelve más difícil de administrar. Las nuevas características son más difíciles de implementar y los errores más difíciles de corregir. Es por eso que siempre es una buena idea pensar en la arquitectura de su sitio web antes de comenzar a escribirlo. Estoy hablando de patrones de diseño. Los patrones de diseño proporcionan abstracción y consistencia, especialmente cuando se trabaja con otros programadores. Simplemente puede decir: “Oye, usemos el patrón de módulo para JavaScript”, y todos sabrán de qué están hablando.
Primera decisión: ¿Aplicación de una página o no? Esta decisión influirá en gran medida en cómo elige el resto de su pila de tecnología.
Segunda decisión: ¿Cómo estructurar su base de código de una manera clara e intuitiva? MVC es un enfoque popular, aunque caótico. Los diferentes marcos tienen sus propias interpretaciones sobre lo que constituye MVC. Verifique TodoMVC y vea cuál le queda mejor.
Tercera decisión: ¿Prueba de unidad o no? Sí, deberías totalmente. phpunit y Jasmine son marcos de prueba de unidad populares para PHP y JavaScript, respectivamente. Aprenderlos, amarlos.
Cuarta decisión: ¿Cómo implementar su proyecto? Con todas las tecnologías disponibles hoy en día, hay muchas tareas de preprocesamiento que hacer. Escribir CoffeeScript requerirá que lo compiles en JavaScript. Escribir MENOS / Sass requerirá que lo compiles a CSS. Concatenación y minificación de JavaScript y CSS. Calidad verifique su JavaScript con JSHint o JSLint. Ejecute la prueba unitaria al menos una vez antes de la implementación. Esas son MUCHAS tareas para hacer manualmente, use un corredor de tareas como gruñido.
Espero que esta respuesta te haya sido útil.