Formato de compresión que se distribuye bajo la licencia GPL (General Public License, Licencia Pública GNU).
Las tasas de compresión del formato son bastante superiores a las que ofrecen otros propietarios, especialmente en lo que a ofimática se refiere.
Unidad de disquete generalmente de 1,44 megas de capacidad
Módulo, paquete o parche que permite actualizar una aplicación o un sistema operativo.
Una secuencia ordenada de pasos para resolver un problema.
Ejemplo:
Para hacer un café:
- Calentar agua
- Poner café en la cafetera
- Verter agua
- Servir
El software "Alpha" es un software de computadora que aún se encuentra en la fase inicial de prueba.
Define dónde es accesible una variable:
- Local: dentro de una función
- Global: en todo el programa
Es un conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizada por otro software como una capa de abstracción.
Ejemplo: usar la API de Google Maps para mostrar un mapa en tu app.
La API Fetch proporciona una interfaz para recuperar recursos (incluso a través de la red). Resultará familiar a cualquiera que haya usado XMLHttpRequest, pero la nueva API ofrece un conjunto de características más potente y flexible.
Una colección ordenada de elementos del mismo tipo. Cada elemento se accede por un índice.
Ejemplo:
nombres = ["Ana", "Luis", "Pedro"]
mostrar nombres[1] // Muestra "Luis"
Permite que un programa no se detenga mientras espera un resultado (como una descarga o lectura de archivo).
Ejemplo:async/await en JavaScript o asyncio en Python.
Acrónimo en inglés de Active Server Pages. Páginas de Servidor Activo. Son un tipo de HTML que además de contener los códigos y etiquetas tradicionales, cuenta con programas (o scripts) que se ejecutan en un servidor Microsoft Internet Information Server antes de que se desplieguen en la pantalla del usuario.
Es el proceso formal de solicitar información y comentarios sobre los resultados del software todavía en programación. Es la segunda parte de las pruebas que se realizan del software por los usuarios finales.
Permite repetir una serie de instrucciones múltiples veces.
Tipos comunes:
- while: mientras se cumpla una condición
- for: número determinado de repeticiones
for:
para i desde 1 hasta 5 hacer
mostrar i
fin para
While:
i ← 1
mientras i ≤ 5 hacer
mostrar i
i ← i + 1
fin mientras
Lenguaje de programación.
C# (pronunciado si sharp en inglés) es un lenguaje de programación multiparadigma desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por el signo ♯, el cual se lee como sharp en inglés para notación musical. Es un juego de palabras, pues '"C#" significa, musicalmente hablando, "do sostenido", donde el símbolo # indica que una nota (en este caso do, representada por C) debe ser un semitono más alta. Esto es una metáfora de la superioridad de C# sobre su antecesor C++ y a su vez hace alusión a la misma metáfora que se ideó para dar nombre a C++.1 Además, el símbolo # puede ser imaginado como la unión de cuatro símbolos +, continuando así con el sentido de progresión de los lenguajes C.
Aunque C# forma parte de la plataforma .NET, esta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows Microsoft, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.
Lenguaje de programación.
Funciones que se pasan como argumento a otra función para que se ejecuten después.
Ejemplo JavaScript:
function saludar(nombre) {
console.log("Hola " + nombre);
}
function procesarEntrada(callback) {
let nombre = "Carlos";
callback(nombre);
}
procesarEntrada(saludar);
La carga diferida (en inglés lazy loading) es un patrón de diseño comúnmente usado en la programación informática que consiste en retrasar la carga o inicialización de un objeto hasta el mismo momento de su utilización. Esto contribuye a la eficiencia de los programas, evitando la precarga de objetos que podrían no llegar a utilizarse. El opuesto de la carga diferida es la carga previa, precarga o eager loading.
Automatización de pruebas y publicación del código cada vez que se actualiza.
Herramientas: Jenkins, GitHub Actions, GitLab CI, Travis CI.
El tiempo durante el cual una variable existe en memoria.
Una plantilla para crear objetos. Define atributos (variables) y métodos (funciones).
clase Persona
nombre
función saludar()
mostrar "Hola, soy " + nombre
Programas que interactúan mediante texto desde la terminal, sin entorno gráfico.
Ejemplo:git, npm, composer
Texto en el código que no se ejecuta, sirve para documentar.
Ejemplo:
// Esto es un comentario en muchos lenguajes
- Compilar: convertir el código fuente a lenguaje máquina antes de ejecutarlo (C, C++)
- Interpretar: ejecutar el código línea por línea (Python, JavaScript)
Proceso de eliminar espacios y comentarios para que el código ocupe menos y cargue más rápido (útil en web).
Permiten ejecutar código solo si se cumple una condición.
Ejemplo en pseudocódigo:
si (edad >= 18) entonces
mostrar "Eres mayor de edad"
sino
mostrar "Eres menor de edad"
Una constante es similar a una variable, pero su valor no puede cambiar una vez asignado.
Ejemplo en pseudocódigo:
PI = 3.1416
Un módulo, librería o recurso que tu programa necesita para funcionar.
Ejemplo:numpy es una dependencia para trabajar con arrays en Python.
Inyección de dependencias
Técnica donde los objetos no crean sus dependencias, sino que se les proporcionan desde fuera, mejorando el diseño y la prueba del código.
Proceso de encontrar y corregir errores (bugs) en el código.
El TDD o Test Driven Development (desarrollo dirigido por pruebas) es una práctica de programación en la que se comienzan escribiendo las pruebas en primer lugar, escribiendo el código fuente a continuación, pasando correctamente la prueba y terminando con la refactorización del código escrito.
El objetivo de esta técnica es conseguir un código más robusto y un desarrollo mucho más rápido. Gracias a esto se pueden escribir las pruebas e ir consiguiendo que se mantengan fáciles de escribir mediante tres cuestiones muy importantes:
· Crear continuamente documentación.
· Rediseñar periódicamente el código para mantenerlo siempre de forma fácilmente comprobable.
· Crear una red de seguridad para que los cambios se hagan con confianza.
Un trigger es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los trigger se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista. Estos triggers se activan cuando se desencadena cualquier evento válido, con independencia de que las filas de la tabla se vean o no afectadas.
Modelo de gráficos en que se da a las imágenes un aspecto de dibujos animados.
Sistema de contenedores ligeros para ejecutar tu aplicación con todo su entorno (librerías, configuraciones) de forma aislada.
Document Object Model o DOM ('Modelo de Objetos del Documento' o 'Modelo en Objetos para la Representación de Documentos') es esencialmente una interfaz de plataforma, o API de programación para documentos HTML, que proporciona un conjunto estándar de objetos para representar documentos HTML, XHTML, XML y SVG,nota 1 un modelo estándar sobre cómo pueden combinarse dichos objetos, y una interfaz estándar para acceder a ellos y manipularlos.1 A través del DOM, los programas pueden acceder y modificar el contenido, estructura y estilo de los documentos mencionados, que es para lo que se diseñó principalmente.
De esta manera el DOM permite acceso dinámico a través de la programación para acceder, añadir y cambiar dinámicamente contenido estructurado en documentos con lenguajes como ECMAScript (JavaScript). De hecho DOM como interfaz de plataforma multilingüe (cross-language API) para acceder y modificar documentos XML es independiente del lenguaje, de esta manera una variedad de lenguajes de programación utilizan DOM cotidianamente —como C++ y Python entre otros— a medida que interactúan con XML para diversas tareas.
Ocultar los detalles internos de una clase y exponer solo lo necesario.
Es una tecnología avanzada que hace posible abrir una sesión de comunicación interactiva entre el navegador del usuario y un servidor. Con esta API, puede enviar mensajes a un servidor y recibir respuestas controladas por eventos sin tener que consultar al servidor para una respuesta.
Aplicación que incluye herramientas para programar más cómodamente: editor, compilador, depurador, autocompletado, etc.
Ejemplos: Visual Studio, PyCharm, VS Code, Eclipse.
Manejo de datos que entran y salen del programa:
- Entrada: teclado, ficheros, sensores, etc.
- Salida: pantalla, archivos, red...
Ejemplo Python:
nombre = input("¿Cómo te llamas?")
print("Hola, " + nombre)
En el caso de bug, se trata de un concepto utilizado por todos aquellos que tienen conocimientos en el campo de la informática. Esta palabra inglesa, cuya traducción literal es “bicho”, se usa para nombrar a los errores que se producen en un programa informático.
En un principio, el término "wireframe" significaba una representación visual de objetos tridimensionales, como aquellos empleados en el desarrollo y diseño de productos. Ahora también se usa para describir el modelado 3D en animación por computadora y en el diseño y desarrollo de aplicaciones móviles y páginas web 2D.
Forma de organizar y almacenar datos. Ejemplos:
- Array / Lista
- Pila (Stack): LIFO (último en entrar, primero en salir)
- Cola (Queue): FIFO (primero en entrar, primero en salir)
- Diccionario / Mapa: clave → valor
- Árbol / Grafo: estructuras más complejas
Acciones que ocurren en un programa (clics, teclas, mensajes...) y que pueden disparar código.
Muy común en desarrollo web y videojuegos.
Mecanismo para manejar errores durante la ejecución sin que el programa se bloquee.
Ejemplo python:
try:
resultado = 10 / 0
except:
print("Error: división por cero")
También son conocidas como regex o regexp. Es una secuencia de caracteres que conforma un patrón de búsqueda. Se utilizan principalmente para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones.
- \t — Representa un tabulador.
- \r — Representa el "retorno de carro" o "regreso al inicio" o sea el lugar en que la línea vuelve a iniciar.
- \n — Representa la "nueva línea" el carácter por medio del cual una línea da inicio. Es necesario recordar que en Windows es necesaria una combinación de \r\n para comenzar una nueva línea, mientras que en Unix solamente se usa \n y en Mac_OS clásico se usa solamente \r.
- \a — Representa una "campana" o "beep" que se produce al imprimir este carácter.
- \e — Representa la tecla "Esc" o "Escape"
- \f — Representa un salto de página
- \v — Representa un tabulador vertical
- \x — Se utiliza para representar caracteres ASCII o ANSI si conoce su código. De esta forma, si se busca el símbolo de derechos de autor y la fuente en la que se busca utiliza el conjunto de caracteres latín-1 es posible encontrarlo utilizando \xA9".
- \u — Se utiliza para representar caracteres Unicode si se conoce su código. "\u00A2" representa el símbolo de centavos. No todos los motores de Expresiones Regulares soportan Unicode. El .Net Framework lo hace, pero el EditPad Pro no, por ejemplo.
- \d — Representa un dígito del 0 al 9.
- \w — Representa cualquier carácter alfanumérico.
- \s — Representa un espacio en blanco.
- \D — Representa cualquier carácter que no sea un dígito del 0 al 9.
- \W — Representa cualquier carácter no alfanumérico.
- \S — Representa cualquier carácter que no sea un espacio en blanco.
- \A — Representa el inicio de la cadena. No un carácter sino una posición.
- \Z — Representa el final de la cadena. No un carácter sino una posición.
- \b — Marca la posición de una palabra limitada por espacios en blanco, puntuación o el inicio/final de una cadena.
- \B — Marca la posición entre dos caracteres alfanuméricos o dos no-alfanuméricos.
Es la frecuencia (tasa) a la cual un dispositivo muestra imágenes llamadas fotogramas o cuadros. El término se aplica por igual a películas y cámaras de vídeo, gráficos por computadora y sistemas de captura de movimiento.
(sigla FPS, símbolo f/s, también conocida como 'cuadros por segundo')
Un bloque de código que se puede reutilizar.
Ejemplo en pseudocódigo:
función saludar(nombre)
mostrar "Hola, " + nombre
fin función
Parámetro vs Argumento
- Parámetro: variable definida en la función (
nombreen el ejemplo anterior). - Argumento: valor real que se pasa a la función (
"Carlos"cuando llamas asaludar("Carlos")).
Una función callback es aquella que es pasada como argumento a otra función para que sea "llamada de nuevo" (call back) en un momento posterior. Una función que acepta otras funciones como argumentos es llamada función de orden-superior (High-Order), y contiene la lógica para determinar cuándo se ejecuta la función callback. Es la combinación de estas dos la que nos permite ampliar nuestra funcionalidad.
Windows Presentation Foundation (WPF) es una tecnología de Microsoft, presentada como parte de Windows Vista. Permite el desarrollo de interfaces de interacción en Windows tomando características de aplicaciones Windows y de aplicaciones web.
Git es un sistema de control de versiones distribuido, creado por Linus Torvalds en 2005. Permite a múltiples desarrolladores trabajar de forma simultánea en un proyecto, manteniendo un historial completo de cambios, versiones y colaboraciones sin necesidad de conexión constante con un servidor central.
Términos esenciales en Git
- Repositorio (Repository): Es el lugar donde se almacena todo el historial del proyecto. Puede ser local (en tu máquina) o remoto (como en GitHub, GitLab o Bitbucket).
- Commit: Es una captura de los cambios realizados en los archivos del proyecto. Incluye un mensaje descriptivo y sirve como un punto de control en la historia del desarrollo.
- Rama (Branch): Es una línea paralela de desarrollo. La rama principal suele llamarse
mainomaster, y se pueden crear otras ramas para desarrollar nuevas funcionalidades sin afectar al código principal. - Merge (Fusión): Es la acción de combinar los cambios de una rama con otra. Suele hacerse cuando se termina una funcionalidad y se quiere unir a la rama principal.
- Pull: Descarga los cambios desde el repositorio remoto y los fusiona con tu rama local.
- Push: Envía tus commits locales al repositorio remoto.
- Clone: Crea una copia local de un repositorio remoto.
- Fetch: Descarga los cambios del remoto pero sin fusionarlos automáticamente (a diferencia de
pull). - Checkout: Cambia de rama o te traslada a un commit específico del historial.
- Staging Area (o Index): Zona intermedia donde se preparan los cambios antes de confirmarlos con un commit. Se añaden con
git add. - HEAD: Es el puntero que indica la posición actual del repositorio (normalmente apunta a la rama activa o al último commit).
- Conflict (Conflicto): Ocurre cuando Git no puede fusionar automáticamente los cambios entre ramas. Requiere intervención manual.
Una clase puede heredar atributos y métodos de otra clase.
Ejemplo:
clase Empleado hereda de Persona
sueldo
Un camino de ejecución independiente dentro de un mismo programa. Se usa para tareas simultáneas (multitarea o concurrencia).
Una hoja de diseño de personaje, hoja modelo, tablero de personaje, rotación o estudio de personaje es un documento utilizado como guía para la apariencia, poses y gestos de un personaje original en animación, cómics y videojuegos. Este documento guía suele ilustrarse durante la fase de arte conceptual o de preproducción de un proyecto. Cuando se trabaja en colaboración, todos los personajes de tu proyecto deben tener su propia hoja modelo creada por el diseñador de personajes.
Siglas en inglés de HyperText Markup Language (‘lenguaje de marcado de hipertexto’), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, juegos, entre otros.
Es el acto de incluir una librería externa o archivo para usar sus funciones o definiciones.
Ejemplo:
importar móduloX
ISO 3166-1 como parte del estándar ISO 3166 proporciona códigos para los nombres de países y otras dependencias administrativas.
Lenguaje desarrollado por Sun Microsystems en conjunto con Netscape; aunque es parecido a Java se diferencia de él en que los programas están incorporados en el archivo HTML.
Los datos de una imagen pueden ser grabados en diferentes formatos. El jpg es, sin duda, el formato más popular. Su gran ventaja es ser un formato comprimido, lo que le permite ocupar poco espacio en la memoria de la cámara o ser enviado con rapidez por internet.
Parte central del sistema operativo que gestiona los recursos del sistema, como la memoria, el procesador y los dispositivos. Actúa como intermediario entre el hardware y el software.
XAML (acrónimo pronunciado xammel del inglés eXtensible Application Markup Language, Lenguaje Extensible de Formato para Aplicaciones en español) es el lenguaje de formato para la interfaz de usuario para la Base de Presentación de Windows (WPF por sus siglas en inglés) y Silverlight(wpf/e), el cual es uno de los "pilares" de la interfaz de programación de aplicaciones .NET en su versión 3.0 (conocida con anterioridad con el nombre clave WinFX).
Markdown es un lenguaje de marcado ligero que permite dar formato al texto de forma sencilla y legible. Fue creado por John Gruber con la ayuda de Aaron Swartz en 2004, y su objetivo principal es que el texto sea fácil de escribir y de leer tanto en su forma original como una vez convertido a HTML.
Se utiliza comúnmente para redactar documentación, archivos README, publicaciones en foros y mensajes en plataformas colaborativas como GitHub o Discord.
Ejemplos comunes de formato en Markdown:
**negrita**→ negrita*cursiva*→ cursiva# Título→ Título de nivel 1- Elemento→ Lista con viñetas[texto](enlace)→ Enlace
Es compatible con la mayoría de editores de texto modernos y plataformas web.
Es como una tabla de filas y columnas, útil para representar tableros, imágenes, etc.
Ejemplo:
matriz = [[1, 2], [3, 4]]
mostrar matriz[0][1] // Muestra 2
Pequeño servicio independiente que hace una sola cosa y se comunica con otros microservicios por red.
Muy usado en sistemas grandes y escalables.
Capa de código que se ejecuta entre la petición y la respuesta en apps web.
Ejemplo: middleware de autenticación.
Un mockup es un modelo o un prototipo que se utiliza para exhibir o probar un diseño. El término, que no forma parte del diccionario de la Real Academia Española (RAE) y procede del inglés mock-up, suele ser desarrollado para conocer la opinión de usuarios o consumidores.
Gracias a un mockup, un diseñador puede analizar y mostrar cómo avanza su trabajo. De este modo, si es necesario realizar cambios, dichas modificaciones se establecen antes de la presentación de la versión final del producto.
En ocasiones el mockup es una maqueta realizada a escala, sin ningún tipo de funcionalidad. En otros casos el mockup presenta herramientas y opciones que permiten su uso y su evaluación en funcionamiento.
El modo Modelado en espejo refleja ediciones a una parte de un modelo sobre una línea de eje. Por ejemplo, un objeto simétrico puede ser creado modelando la mitad del objeto y luego reflejar esa mitad a través del plano para crear el modelo completo. Mientras el modo Modelado en espejo está activado toda modificación realizada utilizando la herramienta Editar subdivisión es reflejada.
Un módulo (o librería) es un conjunto de funciones, clases u objetos ya definidos que puedes importar y reutilizar.
Ejemplo en Python:
import math
print(math.sqrt(16)) # Imprime 4
Es un término que hace referencia a una serie de rutinas de programación que permiten el diseño, la creación y la representación de un videojuego.
Tecnología de los materiales y de las estructuras en la que el orden de magnitud se mide en nanómetros.
Valor especial que indica la ausencia de un valor o referencia. Se usa para señalar que una variable no apunta a ningún objeto o dato válido. Es fuente común de errores si no se gestiona correctamente (por ejemplo, null reference exceptions).
Instancia concreta de una clase.
Ejemplo:
p = nueva Persona()
p.nombre = "Lucía"
p.saludar()
La ofuscación se refiere a encubrir el significado de una comunicación haciéndola más confusa y complicada de interpretar.
El operador ternario es la forma corta de la sentencia if { ... } else { ... }, por lo que en lugar de escribir el código del siguiente ejemplo:
$resultado = $condicion ? 'verdadero' : 'falso';
Permiten realizar operaciones con variables:
- Aritméticos:
+,-,*,/,% - Comparación:
==,!=,>,<,>=,<= - Lógicos:
&&(AND),||(OR),!(NOT)
Desde un punto de vista de los videojuegos, la optimización es la búsqueda y el hecho de mejorar el rendimiento de un videojuego o dispositivo, a partir de determinados cambios lógicos (software) o físicos (hardware)
Convierte objetos de código en registros de base de datos y viceversa.
Ejemplos:
- Django ORM (Python)
- Eloquent (Laravel - PHP)
- Hibernate (Java)
Un paradigma de programación es una manera o estilo de programación de software. Existen diferentes formas de diseñar un lenguaje de programación y varios modos de trabajar para obtener los resultados que necesitan los programadores. Se trata de un conjunto de métodos sistemáticos aplicables en todos los niveles del diseño de programas para resolver problemas computacionales.
Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.
Tipos de patrones de diseño de sotware
Los patrones de diseño más utilizados se clasifican en tres categorías principales, cada patrón de diseño individual conforma un total de 23 patrones de diseño. Las cuatro categorías principales son:
- Patrones creacionales
- Patrones estructurales
- Patrones de comportamiento
Patrones creacionales
Los patrones de creación proporcionan diversos mecanismos de creación de objetos, que aumentan la flexibilidad y la reutilización del código existente de una manera adecuada a la situación. Esto le da al programa más flexibilidad para decidir qué objetos deben crearse para un caso de uso dado.
Estos son los patrones creacionales:
Abstract Factory
En este patrón, una interfaz crea conjuntos o familias de objetos relacionados sin especificar el nombre de la clase.
Builder Patterns
Permite producir diferentes tipos y representaciones de un objeto utilizando el mismo código de construcción. Se utiliza para la creación etapa por etapa de un objeto complejo combinando objetos simples. La creación final de objetos depende de las etapas del proceso creativo, pero es independiente de otros objetos.
Factory Method
Proporciona una interfaz para crear objetos en una superclase, pero permite que las subclases alteren el tipo de objetos que se crearán. Proporciona instanciación de objetos implícita a través de interfaces comunes
Prototype
Permite copiar objetos existentes sin hacer que su código dependa de sus clases. Se utiliza para restringir las operaciones de memoria / base de datos manteniendo la modificación al mínimo utilizando copias de objetos.
Singleton
Este patrón de diseño restringe la creación de instancias de una clase a un único objeto.
Patrones estructurales
Facilitan soluciones y estándares eficientes con respecto a las composiciones de clase y las estructuras de objetos. El concepto de herencia se utiliza para componer interfaces y definir formas de componer objetos para obtener nuevas funcionalidades.
Adapter
Se utiliza para vincular dos interfaces que no son compatibles y utilizan sus funcionalidades. El adaptador permite que las clases trabajen juntas de otra manera que no podrían al ser interfaces incompatibles.
Bridge
En este patrón hay una alteración estructural en las clases principales y de implementador de interfaz sin tener ningún efecto entre ellas. Estas dos clases pueden desarrollarse de manera independiente y solo se conectan utilizando una interfaz como puente.
Composite
Se usa para agrupar objetos como un solo objeto. Permite componer objetos en estructuras de árbol y luego trabajar con estas estructuras como si fueran objetos individuales.
Decorator
Este patrón restringe la alteración de la estructura del objeto mientras se le agrega una nueva funcionalidad. La clase inicial permanece inalterada mientras que una clase decorator proporciona capacidades adicionales.
Facade
Proporciona una interfaz simplificada para una biblioteca, un marco o cualquier otro conjunto complejo de clases.
Flyweight
El patrón Flyweight se usa para reducir el uso de memoria y mejorar el rendimiento al reducir la creación de objetos. El patrón busca objetos similares que ya existen para reutilizarlo en lugar de crear otros nuevos que sean similares.
Proxy
Se utiliza para crear objetos que pueden representar funciones de otras clases u objetos y la interfaz se utiliza para acceder a estas funcionalidades
Patrones de comportamiento
El patrón de comportamiento se ocupa de la comunicación entre objetos de clase. Se utilizan para detectar la presencia de patrones de comunicación ya presentes y pueden manipular estos patrones.
Estos patrones de diseño están específicamente relacionados con la comunicación entre objetos.
Chain of responsibility
El patrón de diseño Chain of Responsibility es un patrón de comportamiento que evita acoplar el emisor de una petición a su receptor dando a más de un objeto la posibilidad de responder a una petición.
Command
Convierte una solicitud en un objeto independiente que contiene toda la información sobre la solicitud. Esta transformación permite parametrizar métodos con diferentes solicitudes, retrasar o poner en cola la ejecución de una solicitud y respaldar operaciones que no se pueden deshacer.
Interpreter
Se utiliza para evaluar el lenguaje o la expresión al crear una interfaz que indique el contexto para la interpretación.
Iterator
Su utilidad es proporcionar acceso secuencial a un número de elementos presentes dentro de un objeto de colección sin realizar ningún intercambio de información relevante.
Mediator
Este patrón proporciona una comunicación fácil a través de su clase que permite la comunicación para varias clases.
Memento
El patrón Memento permite recorrer elementos de una colección sin exponer su representación subyacente.
Observer
Permite definir un mecanismo de suscripción para notificar a varios objetos sobre cualquier evento que le suceda al objeto que está siendo observado.
State
En el patrón state, el comportamiento de una clase varía con su estado y, por lo tanto, está representado por el objeto de contexto.
Strategy
Permite definir una familia de algoritmos, poner cada uno de ellos en una clase separada y hacer que sus objetos sean intercambiables.
Template method
Se usa con componentes que tienen similitud donde se puede implementar una plantilla del código para probar ambos componentes. El código se puede cambiar con pequeñas modificaciones.
Visitor
El propósito de un patrón Visitor es definir una nueva operación sin introducir las modificaciones a una estructura de objeto existente.
En informática, la persistencia se refiere a la propiedad de los datos para que estos sobrevivan de alguna manera.
En programación, la persistencia es la acción de preservar la información de un objeto de forma permanente (guardado), pero a su vez también se refiere a poder recuperar la información del mismo (leerlo) para que pueda ser nuevamente utilizado.
PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML.
Capacidad de usar el mismo nombre de método con comportamientos distintos según el contexto.
Es el proceso de escribir instrucciones (código) que una computadora puede entender y ejecutar para realizar tareas específicas.
Instrucción utilizada para solicitar información específica de una base de datos. En SQL, por ejemplo, una query permite seleccionar, insertar, actualizar o eliminar datos. Es fundamental en programación orientada a bases de datos.
Estructura de datos que sigue el principio FIFO (First In, First Out), donde el primer elemento en entrar es el primero en salir. Se usa frecuentemente en programación para gestionar tareas en espera, como procesos en un sistema operativo o mensajes en una aplicación.
Sigla de Random Access Memory (‘memoria de acceso aleatorio’), memoria principal de la computadora, donde residen programas y datos, sobre la que se pueden efectuar operaciones de lectura y escritura.
React (también llamada React.js o ReactJS) es una biblioteca Javascript de código abierto diseñada para crear interfaces de usuario con el objetivo de facilitar el desarrollo de aplicaciones en una sola página. Es mantenido por Facebook y la comunidad de software libre. En el proyecto hay más de mil desarrolladores libres.
React intenta ayudar a los desarrolladores a construir aplicaciones que usan datos que cambian todo el tiempo. Su objetivo es ser sencillo, declarativo y fácil de combinar. React sólo maneja la interfaz de usuario en una aplicación; React es la Vista en un contexto en el que se use el patrón MVC (Modelo-Vista-Controlador) o MVVM (Modelo-vista-modelo de vista). También puede ser utilizado con las extensiones de React-based que se encargan de las partes no-UI (que no forman parte de la interfaz de usuario) de una aplicación web.
Según el servicio de análisis JavaScript (en inglés "JavaScript analytics service"), Libscore, React actualmente está siendo utilizado en las páginas principales de Imgur, Bleacher Informe, Feedly, Airbnb, SeatGeek, HelloSign, entre otras.
Cuando una función se llama a sí misma.
Ejemplo clásico: cálculo del factorial:
función factorial(n)
si n <= 1 entonces devolver 1
sino devolver n * factorial(n - 1)
La refactorización (del inglés refactoring) es una técnica de la ingeniería de software para reestructurar un código fuente, alterando su estructura interna sin cambiar su comportamiento externo.
Cantidad de operaciones que un sistema puede procesar en un tiempo determinado.
Estilo de arquitectura para diseñar API web. Usa peticiones HTTP (GET, POST, PUT, DELETE) y respuestas en JSON o XML.
GraphQL
Alternativa a REST donde el cliente pide exactamente los datos que necesita. Muy eficiente para apps modernas.
En informática, un hotfix es una actualización rápida de software que se aplica para corregir un error específico. También se le conoce como parche rápido o parche en caliente.
Proceso de convertir un objeto a texto (JSON, XML, etc.) para almacenarlo o transmitirlo.
Ejemplo json:
{"nombre": "Ana", "edad": 30}
Deserialización
Proceso inverso: convertir texto serializado en un objeto usable en el código.
Un servicio web (en inglés, web service o web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web.
El cloud computing es la disponibilidad de recursos de computación bajo demanda (como almacenamiento e infraestructura) como servicios a través de Internet. Elimina la necesidad de que las personas y las empresas gestionen sus propios recursos físicos y paguen solo por lo que utilicen.
Una solicitud asíncrona es una operación que se realiza de manera independiente al flujo principal de una aplicación. En otras palabras, una solicitud asíncrona se realiza en segundo plano, permitiendo que la aplicación continúe funcionando mientras se lleva a cabo la solicitud.
En el contexto de las aplicaciones web, las solicitudes asíncronas son útiles porque permiten que una página web haga solicitudes al servidor web sin tener que recargar la página completa. Esto puede mejorar la velocidad y la dinámica de la aplicación web, ya que solo se actualizan las partes de la página que necesitan ser actualizadas.
Gráfico de computadora que se puede mover en la pantalla y manipular de otra manera como una sola entidad.
Validar que el código hace lo que debe. Tipos:
- Unitarias: prueban funciones individuales
- Integración: prueban componentes juntos
- E2E (End to End): prueban el sistema completo
Define qué clase de valor puede almacenar una variable. Los más comunes son:
- int: números enteros (10, -3)
- float o double: números decimales (3.14, -0.5)
- char: un solo carácter ('a', '9')
- string: cadenas de texto ("Hola")
- bool: booleanos (true o false)
Función que se ejecuta en un momento específico del ciclo de vida de una app o componente.
Muy usado en React (useEffect, useState, etc.)
Twig es un motor de plantilla para el lenguaje de programación PHP. Su sintaxis origina de Jinja y las plantillas Django. Es un producto de código abierto autorizado bajo Licencia BSD y mantenido por Fabien Potencier. La versión inicial estuvo creada por Armin Ronacher. El framework Symfony para PHP viene con un soporte incluido para Twig como su motor de plantilla por defecto.4
Unicode es un estándar de codificación de caracteres diseñado para facilitar el tratamiento informático, transmisión y visualización de textos de numerosos idiomas y disciplinas técnicas, además de textos clásicos de lenguas muertas. El término Unicode proviene de los tres objetivos perseguidos: universalidad, uniformidad y unicidad.
Unicode define cada carácter o símbolo mediante un nombre e identificador numérico, el punto de código (code point). Además incluye otras informaciones para el uso correcto de cada carácter, como sistema de escritura, categoría, direccionalidad, mayúsculas y otros atributos. Unicode trata los caracteres alfabéticos, ideográficos y símbolos de forma equivalente, lo que significa que se pueden mezclar en un mismo texto sin utilizar marcas o caracteres de control.
Tabla Suplemento Latin [Unicode U+0080 – U+00FF]
Una variable es un espacio en memoria donde se almacena un valor que puede cambiar durante la ejecución del programa.
Ejemplo en pseudocódigo:
edad = 25
Cuando es por referencia, la variable que se recibe como parámetro en la función apunta exactamente a la misma dirección de memoria que la variable original por lo que si dentro de la función se modifica su valor también se modifica la variable original.
Cuando es por valor, la información de la variable se almacenan en una dirección de memoria diferente al recibirla en la funcion, por lo tanto si el valor de esa variable cambia no afecta la variable original, solo se modifica dentro del contexto de la función.
Uso de herramientas como Git para llevar un control de los cambios hechos al código fuente, trabajar en equipo, y mantener versiones anteriores del proyecto.
Un servidor virtual privado, también conocido como VPS, actúa como un entorno virtual aislado en un servidor físico que pertenece y opera un proveedor de hosting web o en la nube. El hosting de VPS usa tecnología de virtualización para dividir una sola máquina física en varios entornos de servidor privado que comparten los recursos.
El World Wide Web Consortium (W3C) es un consorcio internacional en donde organizaciones, los usuarios y empleados de tiempo completo desarrollan estándares y especificaciones relacionados al WWW. Se creo en 1994 por Tim Berners-Lee, inventor del World Wide Web y otros. www.w3.org
Protocolo que permite comunicación bidireccional en tiempo real entre cliente y servidor.
Útil para chats, videojuegos online, etc.
Programa que permite a los usuarios hacer búsquedas en una base de datos sobre personas y otras entidades de Internet, tales como dominios, redes y sistemas centrales.
XML es el acrónimo de Extensible Markup Language, es decir, es un lenguaje de marcado que define un conjunto de reglas para la codificación de documentos.
El lenguaje de marcado es un conjunto de códigos que se pueden aplicar en el análisis de datos o la lectura de textos creados por computadoras o personas. El lenguaje XML proporciona una plataforma para definir elementos para crear un formato y generar un lenguaje personalizado.
XMLHttpRequest es un objeto JavaScript que fue diseñado por Microsoft y adoptado por Mozilla, Apple y Google. Actualmente es un estándar de la W3C. Proporciona una forma fácil de obtener información de una URL sin tener que recargar la página completa. Una página web puede actualizar sólo una parte de la página sin interrumpir lo que el usuario está haciendo. XMLHttpRequest es ampliamente usado en la programación AJAX.
A pesar de su nombre, XMLHttpRequest puede ser usado para recibir cualquier tipo de dato, no solo XML, y admite otros formatos además de HTTP (incluyendo file y ftp).
Unidad de información que equivale a 1000 zettabytes o 10^24 bytes (1,208,925,819,614,629,174,706,176 bytes). Símbolo YB.
YouTube es una plataforma / red social para compartir videos en línea, propiedad de Google.
El zócalo de CPU (socket en inglés) es un tipo de zócalo electrónico (sistema electromecánico de soporte y conexión eléctrica) instalado en la placa base, que se usa para fijar y conectar el microprocesador, sin soldarlo lo cual permite ser extraído después. Por ello, se utiliza en equipos de arquitectura abierta, donde se busca que haya modularidad en la variedad de componentes, permitiendo el cambio de la tarjeta o el integrado. En los equipos de arquitectura propietaria, los integrados se añaden sobre la placa base soldándolo, como sucede en las videoconsolas.
Acción que consiste en ampliar o disminuir la vista de uno o varios objetos con el fin de visualizar todo el documento o una parte del mismo.