B3-T8_BACKEND Flashcards

1
Q

Nombre 3 MOTORES DE EJECUCIÓN (o interprete) de JavaScript presentes en los navegadores (User Agent):

A
  • v8: M. Edge, Chrome y Opera (BLINK)
  • Nitro: Safari (WebKit)
  • SpiderMonkey: FireFox (GECKO)

NOTA: cada motor ofrece la compatibilidad entre el navegador y javascript, hace de interprete.

*Entre PARÉNTESIS pongo los MOTORES DE RENDERIZADO.

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

¿Cualés son los MOTORES DE RENDERIZADO de los navegadores más habituales?

A

*BLINK: Chrome, Opera Y M. Edge (desde 2020).

*WEBKIT: Safari y M. Edge (hasta 2020).

*GECKO -> QUANTUM: FireFox.

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

¿Cuál es la principal diferencia entre SOAP y REST?

A

SOAP basa su comunicación en XML y REST mediante JSON.

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

Un mensaje SOAP no es más que un documento en formato XML, ¿por qué 3 partes está definido dicho mensaje?

A
  1. ENVELOPE: (sobre) elemento más importante dentro del documento XML y representa al mensaje que lleva almacenado dicho documento.
  2. HEADER: (es opcional) mecanismo para añadir características adicionales al mensaje SOAP.
  3. BODY: (es obligatorio) contenedor que almacena los datos a transmitir de lado a lado de la comunicación.

*El BODY puede contener el elemento opcional FAULT, para indicar algún error al Cliente.

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

¿Qué es WSI (Interoperabilidad de Servicios Web)?

A

Como su propio nombre indica, fomenta la Interoperabilidad de Servicios Web sobre cualquier plataforma.

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

¿En qué se diferencian REST y SOAP?

A

Son 2 enfoques distintos par la transmisión de datos en linea. Ambas definen como diseñar APIs, las cuales permiten la comunicación de datos entre apliciones web.

*REST (Transferencia de Estado REpresentacional), es un conjunto de principios arquitectónicos.

*SOAP (Protocolo Simple de Acceso a Objetos), SI es un protocolo oficial (W3C).

*SOAP soporta el formato de datos XML, mientras que REST API soporta texto plano, XML, HTML, JSON, etc.

REST es + usado

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

Nombre 5 lenguajes de scripting (con sus gestores de dependencias):

A
  • PHP (Composer -> composer.json)
  • Ruby (Gems -> gemfile)
  • Python (Pip -> setup.py)
  • JavaScript (npm -> package.json)
  • Perl (PPM)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cuál es la herramienta para la gestión de los paquetes en PHP?

A

Composer (lee un fichero llamado composer.json)

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

¿Cuál es la herramienta para la gestión de los paquetes en Ruby?

A

Gems (lee un fichero denominado Gemfile)

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

¿Cuál es la herramienta para la gestión de los paquetes en JavaScript?

A

npm (lee un fichero denominado package.json)

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

¿A que corresponde la infraestructura LEMP, MEAN y MERN?

A

LEMP => Linux + Nginx + Mysql/MariaDB + PHP/Perl/Python

MEAN => MongoDB + Express + Angular + Node

MERN => MongoDB + Express + ReactJS + Node

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

¿Qué dos “motores” de ejecución conoces para PHP?

A
  • Zend Engine
  • HHVM (Hip Hop de Facebook)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es Phalanger?

A

Un compilador de PHP a CIL (código intermedio de .net)

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

¿Qué es django?

A

Un framework web para pyhton

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

Nombre 5 lenguajes de scripting (con sus FrameWork):

A
  • PHP (Laravel, Symfony, Yii, Zend, Slim y Cake PHP)
  • Ruby (Ruby on Rails, Roda, Cuba, Sinatra y Padrino)
  • Python (Django, Pyramid, Turbo Gears y Web 2 py)
  • JavaScript (Express)
  • Perl (Catalyst, Mojoliaus y Dancer)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Nombre 4 frameworks web para PHP:

A
  • Laravel
  • Symfony
  • CakePHP
  • Yii
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué es Ruby on Rails?

A

Un framework web para lenguaje Ruby.
Además de: Cuba, Sinatra y Padrino.

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

¿Cómo es la declaración de un trozo de código PHP?

A

‹?php

?›

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

Menciona 4 Tipos de Datos de PHP:

A
  • Integer (nº entero con formato a dos de 64 bits)
  • Resource (hace referencia a un recurso externo)
  • Float (números decimales de gran magnitud)
  • Array (lista de valores del mismo tipo = Matriz Asociativa)

Los otros 4 son: BOOLEAN, STRING, NULL y OBJECT.

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

Menciona 4 Tipos de Datos de PHP:

A
  • Boolean (true or false)
  • Object
  • String (cadenas)
  • NULL (es una especie de “if”, es decir, el resultado depende de si es o no NULL y se representa: ??)
    $Get [‘usuario’] ?? ‘nadie’
    coge el primer parámetro (usuario) si es distinto de NULL, pero si es NULL coge el segundo (nadie).

Los otros 4 son: INTEGER, RESOURCE, FLOAT y ARRAY.

21
Q

Si quiero CONCATENAR dos variables $a y $b, ¿cómo lo haría?

A

$a.$b

EJEMPLO:
$var3=$var1.’script’;
A la “var3”se le asigna el resultado de lo que haya en “var1” con “script”

NOTA: en otros lenguajes se hace con “+”

22
Q

¿Qué hace el operador nave espacial $a <=> $b ?

A

Compara dos variables y devuelve:

  • -1 si $a < $b
  • 0 si son iguales
  • 1 si $a > $b
23
Q

¿Para qué sirve la función “printr” en php?

A

Para imprimir el contenido de un array.

24
Q

¿Cómo se elimina un objeto en php?

A

unset($obj)

25
Q

¿A que hace referencia ::self ?

A

A la clase actual

26
Q

¿Cómo se puede hacer referencia dentro de una subclase a un miembro de la clase base?

A

parent::

27
Q

¿Existe alguna forma de usar una clase y no tener que hacer NOSOTROS un require/include del fichero .php en la que está definida?

A

Si, el mecanismo es la función “autoload”.

28
Q

¿Cómo se declara un constructor en php?

A

__construct(…) {
$this-> …
}

*Aunque también existe el __destruct:

__destruct(…) {
$this-> …
}

*Los constructores son funciones en una clase que son invocadas automáticamente cuando se crea un objeto de una clase con new. Una función se vuelve un constructor, cuando tiene el mismo nombre que la clase. Si una clase no tiene constructor, el constructor de la clase base será invocado, si es que existe.

*Los Destructores entran en juego cuando un objeto ya no está referenciado por ninguna variable, deja de tener sentido que esté almacenado en la memoria, por tanto, el objeto se debe destruir para liberar su espacio.

NOTA:
Crear objeto: $objeto=new clase_del_objeto ( );

Borrar objeto: unset ($objeto)

29
Q

Clasifica los principales lenguajes de “scripting” en cuanto a: PÁGINA DE CATÁLOGO - FICHERO DONDE DESCARGAN - GESTOR PARA INSTALAR LA PAQUETERÍA DESCARGADA EN DICHO FICHERO DESDE LA MENCIONADA PÁGINA:

A

LENGUAJE-CATÁLOGO-FICHERO-GESTOR

PHP - http://packagist.org - composer.json -COMPOSER

PYTHON - https://pypi.org -setup.py - PIP

JavaScript - https://npmjs.com - package.json - npm

30
Q

Define el FrameWork web “ExpressJS” de Javascript:

A

Express es un framework web de código abierto, escrito en JavaScript y alojado dentro del entorno de ejecución NodeJS.

Es la librería subyacente para un gran número de otros frameworks web de Node populares.

Proporciona mecanismos para: Escritura de manejadores de peticiones con diferentes verbos HTTP en diferentes caminos URL (rutas)

Proporciona amplias funciones para crear aplicaciones web y móviles.

NOTA: NodeJS es el ecosistema o entorno de ejecución de JavaScript de la parte servidora (BackEnd) y dentro tiene el motor de JS (V8).

31
Q

Para hacer una aplicación web en PHP necesitamos:

*Servidor Web (HTTP Server, Apache, …)

*PHP (lenguaje)

*Motor interprete (HHVM o Zend Engine)

*Frontal Web

*Base de DAtos: MySQL o MariaDB,

¿A través de que paquetes se puede instalar TODO esto?

A

Depende del SO:

LAMP => LINUX - Apache - MySQL o MariaDB - PHP, Perl o Python

WAMP => Windows - …

MAMP => MAC - …

XAMPP => Multiplataformas - Apache - MySQL o MariaDB - Perl y PHP

*Otro paquete para LINUX:
LEMP => LINUX - Enginx- MySQL o MariaDB - PHP, Perl o Python

32
Q

¿Cuáles son los 2 motores de ejecución de PHP que interpretan nuestro código y los traducen a código máquina?

A

*Zend Engine

*HHVM: (motor creado por FACEBOOK) ejecuta código PHP, JS y un lenguaje llamado HACK.

NOTA: “Hack” es un lenguaje de programación de alto nivel para la Máquina Virtual HipHop (HHVM), creado por Facebook como una extensión del lenguaje PHP.

33
Q

¿Cuál es el FRAMEWORK Web de Java más usado?

A

Spring MVC, que es un subproyecto Spring, un framework de Java para crear aplicaciones web y servicios Restful de forma óptima y fácil. Sigue el patrón de diseño Modelo-Vista-Controlador.

34
Q

Define los Web FrameWorks LARAVEL (PHP), RUBY on RAILS (RUBY) y DJANGO (Python):

A

*LARAVEL (PHP) => admite datos con la ayuda del diseño MODEL-VIEW-CONTROLLER (MVC), que divide la arquitectura de BackEnd de una aplicación en partes lógicas.

*RUBY on RAILS (RUBY) => también utiliza el patrón MVC. Brinda una estructura para todo el código, y abstrae y simplifica las TAREAS REPETITIVAS comunes, ayudando a la creación de web y aplicaciones.

*DJANGO (Python) => se ocupa de gran parte del desarrollo web, haciéndolo más fácil y despreocupado.

NOTA: todos estos framework web son de código abierto.

35
Q

¿En qué se diferencian las arquitecturas de desarrollo: MEAN y MERN?

A

Misma arquitectura, pero con diferentes framework: Angular (MEAN) y ReactJS (MERN).

MongoDB + Express - Angular o ReactJS - NodeJS

Ayudan a evitar el trabajo pesado innecesario y mantiene el desarrollo de la aplicación web muy organizado. Usan formato JSON para pasar la información del cliente (FRONT) al servidor (BACK). Se basa en 4 tecnologías:

*MongoDB => BD
*EXPRESS => FrameWork Web de JS
*ANGULAR o ReactJS=> para la parte de FrontEnd (usado por el desarrollador)
*NodeJS => motor de JavaScript

NOTA: MongoDB es una de las BBDD más conocidas, que almacenan información en formato JSON.

36
Q

Define el motor de ejecución (PHP) Hip Hop Virtual Machine:

A

HHVM => máquina virtual de código abierto basado en la compilación JIT (Just-In-Time).
Sirve como motor de ejecución para el lenguaje HACK para ejecutar PHP.

*ZEND ENGINE: otro motor de procesamiento para la interpretación y cifrado del código PHP.

IMPORTANTE: tanto HHVM como Zend Engine transforman el código PHP en OPCODE (formato de bytecode de PHP o código intermedio) en tiempo de ejecución.
Es decir, estos motores compilan nuestro código fuente a código máquina llamado OPCODE.

37
Q

¿Para qué sirve el operador “instanceof” en PHP?

A

Para lo mismo que en Java, para peguntar el tipo de objeto.

38
Q

Define una estructura de “Herencia” en PHP:

A

<?php
class Empleado extends Persona
{
…parent::
}

NOTA: parent:: => se usa para acceder a la parte del padre.

*Con “final” se evita la sobrescritura de clases y métodos.

39
Q

En PHP con “require” puedes importar clases de un proyecto a otro, como es una estructura que puede llegar a ser muy repetitiva, ¿con que función podemos automatizarla?

A

AUTOLOAD, concretamente la función es:

spl-autoload-register ( … )

*En cuyo interior codificamos donde están las clases y así hacen el “require” de forma automática.

40
Q

¿A qué hacemos referencia en PHP con “self::atributo_estático”?

A

Hace referencia a la clase actual.

NOTA: con los “::” se crean atributos y métodos estáticos (a los atributos estáticos se puede acceder directamente haciendo referencia a la clase que los porta).
clase::f ()

41
Q

¿Qué son los atributos y métodos estáticos en PHP?

A

En PHP los atributos y métodos se pueden declarar como estáticos, se caracteriza porque no se necesita crear una instancia de un objeto para poder acceder a ella, sino se puede acceder directamente haciendo referencia a la clase.

EJEMPLO:
self::atributo_estático => hace referencia a la clase actual.

42
Q

En PHP, ¿cómo importamos una clase de otro módulo y cómo la usamos?

A

IMPORTAR:
require: “clase.php”

Y YA LA PUEDES USAR CON EL OBJETO QUE QUIERAS:
$obj=new clase;

NOTA: “new” es el operador clásico para crear objetos.

43
Q

¿Qué diferencia hay entre el código HTML y el PHP?

A

(antes se mezclaban)

El código PHP es código DINÁMICO, es decir, es la parte del código que se interpretaba por el interprete.
El código HTML es ESTÁTICO, es decir, NO se interpreta.

44
Q

¿Qué es FPM (FastCGI Process Manager) y expón algunas de sus funcionalidades?

A

Con FPM tenemos los Apaches en un lado y los procesos de PHP en otro. Es decir, si ejecutas :”ps” en LINUX, te muestra los apaches por un lado y los PHP por otro.

*Proporciona una función especial para detener y descargar todos los datos mientras continua haciendo algún proceso más largo (conversión de vídeos, procesamiento de estadísticas, etc.):

fastcgi_finish_request()

45
Q

¿Cómo se implementa un Array ASOCIATIVO y qué es?

A

$productos [‘categoria1’]

Los arrays asociativos son arrays cuyos keys (o índices) son strings con valores personalizados. Un array asociativo puede llevar también valores numéricos. Las keys son sensibles a mayúsculas, minúsculas y acentos. A los arrays asociativos se puede acceder utilizando comillas dentro de los corchetes o sin utilizarlas.

46
Q

¿Qué relación tiene el principio HATEOAS con el servicio REST?

A

HATEOAS permite que la interfaz de un servicio REST pueda modificarse siempre que se requiera, lo que constituye una ventaja fundamental de esta arquitectura frente a otras, como las basadas en SOAP (Simple Object Access Protocol), donde el cliente y el servidor interactúan mediante un contrato fijado.

47
Q

Define brevemente: UDDI, SOAP, JSON y WSDL:

A

*WSDL: (Web Services Description Language) estándar que describe los formatos y requisitos del mensaje para poder interactuar con un servicio web.

*UDDI: (Universal Description, Discovery, and Integration) define un modo de publicar y encontrar información sobre servicios Web. Basado en SOAP.

*SOAP: (Simple Object Access Protocol) es un protocolo estándar (W3C) para posibilitar la comunicación entre las aplicaciones diseñadas con diferentes lenguajes y en distintas plataformas, por medio de intercambio de datos XML. Y, como se comunican los clientes con los registros UDDI.

*JSON: (JavaScript Object Notation) NO es ningún estándar, simplemente es un formato de texto ligero para el intercambio de datos entre buscador y servidor.

48
Q

¿Qué es JSON y pon un ejemplo?

A

*JSON: (JavaScript Object Notation) NO es ningún estándar, simplemente es un formato de texto ligero para el INTERCAMBIO de datos entre BUSCADOR y SERVIDOR.

EJEMPLO: cuando se envía una información en petición asíncrona (AJAX) a un servidor, esa información normalmente va en JSON.