====== Desarrollo web back-end ====== Notas del curso **Desarrollo web back-end** del Clúster Tic de Galicia. * Horas: 60 * Fecha Inicio: 11/11/2024 * Fecha Fin: 13/12/2024 ===== Temario ===== Unidad 1: **Desarrollo del backend de aplicaciones utilizando PHP** - [[informatica:programacion:cursos:desarrollo_web_backend:introduccion_php|Introducción al lenguaje PHP]] - [[informatica:programacion:cursos:desarrollo_web_backend:integracion_php_aplicacion_web|Integración de PHP en una aplicación web]]. - [[informatica:programacion:cursos:desarrollo_web_backend:recepcion_envio_datos_entre_servidor_y_aplicacion_web|Recepción y envío de datos entre el servidor y la aplicación web]]. - [[informatica:programacion:cursos:desarrollo_web_backend:recepcion_envio_datos_entre_servidor_y_aplicacion_web:Programación orientada a objetos con PHP]]. Unidad 2: **Diseño y construcción de bases de datos relacionales** - [[informatica:programacion:cursos:desarrollo_web_backend:diseno_base_datos|Diseño de bases de datos]] - [[informatica:programacion:cursos:desarrollo_web_backend:construccion_base_datos|Construcción de bases de datos]] - [[informatica:programacion:cursos:desarrollo_web_backend:instrucciones_sql_acceder_base_datos|Instrucciones SQL para acceder a una base de datos]] - [[informatica:programacion:cursos:desarrollo_web_backend:integracion_base_datos_servicio_php|Integración de la base de datos con el servicio php]] - [[informatica:programacion:cursos:desarrollo_web_backend:competencias_transversales|Competencias transversales]] Unidad 3: **Frameworks Codelgniter** - [[informatica:programacion:cursos:desarrollo_web_backend:desarrollo_servicios_web_utilizando_framework_codeigniter|Desarrollo de servicios web utilizando el framework CodeIgniter]] - [[informatica:programacion:cursos:desarrollo_web_backend:frameworks_competencias_transversales|Competencias transversales]] Unidad 4: **Desarrollo de aplicaciones completas** - [[informatica:programacion:cursos:desarrollo_web_backend:desarrollo_frontend|Desarrollo del frontend]] - [[informatica:programacion:cursos:desarrollo_web_backend:desarrollo_backend_utilizando_patron_mvc|Desarrollo del backend utilizando el patrón MVC]] - [[informatica:programacion:cursos:desarrollo_web_backend:incorporacion_pasarelas_pago_paypal|Incorporación de pasarelas de pago Paypal]] - [[informatica:programacion:cursos:desarrollo_web_backend:incorporacion_libreria_dompdf_generar_documentos_descargables|Incorporación de la librería DOMPDF para generar documentos descargables]]. - [[informatica:programacion:cursos:desarrollo_web_backend:generacion_casos_prueba_plataforma|Generación de los casos de prueba de la plataforma]]. - [[informatica:programacion:cursos:desarrollo_web_backend:generacion_documentacion_tecnica_usuario|Generación de la documentación técnica y de usuario]]. - [[informatica:programacion:cursos:desarrollo_web_backend:despliegue_plataforma_servidor_cdmon|Despliegue de la plataforma en el servidor CDMON]] - [[informatica:programacion:cursos:desarrollo_web_backend:aplicaciones_completas_competencias_transversales|Competencias transversales]] ===== Cuestionarios ===== **El lenguaje PHP es conocido por ser difícil de aprender debido a su complejidad.** * Verdadero * Falso (**Correcto**) **¿Qué estructura de control de PHP se utiliza para realizar comparaciones entre diferentes valores?** * Switch * While * If (**Correcto**) * For **En PHP, las variables numéricas deben declararse antes de utilizarlas.** * Verdadero * Falso (**Correcto**) **Selecciona las estructuras de decisión en PHP. (Respuesta múltiple).** * If (**Correcto**) * For * Switch (**Correcto**) * If Else (**Correcto**) **¿Qué función se utiliza en PHP para contar el número de elementos de un array?** * ''array_slice()'' * ''array_pop()'' * ''array_merge()'' * ''count()'' (**Correcto**) **El bucle «FOR» en PHP se utiliza para repetir una acción un número conocido de veces.** * Verdadero (**Correcto**) * Falso **Selecciona las estructuras de bucles en PHP. (Respuesta múltiple).** * Switch * For (**Correcto**) * While (**Correcto**) * Do While (**Correcto**) **La función «fopen()» se utiliza en PHP para abrir archivos en diferentes modos de lectura y escritura.** * Verdadero (**Correcto**) * Falso **PHP no admite el uso de arrays multidimensionales.** * Verdadero * Falso (**Correcto**) **El lenguaje PHP es utilizado únicamente para el desarrollo del front-end de las aplicaciones web.** * Verdadero * Falso (**Correcto**) ==== Unidad 1 ==== **PHP puede gestionar el envío de correos electrónicos utilizando funciones integradas como ''mail()''.** * Verdadero. (**Correcto**) * Falso. **Las cookies en PHP se almacenan en el servidor del usuario.** * Verdadero. * Falso. (**Correcto**) **¿Cuál es el método que se utiliza en PHP para combinar dos arrays en uno solo?** * ''array_merge()''. (**Correcto**) * ''array_pop()''. * ''array_search()''. * ''array_push()''. **¿Cuál es el propósito de las funciones en PHP?** * Mostrar información en pantalla. * Agrupar un conjunto de acciones y ejecutarlas juntas. (**Correcto**) * Conectar con bases de datos. * Validar formularios. **¿Cuál es el propósito principal de las funciones en programación?** * Ejecutar código en orden aleatorio. * Simplificar el código y reducir la repetición. (**Correcto**) * Aumentar la complejidad del código. * Reescribir el mismo código repetidamente. **Un array en PHP es…** * Una estructura que almacena solo un valor. * Una estructura de datos que permite almacenar múltiples valores bajo un solo nombre. (**Correcto**) * Un valor único almacenado en una variable. * Un número único asignado a cada valor. **¿Qué función en PHP convierte una cadena de texto a minúsculas?** * ''strtoupper()''. * ''strtolower()''. (**Correcto**) * ''ucfirst()''. * ''trim()''. **¿Qué estructura en PHP se utiliza para capturar y manejar errores durante la ejecución del código?** * if...else. * while...do. * try...catch. (**Correcto**) * switch...case. **¿Cuál de las siguientes librerías de PHP se utiliza para enviar correos electrónicos con autenticación SMTP y soporte para archivos adjuntos?** * PDO. * PHPMailer. (**Correcto**) * Guzzle. * MySQLi. **Los traits en PHP permiten reutilizar fragmentos de código en múltiples clases, evitando la necesidad de herencia múltiple.** * Verdadero. (**Correcto**) * Falso. ==== Unidad 2 ==== **En una base de datos relacional, la información se organiza en tablas que se relacionan entre sí mediante claves.** * Verdadero. (**Correcto**) * Falso. **¿Cuál es la herramienta utilizada para crear diagramas entidad/relación en el diseño de bases de datos?** * PhpMyAdmin. * MySQL Workbench. * Draw.io. (**Correcto**) * XAMPP. **Selecciona las características de una relación «muchos a muchos» en una base de datos. (Respuesta múltiple).** * Se requiere una tabla intermedia. (**Correcto**) * Cada registro de una tabla puede estar relacionado con muchos registros de la otra. * No utiliza claves foráneas. * Cada tabla involucrada tiene su propia clave primaria. (**Correcto**) **¿Qué es la integridad referencial en una base de datos relacional?** * La capacidad de eliminar registros duplicados en una tabla. * La consistencia de los datos entre las tablas mediante el uso de claves foráneas. (**Correcto**) * La validación de entradas en los campos de una tabla. * La capacidad de realizar consultas complejas entre varias tablas. **La tercera forma normal (3FN) establece que una columna no debe depender de otra columna que no sea la clave primaria.** * Verdadero. (**Correcto**) * Falso. **¿Cuál de las siguientes herramientas es utilizada para construir bases de datos visualmente en MySQL?** * XAMPP. * PhpMyAdmin. * MySQL Workbench. (**Correcto**) * Node.js. **Las instrucciones DDL (Data Definition Language) permiten la creación, modificación y eliminación de objetos en una base de datos.** * Verdadero. (**Correcto**) * Falso. **¿Qué cláusula en SQL se utiliza para unir varias tablas relacionadas en una consulta?** * WHERE. * ORDER BY. * JOIN. (**Correcto**) * GROUP BY. **La cláusula «ON DELETE CASCADE» elimina automáticamente todas las filas relacionadas en tablas hijas cuando se elimina una fila en la tabla padre.** * Verdadero.nunciado de la pregunta * Falso. **¿Qué es una transacción en una base de datos relacional?** * Un índice de búsqueda rápida. * Una secuencia de operaciones que se ejecutan como una unidad indivisible. (**Correcto**) * Un sistema de copias de seguridad. * Una consulta múltiple. ==== Unidad 3 ==== **CodeIgniter es un framework de código abierto basado en PHP, conocido por su simplicidad y rendimiento.** * Verdadero. (**Correcto**) * Falso. **¿Qué patrón de diseño utiliza CodeIgniter para el desarrollo de aplicaciones web?** * Singleton. * Observer. * Modelo-Vista-Controlador (MVC). (**Correcto**) * Decorator. **Selecciona las convenciones de nomenclatura que deben seguir los archivos en CodeIgniter. (Respuesta múltiple).** * Los controladores deben tener nombres en función de su función. (**Correcto**) * Los modelos deben tener nombres aleatorios. * Las vistas deben ubicarse en la carpeta «application/views». (**Correcto**) * Los controladores no tienen restricciones de ubicación. **¿Qué carpeta contiene los controladores en CodeIgniter?** * models. * controllers. (**Correcto**) * views. * config. **En CodeIgniter, las llamadas asíncronas al servidor pueden realizarse mediante la tecnología AJAX.** * Verdadero. (**Correcto**) * Falso. **Los datos enviados desde un formulario en CodeIgniter pueden ser obtenidos mediante los métodos post() o get().** * Verdadero. (**Correcto**) * Falso. **¿Qué facilita la estructura de carpetas y la configuración de parámetros en CodeIgniter?** * La eliminación automática de archivos obsoletos. * La fácil organización de archivos y rápida navegación entre ellos. (**Correcto**) * La creación automática de bases de datos. * La reducción del tamaño de la aplicación. **En CodeIgniter, las vistas contienen la lógica de la aplicación y se encargan de procesar los datos.** * Verdadero. * Falso. (**Correcto**) **¿Qué se necesita para implementar llamadas asíncronas en una aplicación web de CodeIgniter?** * Utilizar HTML puro. * Integrar AJAX. (**Correcto**) * Definir reglas en el controlador. * Modificar las vistas. **CodeIgniter permite el uso de librerías externas y plugins para mejorar la funcionalidad de las aplicaciones.Enunciado de la pregunta** * Verdadero. (**Correcto**) * Falso. ==== Unidad 4 ==== **El frontend es la parte visual y de interacción de una aplicación web, donde los usuarios finales pueden interactuar con las funcionalidades de la aplicación.** * Verdadero. (**Correcto**) * Falso. **¿Qué tecnología es utilizada comúnmente para crear el frontend de una aplicación web?** * Node.js. * HTML, CSS y JavaScript. (**Correcto**) * Python. * SQL. **El framework Bootstrap permite crear interfaces de usuario que se adaptan a diferentes dispositivos y resoluciones.** * Verdadero. (**Correcto**) * Falso. **En el patrón MVC, el Modelo es responsable de la interacción con la base de datos y el manejo de datos.** * Verdadero. (**Correcto**) * Falso. **La librería DOMPDF permite generar archivos PDF a partir de vistas HTML en aplicaciones web.** * Verdadero. (**Correcto**) * Falso. **Selecciona las herramientas utilizadas para la generación de documentación técnica en proyectos PHP. (Respuesta múltiple).** * PHPDocumentor. (**Correcto**) * Composer. * Doxygen. (**Correcto**) * Packagist. **Las pruebas automatizadas se pueden realizar utilizando herramientas como Selenium WebDriver.** * Verdadero. (**Correcto**) * Falso. **¿Qué técnica de pruebas se utiliza para explorar manualmente una aplicación en busca de errores?** * Unit Testing. * Prueba exploratoria. (**Correcto**) * Regresión. * Selenium. **El despliegue de una aplicación en un servidor web es el paso final antes de ponerla en producción para los usuarios.** * Verdadero. (**Correcto**) * Falso. **¿Qué herramientas son comúnmente utilizadas para transferir archivos a un servidor durante el despliegue de una aplicación? (Respuesta múltiple).** * Git. * FileZilla. (**Correcto**) * Selenium. * WinSCP. (**Correcto**) ==== Examen final ==== **¿Cuántos parámetros de entrada puede tener una función en PHP?** * Solo uno. * Solo dos. * Cero o más. (**Correcto**) * Exactamente tres. **¿Cómo se identifican los valores dentro de un array en PHP? (Respuesta múltiple).** * Solo por números enteros. * Por una cadena de texto. (**Correcto**) * Por un índice que puede ser numérico. (**Correcto**) * Por un código de caracteres. **¿Qué devolverá la función strtolower() al aplicarse sobre la cadena «Hola Mundo»?** * «HOLA MUNDO». * «hola Mundo». * «Hola Mundo». * «hola mundo». (**Correcto**) **La clave primaria es un atributo o conjunto de atributos que identifica de forma única a cada registro en una tabla.** * Verdadero. (**Correcto**) * Falso. **CodeIgniter permite realizar tanto llamadas síncronas como asíncronas al servidor.** * Verdadero. (**Correcto**) * Falso. **¿Cuál es el método utilizado para realizar llamadas síncronas al servidor en CodeIgniter?** * get post(). * submit del formulario HTML. (**Correcto**) * ajax post(). * fetch post(). **¿Qué función de CodeIgniter se utiliza para obtener los datos enviados desde un formulario?** * ''retrieve()''. * ''post()'' o ''get()''. (**Correcto**) * ''fetch_data()''. * ''receive()''. **Selecciona las tecnologías que se utilizan comúnmente para el desarrollo del frontend. (Respuesta múltiple).** * HTML. (**Correcto**) * Python. * CSS. (**Correcto**) * JavaScript. (**Correcto**) **¿Qué metodología ágil se enfoca en la entrega iterativa de software y la colaboración entre el equipo de desarrollo y el cliente?** * Kanban. * Lean. * Scrum. (**Correcto**) * XP. **¿Qué se utiliza en Scrum para dividir el trabajo en iteraciones cortas enfocadas en objetivos específicos?** * Prototipos. * Sprints. (**Correcto**) * Reuniones diarias. * Tareas.