b3t8 - Scripting Back Flashcards

1
Q

De PHP indica gestor de paquetes y frameworks web

A

Gestor de paquetes -> Composer

Framerworks:
Laravel
Symfony
cake PHP
codeigniter
Yii
Zend
Slim

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

Cómo se llama el motor de php, como sería V8 para node?

A

Motor Zend Engine

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

Productos ecommerce, foros, CMS, … importantes php

phpBB
Magento
Prestashop
Moodle
Wordpress
Joomla
Drupal

A

phpBB -> foros en internet
Magento -> e-commerce
Prestashop -> e-commerce
Moodle -> formación
Wordpress -> CMS noticias
Joomla -> CMS noticias
Drupal -> CMS noticias

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

Qué fichero maneja composer en php para dejar las dependencias?
De qué web descarga las librerías?
En qué carpeta se guardan las librerías de terceros?

A

composer.json
http://packagist.org
se derscargan en la carpeta /vendor

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

Qué son en el mundo php los siguientes productos?

WAMP
LAMP
MAMP
XAMPP

A

Es un software que incluye los productos necesarios para hacer aplicaciones web

W/L/M/X -> windows, linux, mac, multiplataforma
A -> Apache
M -> MySql / MariaDB
P -> Perl / PhP / Python

Se llama LEMP por ejemplo, cuando se usa Nginx en lugar de Apache (porque se pronuncia enginx)

en XAMPP por ejemplo, la doble PP es porque es capaz de usar Pearl y PHP

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

En Ruby, cómo se llama el gestor de dependencias
En qué fichero se configuran las dependencias?
Cómo es el comando para usarlo?
De qué URL se las descarga?

A

Gestor -> Gems
fichero de dependencias -> gemfile
comando -> gem
http://rubygems.org

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

Frameworks web de Ruby

A

Ruby on Rails
Roda
Cuba
Sinatra
Padrino

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

En Phyton, cómo se llama el gestor de dependencias
En qué fichero se
De qué URL se las descarga?

A

Gestor -> Pip
fichero -> setup.py
https://pypi.org

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

Frameworks web en Phyton

A

Django
Flask -> microservicios
Pyramid
TurboGears
web2py

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

Cuál es el framework web de javascript que se ejecuta sobre node como scripting back?

A

Express

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

Comparativa gestores de dependencias y frameworks

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

labs a mirar más en detalle de php

A

basico
cadenas
arrays

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

Cuáles son las variables superglobal en php y para qué sirven?

A

Sirven para acceder a datos globales, parecido al httpRequest en los jsp de jee
* $_POST
* $_GET
* $_SERVER
* $_FILES
* $_COOKIE
* $_SESSION
* $_REQUEST

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

Qué herramientas se usan en la arquitectura MEAN?
Cuándo se le llama MERN?

A

M -> MongoDB
E -> Express
A -> Angular
N -> Node

Se le llama MERN cuando en lugar de Angular se usa React

Es una arquitectura javascript end to end, porque se maneja la información en formato json entre todos los sistemas

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

Qué son los siguientes componentes principales del framework web de php Laravel?
FACTORY
SEEDER
MODEL
MIGRATION
CONTROLLER
GATES Y POLICIES
Qué herramieta de linea de comandos se usa?

A

SEEDER -> Sirve para llenar la bbdd de datos de prueba. Son una clase que lo gestiona, lo pude hacer de uno en uno, o automáticamente apoyándose en factorías
FACTORY -> Con el factory se crean objetos con datos de prueba de forma más automatizada. Con la librería FAKER se le dice el tipo de cada dato y genera datos aleatorios de ese tipo, por ejemplo, nombres, apellidos, palabras, numero aleatorio, etc…
MODEL -> Clases de negocio del modelo
MIGRATION -> Para programar cambios en BBDD y deshacerlos. Así se puede gestionar el versionado de la bbdd
CONTROLLER -> el que recibe las peticiones http, como un servlet. No hay fichero de configuración, sino que hay una convención por la cual todos los controladores deben tener Controller en el nombre, por ejemplo, UserController, y se accede a los métodos con la convención de poner en la url /user/[metodo]
GATES Y POLICIES -> Para controlar el acceso a recursos

La herramienta de comandos es artisan. Los comandos empiezan por php artisan

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

Cómo son los comandos básicos artisan?

A

php artisan make:model
php artisan make:migration
php artisan make:factory
php artisan migrate
php artisan db:seed

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

Sintáxis básica php

Cómo abrir y cerrar bloque php
Cómo definir una función
Cómo hacer un bucle
Cómo referirse a un atributo o método de un objeto? Lo que en java sería un punto
Cómo referirse a algo estático de la clase, en lugar de algo del objeto. O también a métodos sobreescritos.
Cómo se terminan las sentencias
Operador para concatenar strings
Cómo empiezan las variables
Diferencia de las comillas simples y dobles en las cadenas
Operador Igualdad
Operador Identico
Operador nave espacial
Fusión de null

A

Cómo abrir y cerrar bloque php -> <?php ………….?>
Cómo definir una función -> function suma(){..}
Cómo hacer un bucle -> foreach($arr as $value) {
Cómo referirse a un atributo o método de un objeto? -> con flecha: objeto->atributo o objeto->metodo()
Cómo referirse a algo estático de la clase, en lugar de algo del objeto -> con :: -> Clase::atributo o Clase::metodo()
Cómo se terminan las sentencias -> con punto y coma ;
Operador para concatenar strings -> con un punto cadena.cadena
Cómo empiezan las variables -> con $
Diferencia de las comillas simples y dobles en las cadenas -> con las dobles interpreta las variables que haya dentro con $
Operador Igualdad (igual valor) -> ==
Operador Identico (igual tipo y valor) -> ===
Operador nave espacial -> $a< ==>$b -> Devuelve -1,0 o 1 si a es menor, igual o mayor que b
Fusión de null -> ?? -> Se pone después de una variable. Si la variable es null, se coge lo que se ponga después de las ?? -> $variableConNull ?? ‘nadie’

18
Q

En la arquitectura para usar php, para poder ejecutar una página php, qué tenemos que instalar en el servidor web (como Apache)?

A

Un módulo php -> o mod_php o mod_proxy_fcgi. Este último es más eficiente porque que llaman a un proceso FPM que descarga al Apache de trabajo

19
Q

Arrays en PHP

Qué es un array asociativo en php?
Cómo se construye un array?
Funciones de los array
- print_r
- rsort
- sort
- arsort
- asort
- ksort
- krsort
- explode

A

Un array que permite, como una hashtable en java, que el índice no sea un número sino una cadena
$miArray[‘elemento1’]

Se construye con $miArray = array(‘uno’, 2, ‘3’), pueden tener distintos tipos de datos
o $miArray = [‘name’ => ‘foo’, ‘age’ => 20];

Funciones de los array -> ver en laboratorios
- print_r -> pinta mas información a parte del valor, se usa para depurar
- sort y rsort -> para arrays no asociativos, ordena ascendentemente e inversamente respectivamente
- asort -> ordena ascendentemente por el valor, mantiene correspondencia entre clave y valor, útil en asociativos
- arsort -> ordena al revés, descendentemente por el valor, mantiene correspondencia entre clave y valor, útil en asociativos
- ksort -> ordena ascendentemente por clave, también mantiene correspondencia entre clave y valor, útil en asociativos
- krsort -> ordena descendentemente por clave, también mantiene correspondencia entre clave y valor, útil en asociativos
- explode -> en base a un separador y una cadena con elementos separados por ese separador, te construye un array con los elementos
- implode -> al revés explode, te genera una cadena a partir de un array un separador

20
Q

En PHP

Cómo se referencia al padre? (como super. en java)
Cómo se referencia al objeto actual? (como this. en java)
Hacer un constructor
Equivalente al finalize() de java
Equivalente al final de java
Equivalente al implements de java
Similar al import en java
Qué es un magic method?
cómo se comprueba si una variable está inicializada o no?

A

Padre -> parent::
Actual -> $this para lo del propio objeto y self:: para las cosas estáticas de la clase
Nomeclatura constructores -> ** __construct()**
Como el finalize() -> ** __destruct()**
Equivalente al final de java -> igual, final
Equivalente al implements de java -> igual, implements
Similar al import -> require o include
Magic method -> los métodos especiales que empiezan por dos guiones bajos, como el __construct() o el __get() y __set()
cómo se comprueba si una variable está inicializada o no? -> isset(variable)

21
Q

Qué son los traits en php?

A

Es una forma de reutilización de métodos

Un trato es como una clase que empieza por la palabra trait en lugar de class, que tiene métodos que queremos reutilizar

El la clase que quiere reutilizar esos métodos, para usarlos, se pone un bloque
use Trato1, Trato2..{
Trato1::metodo
}

Cuando hay tratos y herencia, ante métodos con el mismo nombre, tiene preferencia primero el metodo de la propia clase, luego el del trato y luego el de la clase padre
class member > trait method > inherited method

22
Q

Cómo se pasa en php por referencia una variable?

A

Con el &

function foo(&$var)
{
$var++;
}

23
Q

Algunos ejemplos de cachés para php

A

b) OpCache
c) WinCache Extension for PHP
d) Alternative PHP Cache

24
Q

Qué significa PHP?

A

PHP: Hypertext Pre-Processor

25
Q

Qué es PHP Pear?

A

Es un entorno de desarrollo y sistema de distribución para componentes de código PHP

26
Q

Cómo se llaman los Objetos de Datos de PHP que facilitan el acceso a BBDD

A

PHP PDO

También se puede usar otra interfaz ligera similar como mysqli

27
Q

Señale la manera de proceder en el lenguaje PHP, para poder utilizar dentro de una función una variable que se define globalmente en una página

A

Se podría declarar la variable como global al principio de la función mediante el uso de la palabra reservada “global” seguido del nombre de la variable que se ha definido en el ámbito global.

28
Q

utilidades de software disponibles en el mercado orientadas a capa de abstracción de datos, basadas en PHP

A

a) Doctrine
c) Eloquent (ORM)
d) Propel

29
Q

La visibilidad de una propiedad, un método o (a partir de PHP 7.1.0) una constante se puede definir anteponiendo a su declaración una de las siguientes palabras reservadas:

A

Private, public, protected

30
Q

En PHP, hay constantes mágicas, qué son? di algunas

A

Son constantes predefinidas, tienen el formato __CONSTANTE__ como.

DIR,LINE,CLASS,METHOD,FUNCTION,TRAIT,NAMESPACE

31
Q

En php, qué dos formas de imprimir por consola hay?

A

print(…)
echo …

echo va sin paréntesis

32
Q

Funciones de cadena en php, qué hacen?
substr()
strcmp()
strpos()
strlen()
strstr()

printf()
preg_replace()
preg_split()
preg_match()

Arrays—-
range()
array_shift()
array_pop()
array_push()
count()
str_split()

A

substr() ->extra un substring de la cadena. Si se pone un solo valor, saca del inicio hasta ese valor. Si se ponen dos valores saca del valor 1 al valor 2. Si uno de los valores es negativo, significa que busca la posción desde el final
strcmp() -> Comparación segura de cadenas a nivel binario
strpos() -> Última aparición de un substring en un string
strlen() -> Longitud de una cadena
strstr() -> Primera aparición de un substring en un string

printf ->Impresión formateada ->printf(“Hay %u minutos en %s”.PHP_EOL, $minutos, $unidadTiempo);
preg_replace -> Detecta un patrón con una exp reg, y lo reemplaza por otra cadena
preg_split() -> Separa la cadena por el separador localizado con una exp reg
preg_match() -> Encuentra una cadena que cumpla la exp reg
range() -> crea un array dando valores entre un rango y con los saltos indicados -> range(0, 100, 10))
array_shift() -> Desplaza los elmentos hacia la izquierda, eliminando y retornando el primero. Como si el array fuese una pila
array_pop() -> Borra el último elemento
array_push() -> Añade un elemento al final
count() -> cuenta los elementos de un array
str_split() -> trocea una cadena con un separador generando un array

33
Q

Añadir alguna cosa de Pyhton, hay dos preguntas del año pasado que no habríamos dado.
Mirar que son y categorizar las herramientas
Keras
Mahotas
Openpyxl
Numpy

A

Keras -> Keras es una API de redes neuronales escrita en lenguaje Python
Mahotas -> Mahotas es una biblioteca de software en lenguaje Python para análisis de imágenes.
Openpyxl -> Librería Python para leer/escribir archivos Excel 2010 xlsx/xlsm/xltx/xltm
Numpy -> NumPy es una biblioteca para el lenguaje de programación Python que da soporte para crear vectores y matrices grandes multidimensionales, junto con una gran colección de funciones matemáticas de alto nivel para operar con ellas

34
Q

Ver la respuesta correcta y estudiar esas funciones

A

La correcta es count()

35
Q

Ver la respuesta correcta e investigar sobre el tema

A

Utilizando la clase Gender de la extensión PECL Gender

36
Q

Varios Phyton

  • Uso de llaves e identación
  • Formato if
  • Cómo declarar variables
  • Interpretar variables dentro de las comillas
  • Concatenar cadenas
  • Función para pedir por consola al usuario introducir un dato
  • Cómo se define una función
  • Comentario multilínea
  • Para hacer un bucle
A
  • Uso de llaves e indentación -> No se ponen llaves, sino que hay que respetar la tabulación o indentado de cuatro espacios
  • Para terminar la línea -> Sólo usar un salto de línea, no punto y coma. El punto y coma se usa para poner dos sentencias en la misma línea. Para hacer una sentencia larga que ocupa dos líneas, terminar la primera con \
  • Formato if -> if condicion : –> Ver que es sin paréntesis y hay que poner los dos puntos
    else: –> También con los dos puntos
    no hace falta poner llaves, sólo respetar la tabulación
  • Cómo declarar variables -> No es necesario declararlas. No se pone su tipo. Si se le asigna otro tipo, cambia de tipo
  • Interpretar variables dentro de las comillas -> Se pone la letra f delante de las comillas, y dentro las variables en llaves: print(f “hola {nombre}”)
  • Concatenar cadenas -> con el signo más +
  • Función para pedir por consola al usuario introducir un dato -> input(“Mensaje para el usuario -> Devuelve el valor introducido.
  • Función -> def nombreFuncion(): –> Ver que se pone def y se termina con dos puntos
  • Comentario multilínea -> tres dobles comillas o comillas simples seguidas para iniciar el bloque y otras tres para cerrarlo
  • Bucle para recorrer una lista -> Las listas son arrays. for persona in personas. Despues no hay que abrir llaves, sólo respetar la tabulación con todas las instrucciones que queramos
37
Q

Varios Python II
- Cómo se nombran las clases
- cómo se nombran las variables
- Variables especiales del lenguaje
- Caracteres que no admite en los identificadores
- Decoradores, que son y cómo se usan
- Diccionarios, cómo son y como se accede a sus elementos
- Qué es el tipo de dato tupla

A
  • Cómo se nombran las clases -> La primera en mayúscula
  • cómo se nombran las variables -> La primera en minúscula o guión bajo o doble guión bajo, esto es que es privada.
  • Variables especiales del lenguaje -> Terminan con dos guiones bajos
  • Caracteres que no admite en los identificadores -> no admite caracteres de puntuación como @, $ o %.
  • Decoradores: Es una función que anida a otra y que se llamará antes de de una tercera función a la que se le pone encima @mi_deocrador. Al llamar a al función decorada con esa etiqueta, se ejecutará primero el decorador
  • Diccionarios: son como los object de json. Se puede crear con las llaves como en json directamente o con la función dict() y se accede a sus elementos con dic1.get(clave) o dic1[‘clave’] o dic1[posicion] -> ej. opositor[‘notas’][1]
  • La tupla es como una lista, pero inmutable
38
Q

Ver ejemplos de Python
https://ellibrodepython.com/colecciones-python
Sacar tarjetas de operadores y otras

A

a

39
Q

Operadores lógicos en Python?
Operadores de identidad?
Operador walrus?

A

and
or
not

is
is not

:= -> asigna y devuleve una variable
print(x := “Python”) -> le asgina el valor a x y lo devuelve para que lo pueda usar print

40
Q

Expresiones regulares en cada lenguaje, como se evalúan.

A

Java -> cadena.matches(regexp)
C# -> Regexp.match(cadena, regexp)
Js -> regexp.test(cadena)
PhP -> preg_match($regexp, $cadena)
Python -> re.match(regexp, cadena)

En los lenguajes de programación Java, JavaScript (JS), C#, PHP y Python, se utilizan diferentes funciones o métodos para trabajar con expresiones regulares. A continuación, te mostraré cómo se evalúan las expresiones regulares en cada uno de estos lenguajes:

  1. Java:
    Sí, en Java también puedes utilizar el método matches() directamente en un objeto de tipo String. Este método evalúa si toda la cadena coincide con la expresión regular proporcionada. Aquí tienes un ejemplo utilizando este enfoque:

```java
public class Main {
public static void main(String[] args) {
String regex = “foo.*”;
String input = “foobar”;

    if (input.matches(regex)) {
        System.out.println("La cadena coincide con la expresión regular.");
    } else {
        System.out.println("La cadena NO coincide con la expresión regular.");
    }
} } ~~~

En este caso, el método matches() devuelve true si la cadena completa coincide con la expresión regular y false en caso contrario. Es una forma más concisa de verificar coincidencias en Java sin necesidad de utilizar las clases Pattern y Matcher.

  1. JavaScript (JS):
    En JS, puedes utilizar el objeto RegExp para trabajar con expresiones regulares. Puedes usar el método test() para verificar si una cadena coincide con la expresión regular y el método exec() para encontrar coincidencias y obtener detalles sobre ellas:

```javascript
const regex = /foo.*/;
const input = “foobar”;

if (regex.test(input)) {
console.log(“La cadena coincide con la expresión regular.”);
} else {
console.log(“La cadena NO coincide con la expresión regular.”);
}
~~~

  1. C#:
    En C#, puedes usar la clase System.Text.RegularExpressions.Regex para trabajar con expresiones regulares. Puedes usar el método Match() para encontrar la primera coincidencia y el método Matches() para obtener todas las coincidencias:

```csharp
using System;
using System.Text.RegularExpressions;

public class Program {
public static void Main() {
string regexPattern = @”foo.*”;
string input = “foobar”;

    Match match = Regex.Match(input, regexPattern);

    if (match.Success) {
        Console.WriteLine("La cadena coincide con la expresión regular.");
    } else {
        Console.WriteLine("La cadena NO coincide con la expresión regular.");
    }
} } ~~~
  1. PHP:
    En PHP, puedes utilizar las funciones preg_match() para encontrar la primera coincidencia y preg_match_all() para obtener todas las coincidencias de una expresión regular:

```php
$regexPattern = ‘/foo.*/’;
$input = ‘foobar’;

if (preg_match($regexPattern, $input)) {
echo ‘La cadena coincide con la expresión regular.’;
} else {
echo ‘La cadena NO coincide con la expresión regular.’;
}
~~~

  1. Python:
    En Python, puedes utilizar el módulo re para trabajar con expresiones regulares. Puedes usar la función re.match() para encontrar coincidencias al principio de la cadena, o re.search() para encontrar la primera coincidencia en cualquier lugar de la cadena. También, re.findall() para obtener todas las coincidencias:

```python
import re

regex_pattern = r’foo.*’
input_str = ‘foobar’

if re.match(regex_pattern, input_str):
print(‘La cadena coincide con la expresión regular.’)
else:
print(‘La cadena NO coincide con la expresión regular.’)
~~~

Estas son las funciones y métodos básicos para trabajar con expresiones regulares en cada uno de estos lenguajes. Cada lenguaje puede tener más funciones y opciones para trabajar con expresiones regulares, pero estos ejemplos deberían proporcionarte una base sólida para comenzar.