Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Quizz .

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Prueba Técnica - Desarrollador Backend PHP

(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

Fecha: 10/03/2020

Nombres y apellidos: Arquitectura y Diseño de Software


Brayan Andres Riaño Hernandez
6. Nombre los 5 principios SOLID en la POO:
1. Única Responsabilidad
Programación Orientada a Objetos 2. Abierto para extensión cerrado para modificación
3. Principio de sustitución
1. ¿Cuál es la descripción que cree que define mejor 4. Segregación de interface
el concepto 'clase' en la programación orientada 5. Inversión de dependencias
a objetos?:
7. En el diseño de clases de POO ¿qué propósito
a. Es un concepto similar al de 'array' tiene el principio “Open-Closed”?:
b. Es un tipo particular de variable El propósito es que a partir del modelo creado este
c. Es un modelo o plantilla a partir de la cual pueda ser extendido fácilmente pero no modificacion
creamos objetos 8. Dibuje a continuación un patrón de arquitectura MVC:

2. ¿Qué elementos cree que definen a un objeto?:


Modelo Vista
a. Sus atributos y sus métodos
b. La forma en que establece comunicación e
intercambia mensajes
c. Su interfaz y los eventos asociados Controlador

3. ¿Qué código de los siguientes tiene que ver con


la herencia?:
9. Nombre 3 patrones de diseño de software:
1. Singleton
a. public class Componente extends Producto
2. MVC
b. public class Componente implements
3. Patron estrategia
Producto 10. Mencione 3 frameworks en PHP:
c. public class Componente belong to Producto 1. Codeigniter
2. Laravel
4. ¿Qué significa instanciar una clase?: 3. Symfony

a. Duplicar una clase 11. Mencione 3 paradigmas de programación


b. Eliminar una clase distintos al POO:
c. Crear un objeto a partir de la clase 1. Estructurado
2. Funcional
5. ¿Qué significa sobrecargar (overload) un 3. Declarativo
¿Qué es una arquitectura monolítica?:
método?:
Es una arquitectura que esta fuertemente acoplada
en un solo bloque de programación
a. Crear un método con el mismo nombre pero
diferentes argumentos 12. ¿Qué es una aplicación isomórfica?:
b. Añadirle funcionalidades a un método Es una aplicación universal que comparte casi todo
c. Editarlo para modificar su comportamiento su código entre el cliente y el servidor
_______________________________________

1 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

13. ¿De qué se trata la especificación JWT?:


Es una especificación basada en solicitudes de PHP Práctico
autenticación para intercambiar datos entre un cliente
y un servidor basados en un algoritmo de 21. En PHP defina una clase de manera libre donde se
encriptación hs256 evidencie el uso de los conceptos básicos de la POO:

14. Dibuje la arquitectura headless (ejemplo libre):


<?php

class Person {
public $nombre = “”;
public $apellido = “”;
}

PHP Estándares y Prácticas


Recomendadas

16. ¿Qué es PSR-2 en PHP?:


_______________________________________
_______________________________________

17. ¿Qué es PSR-3 en PHP?:


_______________________________________
_______________________________________

18. ¿Qué es PSR-4 en PHP?:


_______________________________________
_______________________________________

19. ¿Qué es PSR-6 en PHP?:


_______________________________________
_______________________________________ 22. En un ejemplo simple y trivial de PHP defina una clase
con los métodos necesarios que demuestren el uso del
patrón “singleton”:
20. ¿Qué es PSR-7 en PHP?:
_______________________________________ <?php
_______________________________________

class Example {

2 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

Private: solo puede ser accedido en el contexto de la


private static $instance = NULL; clase
private function _construct() {} Protected: se puede acceder desde el contexto de la
clase y desde la que herede la clase
public static function getinstance() {
if (is_null(self::$instance)){ 25. ¿qué es Composer?:
self::$instance = new Singleton(); Es un manejador de paquetes para php
}
return self::$instance;
26. ¿qué es Guzzle Client?:
}
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________

27. ¿Qué es OPCache?:


_______________________________________
_______________________________________
_______________________________________

28. Complete el script imprimiendo el valor de la


constante mediante el uso del operador de
ámbito:

echo self::CONST_VALUE;

29. En PHP (fuera del operador de ámbito), existen 3


palabras clave utilizadas para acceder a
23. ¿Cómo aplica PHP el concepto POO de propiedades y métodos desde el interior de una
“encaṕsulamiento”?: clase; nombrarlas:
_______________________________________ _______________________________________
_______________________________________ _______________________________________
_______________________________________ _______________________________________
_______________________________________
_______________________________________ 30. En PHP ¿qué es una clase abstracta?:
Son clases que solo pueden ser heredas y definen
24. En PHP cúal es la diferencia entre la visibilidad de métodos para las clases que las extienden
las propiedades “public”, “private” y “protected”:
Public: puede ser accedida fuera del contexto de la
clase 31. En PHP defina una clase abstracta:

3 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

<?php

Abstract class PersonAbstract {

Abstract public function getPerson() {}


} 34. ¿de qué tipo es la siguiente clase y en qué casos de
usar?:

<?php

32. Dada la siguiente clase, defina la interface sugerida:

<?php
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________

35. En PHP defina una clase simple que utilice métodos


mágicos:

<?php

33. En PHP defina un mecanismo para agrupar funciones


básicas de matemáticas (sumar y restar) aplicando el
concepto de trait una clase que lo implemente:

<?php

4 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

38. En PHP defina un método básico que aplique los


lineamientos de documentación PHPDocumentor

<?php

36. En PHP defina una clase del tipo “final” y explique en


que casos se usa:

39. En PHP defina un ejemplo de inyección de


<?php
dependencias y explique que es este concepto

<?php

_______________________________________ _______________________________________
_______________________________________ _______________________________________
_______________________________________ _______________________________________
_______________________________________ _______________________________________
_______________________________________ _______________________________________

37. En PHP defina un método que maneje excepciones y


errores 40. En PHP defina una prueba unitaria para un método de
suma matemática 2 + 4
<?php
<?php

5 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

_______________________________________
_______________________________________

48. ¿qué son los Actions?:


_______________________________________
_______________________________________
_______________________________________

49. ¿qué propósito tiene el modelo?:


_______________________________________
_______________________________________
_______________________________________
API Rest / HTTP
PHP Seguridad 50. ¿Qué es REST?:
Es una interfaz de comunicación entre sistemas a
41. Mencione 2 métodos nativos para cifrar través del protocolo http que intercambia datos en
información mediante algoritmos crackeados: formato json
1. Md5
2. Sha1 51. Indique por lo menos 5 métodos HTTP y describa
42. ¿Cómo se previene la inyección de código SQL?: cada uno:
_______________________________________ Get: permite obtener datos
_______________________________________ Post: Permite crear datos
Put: permite actualizar datos
43. ¿Cómo se previene la suplantación de sesiones Patch: permite actualizar recursos
(session hacking / man in the middle)?: Delete: permite eliminar datos
Con el uso de librerias de autenticación basadas en
tokens 52. Indique por lo menos 5 códigos de estado HTTP:
1. 200
2. 500
3. 301
Symphony 4. 404
5. 402
44. ¿qué es un bundle?:
_______________________________________
53. Defina un objeto JSON personalizado para un
_______________________________________ response HTTP que indica la lista de 3 productos
_______________________________________ encontrados (asuma que se trata de un api rest
del tipo get):
45. ¿qué son las anotaciones en Symphony?: {statusCode: 200,
_______________________________________ productos: [
_______________________________________ {“nombre”: “x”,
_______________________________________ {nombre:”y”},
{“nombre”: “z”}
46. ¿qué entiende por YAML?: ]
_______________________________________ }
_______________________________________
_______________________________________

47. ¿Cómo describe el propósito de un controlador?:


_______________________________________

6 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

60. ¿qué es Doctrine?:


_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________

54. ¿Qué es GraphQL?:


_______________________________________
_______________________________________ 61. Construya una sentencia SQL que en sentido
_______________________________________ figurado retorne todos los productos vendido en
_______________________________________ el año actual, ordenados alfabéticamente y
_______________________________________ agrupados por sucursal:
Select nombre,valor from productos where fecha =
Drupal now() group by sucursal order by nombre desc

55. ¿qué es un tema?:


_______________________________________
_______________________________________ Versionamiento de código
_______________________________________
62. Mencione 3 plataformas git:
56. ¿qué son los módulos y en qué categorías se Github
clasifican?: Bitbucket
Son los elementos que permiten agregar nuevas Gitlab
funcionalidades a drupal.

57. ¿qué son los hooks?: 63. Indique los comandos “git” por consola
Son extensiones de código que me permiten necesarios para iniciar el versionamiento de un
modificar la funcionalidad sin alterar su código inicial proyecto nuevo en PHP hasta subir la primera
versión de código a una plataforma git (github
58. ¿qué es un nodo?: por ejemplo):
Es la unidad básica en la que drupal guarda su git init
contenido git remote add origin
_______________________________________ git add .
_______________________________________ git commit -m “”
_______________________________________ git push origin master

64. Indique el comando “git” que permite clonar un


proyecto de código ya existente:
Bases de datos git clone [url del repositorio]

59. Mencione 3 bases de datos no relacionales y en 65. El comando “git checkout -b hotfix” ¿qué hace
qué casos se recomienda usar: exactamente?:
mongoDB : cuando se requiere indexar contenido Crea una nueva rama hotfix y se mueve a ella
de forma rápida
RedisDB: es utilizada como base de datos cache 66. Describa un workflow en git:
Cassandra : para grandes volúmenes de datos Para un equipo de desarrollo se crea una copia de la
clave valor
rama master y de ella se implmentan copias para

7 de 8
Prueba Técnica - Desarrollador Backend PHP
(Por DieCam)
Estimado candidato, a continuación debe responder abiertamente cada una de las preguntas, el
tiempo estimado para el desarrollo de la prueba es de 45 minutos.

cada característica o bug a desarrollar y luego se Linux


mezclan todos los cambios en la rama de desarrollo,
se prueban en conjunto y se envia a la rama master 72. Indique los comandos por consola que se
para que entren a produccion requieren para entrar al directorio “Documents”,
crear un directorio “proyecto”, asignar permisos
de escritura al directorio, crear un archivo
Integración Continua “readme.txt”:
cd Documents
67. ¿qué es docker?: mkdir proyecto
Es una plataforma que permite desplegar imágenes chmod 476 proyecto
de un sistema en contenedores utilizando únicamente touch readme.txt
lo necesario para el fin que se crea
73. ¿Qué hace el comando “ls”?:
Lista los directorios y archivos que se encuentran en
68. Mencione algún software de integración continua la ubicación actual
con el que un equipo de desarrollo puede hacer
entrega continua de código y describalo: 74. ¿Qué comando permite hacer ping a otra
Gitlab CI es una plataforma que integra todas las máquina?:
herramientas para generar entregas y puesta en ping “ip de la maquina”
marcha del código que se va escribiendo y envia
al repositorio
Metodologías
75. ¿qué es XP Programming?:
Es una metodología ágil que se basa en la
Infraestructura adaptabilidad al cambio de los requerimientos por
parte del cliente.
69. ¿qué entiende por varnish?:
Es un servicio de cache para almacenar una copia 76. ¿qué es y cómo se usa TDD en el desarrollo de
temporal del recurso solicitado y mejorar el tiempo de software?:
respuesta de la solicitud TDD es una practica de programación que se centra
_______________________________________ en desarrollar primero los test y luego pasarlos para
_______________________________________ comenzar a escribir código robusto y mantenible.
_______________________________________
_______________________________________ 77. ¿qué entiende por DevOps?:
Es una metodología de desarrollo de software que se
centra en la comunicación y la integración continua
70. ¿qué entiende por WAF?: de los cambios que se realizan en el desarrollo del
Es un firewall de aplicaciones web que se encarga de proyecto
redirigir el trafico y bloquear peticiones no autorizadas
78. ¿qué es Scrum?:
Es una metodología ágil de desarrollo que se centra
71. ¿qué entiende por Akamai?: en entregar valor al cliente a través de iteracciones
_______________________________________ rápidas y con pequeños ciclos.
_______________________________________
_______________________________________
_______________________________________
_______________________________________

8 de 8

También podría gustarte