Backend Flashcards

(160 cards)

1
Q

¿Qué herramienta de Python es la encargada de instalar paquetes desde PyPI?

A

La herramienta pip.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuál es el nombre del archivo de texto plano tradicional para listar dependencias?

A

El archivo requirements.txt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué archivo moderno de Python unifica la configuración del proyecto y dependencias?

A

El archivo pyproject.toml.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Por qué es fundamental usar un “Virtual Environment” (venv) en Python?

A

Para aislar las librerías de cada proyecto y evitar conflictos entre versiones globales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué comando de pip equivale a npm install cuando tienes un fichero de requisitos?

A

El comando pip install -r requirements.txt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo se llaman los paquetes o librerías en el ecosistema de Ruby?

A

Se llaman Gems (Gemas).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué archivo es el equivalente al package.json en un proyecto Ruby?

A

El archivo Gemfile.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué comando se utiliza para instalar todas las dependencias listadas en el Gemfile?

A

El comando bundle install.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cuál es la función del archivo Gemfile.lock?

A

Asegurar que se instalen las mismas versiones exactas de las dependencias en cualquier entorno.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo se llama el repositorio central donde se alojan las gemas de Ruby?

A

RubyGems.org.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cómo se llama la herramienta estándar para gestionar dependencias en PHP?

A

Se llama Composer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué archivo es el equivalente exacto al package.json en PHP?

A

El archivo composer.json.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿En qué carpeta guarda Composer todas las librerías descargadas?

A

En la carpeta vendor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué archivo debemos incluir en nuestro código PHP para cargar todas las librerías automáticamente?

A

El archivo vendor/autoload.php.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cuál es el repositorio principal de paquetes para PHP?

A

Packagist.org.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué framework de backend es conocido por su arquitectura modular inspirada en Angular?

A

El framework NestJS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cuál es la principal ventaja de usar Fastify frente a Express?

A

Su rendimiento superior y menor consumo de recursos (latencia mínima).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué significa que Hono sea un framework “Multi-runtime”?

A

Que puede ejecutarse indistintamente en Node.js, Bun, Deno o servicios de Edge.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Por qué Express.js sigue siendo el más usado a pesar de haber opciones más rápidas?

A

Por su ecosistema gigantesco, simplicidad y la enorme cantidad de documentación disponible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué herramienta de NestJS se encarga de recibir las peticiones y devolver las respuestas?

A

El Controlador (Controller).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Qué framework de PHP es famoso por su ORM Eloquent y su enfoque en la sintaxis elegante?

A

El framework Laravel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿Cuál es la principal diferencia de enfoque entre Django y FastAPI?

A

Django es un framework completo (“baterías incluidas”); FastAPI es ligero, asíncrono y enfocado en APIs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Qué framework popularizó el concepto de “Convención sobre Configuración”?

A

Ruby on Rails.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Qué micro-framework de Python es el antecesor espiritual (y aún muy usado) de FastAPI?

A

El framework Flask.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿En qué lenguaje está escrito el framework Symfony?
Está escrito en PHP.
26
¿Qué significa la "A" en el stack MEAN?
Se refiere a Angular, el framework de Google para el frontend.
27
¿Cuál es la principal diferencia entre el stack MEAN y el MERN?
La librería de frontend utilizada: Angular en MEAN y React en MERN.
28
¿Qué base de datos es el estándar en estas arquitecturas "M"?
MongoDB, una base de datos NoSQL basada en documentos.
29
¿Por qué se dice que estas arquitecturas son de "un solo lenguaje"?
Porque permiten programar tanto el cliente como el servidor usando exclusivamente JavaScript.
30
¿Qué framework de frontend se utiliza en el stack MEVN?
Se utiliza Vue.js.
31
¿Qué significa PHP-FPM?
FastCGI Process Manager, un gestor de procesos independiente para ejecutar PHP.
32
¿Cuál es la principal desventaja de usar mod_php en Apache?
Que consume mucha memoria, ya que Apache carga PHP incluso para servir archivos estáticos.
33
¿Qué protocolo permite la comunicación entre Nginx y PHP-FPM?
El protocolo FastCGI.
34
¿Es recomendable usar el servidor interno de PHP (php -S) en producción?
No, carece de características de seguridad y rendimiento; es solo para desarrollo.
35
¿Por qué Nginx es tan popular junto a PHP-FPM?
Porque es extremadamente ligero y eficiente manejando conexiones simultáneas y archivos estáticos.
36
¿Qué significan las siglas del stack LAMP?
Linux (SO), Apache (Servidor), MySQL (BD) y PHP (Lenguaje).
37
¿Por qué el stack con Nginx se abrevia como LEMP y no LNMP?
Porque Nginx se pronuncia "Engine-Ex", y se toma la E para facilitar la pronunciación del acrónimo.
38
¿Cuál es la principal ventaja de usar un bundle como XAMPP?
Permite instalar y configurar todo el entorno de desarrollo de una sola vez con un interfaz gráfico sencillo.
39
¿Qué diferencia a XAMPP de WAMP o MAMP?
Que XAMPP es multiplataforma (funciona en Windows, Mac y Linux).
40
¿Cuál es el componente de base de datos más común en estos stacks actualmente?
MySQL o su versión abierta MariaDB.
41
¿Cuál es el CMS PHP con mayor cuota de mercado en 2026?
WordPress, con más del 40% de la web.
42
¿Qué diferencia a un CMS de "Flat-file" como Statamic?
Que guarda la información en archivos de texto en lugar de usar una base de datos MySQL.
43
¿Para qué tipo de proyectos se suele elegir Drupal?
Para proyectos empresariales o gubernamentales de alta seguridad y complejidad.
44
¿Qué significa usar un CMS de forma "Headless"?
Usar el CMS solo para gestionar datos (backend) y enviar esa información a un frontend independiente (ej: React).
45
¿Qué CMS PHP es el estándar para grandes tiendas online de nivel empresarial?
Magento (Adobe Commerce).
46
¿Qué diferencia a un DMS de un simple almacenamiento en la nube?
El uso de Workflows (flujos de trabajo), metadatos avanzados y un control de auditoría estricto.
47
¿En qué lenguaje de programación está desarrollado principalmente Alfresco?
Está desarrollado en Java.
48
¿Qué es un "Workflow" en un gestor documental?
Es un proceso automatizado que mueve un documento entre usuarios para su revisión, firma o aprobación.
49
¿Cuál es la diferencia entre un CMS y un DMS?
El CMS es para publicar contenido web; el DMS es para gestionar documentos internos de una organización.
50
¿Para qué sirve el control de versiones en Alfresco?
Para mantener un historial de cambios y poder recuperar versiones anteriores de un documento si es necesario.
51
¿Qué significa que PHP sea un lenguaje "del lado del servidor"?
Que el código se ejecuta en el servidor web y el usuario solo recibe el resultado final (normalmente HTML).
52
¿Cómo se declaran las variables en PHP?
Siempre comienzan con el símbolo de dólar $ (ej: $nombre = "Juan";).
53
¿Para qué sirve la extensión PDO en PHP?
Es una capa de abstracción para conectar y realizar consultas a bases de datos de forma segura.
54
¿Qué mejora introdujo el compilador JIT en PHP 8?
Mejora el rendimiento y la velocidad de ejecución, especialmente en tareas que requieren mucha CPU.
55
¿Cuál es la etiqueta necesaria para abrir un bloque de código PHP?
La etiqueta
56
¿Qué símbolo es obligatorio al inicio de cualquier nombre de variable en PHP?
El símbolo de dólar $.
57
¿Cuál es el operador que se utiliza para concatenar (unir) dos strings en PHP?
El operador punto ..
58
¿Qué diferencia hay entre usar comillas simples y dobles al definir un string?
Las dobles permiten expandir variables dentro (interpolación); las simples no.
59
¿Qué función o comando se usa normalmente para imprimir texto en el navegador?
El comando echo.
60
¿Cómo se accede al valor "Juan" en el array $u = ["nombre" => "Juan"]?
Usando la clave: $u["nombre"].
61
¿Qué símbolo se usa para concatenar dos cadenas de texto en PHP?
El símbolo de punto ..
62
¿Qué diferencia hay entre == y ===?
== compara solo el valor, mientras que === compara el valor y el tipo de dato.
63
¿Para qué sirve el operador **?
Se utiliza para realizar potencias (exponenciación).
64
¿Qué devuelve el operador "Spaceship" (<=>) si ambos valores son iguales?
Devuelve el número 0.
65
¿Cuál es la función del operador ???
Proporcionar un valor por defecto si una variable es null o no está definida.
66
¿Qué significa que una variable sea "Superglobal" en PHP?
Que es accesible desde cualquier ámbito (dentro o fuera de funciones) sin usar la palabra global.
67
¿Qué variable usarías para recoger la contraseña de un formulario de Login?
La variable $_POST (por seguridad y privacidad).
68
¿Dónde se guardan físicamente los datos de la superglobal $_SESSION?
Se guardan en el servidor.
69
¿Qué superglobal contiene la dirección IP del usuario que visita la web?
La variable $_SERVER['REMOTE_ADDR'].
70
¿Para qué sirve la superglobal $_FILES?
Para gestionar la información de archivos subidos al servidor (nombre, tamaño, errores).
71
¿Qué tipo de dato devuelve la expresión 5 > 3?
Un tipo Boolean (true).
72
¿Cuál es la diferencia entre un array indexado y uno asociativo?
El indexado usa números como posición; el asociativo usa claves (strings).
73
¿Qué valor tiene una variable que ha sido declarada pero no inicializada?
Su valor es NULL.
74
¿Para qué sirve el comando gettype($variable)?
Para saber qué tipo de dato contiene la variable en ese momento.
75
¿Qué tipo de dato representa un archivo abierto o una conexión a BD?
El tipo Resource.
76
¿Qué operador se usa para unir dos cadenas en PHP?
El operador punto ..
77
¿Qué diferencia hay entre ' ' y " " respecto a las variables?
Las comillas dobles permiten la interpolación (meter variables dentro); las simples no.
78
¿Qué función usarías para saber cuántos caracteres tiene la palabra "Camión" de forma correcta?
La función mb_strlen() (para manejar el acento).
79
¿Para qué sirve la función trim()?
Para eliminar los espacios en blanco innecesarios al principio y al final de un texto.
80
¿Cómo reemplazas todas las apariciones de una palabra por otra?
Con la función str_replace().
81
¿Cuál es el primer índice de un array numérico en PHP?
El índice 0.
82
¿Qué diferencia a un array asociativo de uno indexado?
El asociativo usa claves personalizadas (strings) en lugar de números correlativos.
83
¿Qué función se utiliza para saber cuántos elementos tiene un array?
La función count($array).
84
¿Cómo conviertes un string como "rojo,verde,azul" en un array?
Usando la función explode(",", $string).
85
¿Cuál es el bucle ideal para recorrer todos los elementos de un array?
El bucle foreach.
86
¿Qué palabra clave se usa para devolver un valor desde una función?
La palabra clave return.
87
¿Cómo se define que una función debe devolver obligatoriamente un string?
Añadiendo : string después del paréntesis de los parámetros.
88
¿Qué permiten los "Named Arguments" introducidos en PHP 8?
Pasar valores a una función indicando el nombre del parámetro, ignorando el orden original.
89
¿Cuál es la principal diferencia entre una función normal y una fn() (Arrow Function)?
Las fn() son más cortas y tienen acceso automático a las variables del ámbito superior.
90
¿Qué sucede si llamas a una función sin pasarle un parámetro que no tiene valor por defecto?
PHP lanzará un error de tipo (Fatal Error o ArgumentCountError).
91
¿Qué palabra clave se usa para crear una instancia (objeto) de una clase?
La palabra clave new.
92
¿Para qué sirve el método mágico __construct?
Para inicializar el objeto automáticamente cuando se crea.
93
¿Cómo se accede a una propiedad dentro de la propia clase?
Usando la pseudovariable $this->nombrePropiedad.
94
¿Qué diferencia hay entre public y private?
public permite acceso desde fuera de la clase; private lo prohíbe.
95
¿Qué operador se usa en PHP para llamar a un método de un objeto?
El operador flecha ->.
96
¿Qué palabra clave se usa para que una clase cumpla con una interfaz?
La palabra clave implements.
97
¿Se puede crear un objeto (new) a partir de una clase abstracta?
No, las clases abstractas solo pueden ser heredadas.
98
¿Cómo se accede a un método estático desde fuera de la clase?
Usando el nombre de la clase seguido de :: (ej: Clase::metodo()).
99
¿Cuál es la principal diferencia entre una Interfaz y una Clase Abstracta?
La interfaz no puede tener código en sus métodos; la clase abstracta sí.
100
¿Qué palabra clave sustituye a $this cuando trabajamos dentro de un método estático?
Se utiliza la palabra clave self.
101
¿Qué diferencia hay entre require e include?
require detiene la ejecución si falla; include solo avisa y continúa.
102
¿Cuál es la función principal de spl_autoload_register?
Registrar una función que cargue automáticamente el archivo de una clase cuando se necesite.
103
¿Para qué sirven los namespaces en PHP?
Para organizar clases y evitar colisiones de nombres (clases que se llamen igual).
104
¿Qué es PSR-4?
Un estándar de interoperabilidad que define cómo mapear nombres de clases con rutas de archivos.
105
¿Qué archivo de Composer debes importar para activar el autoloading?
El archivo vendor/autoload.php.
106
¿Con qué caracteres empiezan siempre los métodos mágicos en PHP?
Empiezan con un doble guion bajo (__).
107
¿Qué método mágico se ejecuta cuando intentas imprimir un objeto con echo?
El método __toString().
108
¿Cuándo se activa el método mágico __call?
Cuando se intenta llamar a un método que no existe o no es accesible.
109
¿Qué diferencia hay entre __construct y __destruct?
__construct se ejecuta al crear el objeto; __destruct al destruirlo o terminar el script.
110
¿Para qué sirve el método __set?
Para capturar intentos de escribir valores en propiedades inexistentes o privadas.
111
¿Permite PHP declarar dos métodos con el mismo nombre en la misma clase?
No, PHP lanzará un error fatal si detecta nombres duplicados.
112
¿Qué método mágico permite simular la sobrecarga capturando llamadas dinámicas?
El método mágico __call().
113
¿Cuál es la forma más simple de hacer que un parámetro sea opcional en PHP?
Asignándole un valor por defecto en la definición (ej: $p = 0).
114
¿Qué función devuelve un array con todos los argumentos pasados a una función?
La función func_get_args().
115
¿Qué sucede si intentas sobrecargar un método estático inexistente?
Se activará el método mágico __callStatic().
116
¿Qué problema principal resuelven los Traits en PHP?
Permiten la reutilización de código horizontal (simulando herencia múltiple).
117
Si una clase y un Trait tienen un método con el mismo nombre, ¿cuál se ejecuta?
Se ejecuta el método de la clase propia, ya que tiene mayor prioridad.
118
¿Qué operador se usa para decidir qué método usar cuando dos Traits chocan?
El operador insteadof.
119
¿Se puede crear una instancia (new) de un Trait?
No, al igual que las interfaces y clases abstractas, los Traits no se pueden instanciar.
120
Entre un método del Trait y un método de la Clase Padre, ¿cuál tiene prioridad?
El método del Trait sobrescribe al de la clase padre.
121
¿Qué función se usa para cerrar una conexión abierta con MySQLi?
La función mysqli_close($conexion).
122
¿Cuál es la diferencia entre mysqli_fetch_assoc y mysqli_fetch_row?
assoc devuelve un array con los nombres de las columnas; row usa índices numéricos.
123
¿Qué hace la función mysqli_connect_error()?
Devuelve una cadena de texto describiendo el error del último intento de conexión.
124
¿Por qué no se debe usar mysqli_query con variables directas en el SQL?
Por el riesgo de ataques de Inyección SQL.
125
¿Qué función permite limpiar una cadena de texto antes de usarla en una consulta manual?
La función mysqli_real_escape_string().
126
¿Qué significa la sigla DSN en el contexto de PDO?
Significa Data Source Name, y contiene la información necesaria para conectar a la BD.
127
¿Cuál es el modo de error recomendado para desarrollo en PDO?
El modo PDO::ERRMODE_EXCEPTION, que permite usar bloques try-catch.
128
¿Cómo se evitan los ataques de Inyección SQL en PDO?
Mediante el uso de Sentencias Preparadas (prepare y execute).
129
¿Qué función se usa para obtener el ID del último registro insertado?
El método $conexion->lastInsertId().
130
¿Qué diferencia hay entre fetch() y fetchAll()?
fetch() devuelve una sola fila (la siguiente); fetchAll() devuelve todas las filas en un array.
131
¿Qué propiedad del objeto mysqli indica si hubo un error al conectar?
La propiedad connect_error.
132
¿Cómo se accede al número de filas de un resultado en estilo POO?
Usando la propiedad $resultado->num_rows.
133
¿Qué significa la "s" en el método bind_param("s", $var)?
Significa que el valor de la variable se tratará como un String.
134
¿Qué método se usa para liberar la memoria del resultado?
El método $resultado->free() o $resultado->close().
135
¿Se puede usar el estilo POO y el procedimental a la vez en el mismo script?
Sí, pero es una pésima práctica; se debe elegir uno y ser consistente.
136
¿Qué función convierte un array de PHP en una cadena JSON?
La función json_encode().
137
¿Para qué sirve el segundo parámetro true en json_decode($json, true)?
Para que el resultado sea un array asociativo en lugar de un objeto.
138
¿Qué hace la opción JSON_PRETTY_PRINT?
Formatea el JSON con sangrías y saltos de línea para que sea legible para humanos.
139
¿Cómo se llama la excepción que lanza PHP cuando falla el procesamiento de un JSON?
Se llama JsonException.
140
¿Qué función usarías para enviar una respuesta JSON desde un script PHP a una App móvil?
Primero json_encode() y luego un echo del resultado.
141
¿Qué significa que Laravel sea un framework MVC?
Que separa la aplicación en tres partes: Modelo (datos), Vista (interfaz) y Controlador (lógica).
142
¿Cómo se llama la herramienta de línea de comandos de Laravel?
Se llama Artisan.
143
¿Qué es Eloquent?
Es el ORM de Laravel que permite manejar la base de datos como si fueran objetos de PHP.
144
¿En qué carpeta se definen las rutas web de la aplicación?
En la carpeta routes/, específicamente en el archivo web.php.
145
¿Para qué sirve el archivo .env?
Para guardar variables de entorno y configuraciones sensibles (como la clave de la base de datos).
146
¿Qué componente de Laravel se encarga de generar datos de prueba masivos?
Los Factories (usados por los Seeders).
147
¿Cuál es la diferencia entre una Migration y un Model?
La Migration crea la tabla; el Model permite interactuar con sus datos.
148
¿Cuándo deberías usar un Job en lugar de poner la lógica en el Controller?
Cuando la tarea es lenta (como enviar emails o procesar videos) y no quieres que el usuario espere.
149
¿Para qué sirven las Policies en Laravel?
Para organizar la lógica de autorización (permisos) ligada a modelos específicos.
150
¿Qué herramienta de Artisan se usa para ejecutar las migraciones?
El comando php artisan migrate.
151
¿Qué significa que Eloquent use el patrón Active Record?
Que cada objeto de una clase representa una fila y tiene métodos para guardarse a sí mismo.
152
¿Cuál es el ORM principal que compite con Eloquent en PHP?
Doctrine ORM, usado principalmente en Symfony.
153
¿Cómo se define una relación de "uno a muchos" en Eloquent?
Usando el método $this->hasMany() dentro del modelo.
154
¿Qué ventaja tiene usar un ORM frente a escribir SQL puro?
Seguridad (protección contra inyección SQL) y Productividad (código más legible y fácil de mantener).
155
¿Qué es un "Modelo" en el contexto de Eloquent?
Una clase PHP que mapea una tabla de la base de datos.
156
¿Qué patrón mezcla los datos y la persistencia en la misma clase?
El patrón Active Record.
157
¿Qué patrón mantiene los objetos de negocio totalmente ignorantes de la base de datos?
El patrón Data Mapper.
158
¿Cuál es la principal ventaja de usar un DAO?
Aislar la lógica de negocio de los detalles específicos de la base de datos o API.
159
En Laravel (Eloquent), si haces $user->save(), ¿qué patrón usas?
Usas Active Record.
160
¿Qué patrón simula que la base de datos es una colección de objetos en memoria?
El patrón Repository.