¿Cuáles son las técnicas más actualizadas utilizadas para crear sitios web?

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.

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.

Reconstruimos nuestro sitio web por completo hace un mes, porque queremos que se vea moderno y use las nuevas técnicas. En resumen, utilizamos Jekyll para generar el sitio, SaSS para CSS, AWS para la implementación, Pingdom para el monitoreo. También escribimos un blog sobre esto: Herramientas para construir un sitio web 2015

MVC es una forma estándar de crear una aplicación web que se pueda administrar fácilmente. Para el desarrollo rápido de sitios web, puede optar por MVC basado en framework como Zend framework o Symfony, ya que se están volviendo populares para el desarrollo rápido. Al pensar en construir una aplicación como Quora, Twitter o Facebook, debe tener una gran sesión de planificación y de romper el hielo. Este tipo de sitio web es fácil de desarrollar, pero una vez que crecieron en términos de tráfico, carga de usuarios y funciones, debe estar preparado para manejarlo de la noche a la mañana. Por lo tanto, antes de crear una aplicación web, debe planificar con anticipación la capacidad y la carga de trabajo que manejará su sitio en el futuro, según lo que planifique el método.