Qué puede evaluarse
RA1: Selecciona las arquitecturas y tecnologías de programación Web en entorno servidor, analizando sus capacidades y características propias.
Cliente WebServidor WebEjecución en clienteEjecución en servidorGeneración dinámica de páginasContenido estáticoAPI RESTMotor de plantillasCGIFastCGI
RA2: Escribe sentencias ejecutables por un servidor Web reconociendo y aplicando procedimientos de integración del código en lenguajes de marcas.
Servidor WebIntérprete/Motor de ejecuciónContenido estático vs. dinámicoLenguajes de marcas con código embebidoCiclo de vida de una petición dinámicaEtiquetas de inclusión de códigoDelimitadores de código de servidorSintaxis del lenguajeSentenciaComentario
RA3: Escribe bloques de sentencias embebidos en lenguajes de marcas, seleccionando y utilizando las estructuras de programación.
Programación embebidaEstructuras de decisiónif/else/elseifswitchComentarios de códigoGeneración dinámica de contenidoBucles (for, while, do-while, foreach)Arrays (indexados, asociativos, multidimensionales)IteraciónColecciones de datos
RA4: Desarrolla aplicaciones Web embebidas en lenguajes de marcas analizando e incorporando funcionalidades según especificaciones.
HTTP StatelessEstado de la aplicaciónCookiesSesionesWeb StorageQuery StringHidden Fieldssession_start()$_SESSIONsession_destroy()
RA5: Desarrolla aplicaciones Web identificando y aplicando mecanismos para separar el código de presentación de la lógica de negocio.
Separación de Intereses (SoC)Lógica de NegocioLógica de PresentaciónMantenibilidadReusabilidadModelo-Vista-Controlador (MVC)Arquitectura en CapasMotor de PlantillasAPI RESTfulControles de Servidor
RA6: Desarrolla aplicaciones de acceso a almacenes de datos, aplicando medidas para mantener la seguridad y la integridad de la información.
API de acceso a datosORM (Object-Relational Mapping)Bases de datos relacionales (SQL)Bases de datos NoSQLDrivers de base de datosConexión a base de datosCadena de conexiónPool de conexionesDataReader/ResultSetConsultas parametrizadas
RA7: Desarrolla servicios Web analizando su funcionamiento e implantando la estructura de sus componentes.
Servicio WebAPIInteroperabilidadAcoplamiento débilLógica de negocioReutilizaciónEscalabilidadSOAPRESTWSDL
RA8: Genera páginas Web dinámicas analizando y utilizando tecnologías del servidor Web que añadan código al lenguaje de marcas.
Cliente WebServidor WebJavaScriptHTMLCSSLógica de NegocioBase de DatosPeticiones HTTPDOMPHP
RA9: Desarrolla aplicaciones Web híbridas seleccionando y utilizando librerías de código y repositorios heterogéneos de información.
Aplicación web híbridaReutilización de códigoAprovechamiento de informaciónLibrería de códigoAPI (Application Programming Interface)FrameworkAPI RESTfulEndpointPetición HTTP asíncronaCabeceras HTTP y autenticación
Trampas habituales antes del examen
- Confundir JavaScript de frontend con JavaScript de backend: El JavaScript que se ejecuta en el navegador es para interactividad de la UI; el JavaScript que se ejecuta en el servidor (Node.js) es para lógica de negocio y acceso a datos. Causa: No entender el contexto de ejecución. Corrección: Identificar claramente dónde se ejecuta el código y qué recursos tiene disponibles en ese entorno.
- Creer que todo el contenido web es estático o pregenerado: Pensar que cada página HTML existe como un archivo físico en el servidor. Causa: Falta de comprensión sobre cómo los lenguajes de servidor construyen HTML en tiempo real. Corrección: Entender que el servidor puede ensamblar HTML a partir de plantillas y datos antes de enviarlo.
- Confundir un servidor web con un servidor de aplicaciones: pensar que Apache o Nginx pueden ejecutar directamente código Java EE, Python o PHP sin ningún componente adicional. Causa: no entender la especialización de cada tipo de servidor. Corrección: reconocer que el servidor web gestiona HTTP y estáticos, mientras que el servidor de aplicaciones (o el intérprete embebido/con protocolo dedicado) proporciona el entorno de ejecución de la lógica de negocio.
- Clasificar como 'módulo embebido' cualquier proceso que ejecute código de aplicación: pensar que uWSGI, Gunicorn o PHP-FPM comparten el mismo espacio de memoria que el servidor web, igual que mod_php. Causa: no distinguir entre integración directa en el proceso (módulo embebido) e integración vía protocolo con un proceso independiente. Corrección: recordar que uWSGI/Gunicorn/PHP-FPM son procesos separados a los que el servidor web reenvía peticiones, ofreciendo mayor aislamiento a costa de una comunicación adicional entre procesos.
- Desconocer la ineficiencia de CGI puro: usar CGI para aplicaciones de alto tráfico. Causa: falta de conocimiento sobre la sobrecarga de crear un proceso por petición. Corrección: optar por FastCGI, servidores de aplicación con protocolo dedicado o servidores embebidos para mejorar el rendimiento.
- Elegir un lenguaje/framework sin considerar los requisitos del proyecto: Usar Node.js para una aplicación con cálculos intensivos o Java para un microservicio simple. Causa: Desconocimiento de las fortalezas y debilidades de cada tecnología. Corrección: Analizar el tipo de aplicación (API, CMS, tiempo real), el rendimiento requerido, la escalabilidad y la experiencia del equipo.
- No usar un gestor de dependencias: Descargar librerías manualmente y copiarlas al proyecto. Causa: Desconocimiento de las buenas prácticas o pereza. Corrección: Siempre usar gestores como npm, pip o Composer para asegurar versiones correctas, facilitar actualizaciones y reproducibilidad del entorno.
- Ignorar la importancia de un buen IDE y debugger: Intentar depurar con 'print' o 'console.log' en lugar de usar un depurador. Causa: Falta de familiaridad con las herramientas profesionales. Corrección: Invertir tiempo en aprender a usar las funciones avanzadas del IDE y el depurador para aumentar la productividad y la calidad del código.
- Confundir el procesamiento del servidor con el del cliente: Un error común es pensar que el código PHP o ASP.NET se ejecuta en el navegador. Causa: Falta de comprensión del modelo cliente-servidor. Corrección: Recordar que el navegador solo recibe y renderiza HTML, CSS y JavaScript; el código de servidor ya ha sido procesado antes de llegar al cliente.
- No configurar correctamente el servidor para el lenguaje: Intentar ejecutar un archivo .php sin tener un intérprete PHP configurado en el servidor web. Causa: Desconocimiento de la necesidad de un entorno de ejecución específico. Corrección: Asegurarse de que el servidor web (ej. Apache) tiene el módulo o el FastCGI configurado para el lenguaje de servidor que se va a utilizar.
- Errores de sintaxis básicos: Olvidar un punto y coma, una llave de cierre o usar mayúsculas/minúsculas incorrectas en nombres de variables o funciones. Causa: Descuido o falta de familiaridad con las reglas del lenguaje. Corrección: Prestar atención a los mensajes de error del intérprete (que suelen indicar la línea y el tipo de error) y usar un IDE con resaltado de sintaxis.
- No usar las etiquetas de inclusión correctas: Intentar escribir código PHP sin las etiquetas `<?php ?>`. Causa: Desconocimiento de los delimitadores específicos del lenguaje. Corrección: Consultar la documentación del lenguaje para las etiquetas de inclusión correctas y recordar que el servidor solo procesa lo que está dentro de ellas.