Glosario de Programación
A
AOP
AOP (Aspect-oriented programming) o programación orientada a aspectos. Es un nuevo paradigma de programación cuyo principal objetivo el modularización de la aplicaciones, fomentando una mejor separación de los elementos transversales a todo el sistema.
(Ver Programación orientada a aspectos)
C
CoC
Convención sobre configuración, también conocido como CoC, es un paradigma de programación de software que busca minimizar el número de decisiones que un desarrollador necesita hacer, ganando así en simplicidad pero no perdiendo flexibilidad por ello.
La fase principal implica que un programador solo necesita especificar los aspectos no convencionales de la aplicación. Por ejemplo, si hay una clase «venta» en el modelo, por convención la tabla correspondiente en la base de datos se llamará «ventas». Solo si alguien se aparta de esta convención, como llamar a la tabla «productos_vendidos», entonces deberá escribir código respecto a ese nombre.
Cuando la convención tomada es suficiente para lograr el comportamiento deseado, se hace innecesario realizar aquellas tareas para las que la convención ya ha definido un comportamiento, por ejemplo escribir archivos XML de configuración del entorno. Cuando la convención definida no es suficiente para lograr el comportamiento deseado, el desarrollador puede alterar el comportamiento por defecto y adaptarlo a sus necesidades.
Code scaterring
Código disperso y repetido a través de diferentes componentes.
Code tangling
Superposición de funcionalidades de más de un requisito dentro de un componente.
CRUD
CRUD (Create, Read, Update, Delete). Acrónimo que indica las cuatro funciones básicas de persistencia.
CSRF
CSRF (Cross-Site Request Forgery) o falsificación de petición en sitios cruzados) es un tipo de exploit malicioso de un sitio web en el que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confía. Esta vulnerabilidad es conocida también por otros nombres como XSRF, enlace hostil, ataque de un clic, secuestro de sesión, y ataque automático.
D
DI
DI (Dependency Injection), o inyección de dependencias. Es un patrón de diseño en el que se suministran objetos a una clase en lugar de ser la propia clase la que cree dichos objetos.
(Ver Patrones de diseño#Inyección de dependencias)
DIP
Dependency inversion principle (DIP) o Principio de inversión de dependencia. Enfatiza el acoplamiento flexible, garantizando que los componentes como las clases solo dependan de abstracciones y no de sus implementaciones concretas.
Es uno de los principios #SOLID
DRY
Don't Repeat Yourself (DRY). Principio de buenas prácticas de desarrollo que indica el código no debe duplicarse varias veces en el sistema.
H
HATEOAS
HATEOAS (Hypermedia as the Engine of Application State) es un componente de la arquitectura de aplicación #REST que lo distingue de otras arquitecturas.
Con HATEOAS, un cliente interactúa con una aplicación de red cuyos servidores de aplicación proporcionan información dinámicamente a través de hipermedia. Un cliente REST necesita poco o ningún conocimiento previo sobre cómo interactuar con una aplicación o servidor más allá de un conocimiento genérico de los hipermedia.
Las restricciones impuestas por HATEOAS desacoplan el cliente del servidor. Esto permite a la funcionalidad del servidor evolucionar independientemente.
HTTP
Hyper Text Transfer Protocol.
I
ISP
Interface segregation principle (ISP) o Principio de segregación de interfaz. Establece que debemos optar por interfaces enfocadas más pequeñas en lugar de grandes monolíticas.
Es uno de los principios #SOLID
J
JPA
Java Persistence API.
(ver JPA)
JPQL
Java Persistence Query Language (JPQL) es el lenguaje de consulta #JPA
(ver JPA)
JSON
JavaScript Object Notation (JSON) es un formato ligero para intercambiar información.
(ver JSON)
K
KISS
Keep It Simple, Stupid (KIIS). Principio de buenas prácticas de desarrollo que enfatiza que debemos esforzarnos por mantener el diseño y el desarrollo del software que construimos simple y directo.
L
LSP
Liskov substitution principle (LSP) o Principio de sustitución de Liskov. El principio LSP establece que deberíamos poder usar superclases con sus respectivas subclases indistintamente sin romper la funcionalidad de nuestro programa. Permite utilizar la herencia correctamente y escribir código desacoplado.
Es uno de los principios #SOLID
M
MVC
MVC (Model View Controller). Es un patrón de diseño que consiste en tres módulos: modelo, vista y controlador)_.
(Ver Patrón Modelo Visto Controlador)
O
OCP
Open-closed principle (OCP) o Principio abierto-cerrado. Establece que las clases deben estar abiertas para la extensión, pero cerradas para la modificación, excepto cuando se corrigen errores.
Es uno de los principios #SOLID
OOP
OOP (Object Oriented Programming), o programación orientada a objetos. Es un modelo de programación que organiza el diseño de software en torno a datos u objetos, en lugar de funciones y lógica.
P
POA
#AOP
POJO
Plain Old Java Object (POJO) es una sigla utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial.
POO
#OOP
PP
_PP (Programación Procedural). Se basa en la división de un programa en procedimientos o funciones más pequeñas. Se enfoca en la secuencia de instrucciones y en cómo se realizan las tareas.
Programación Concurrente
Se centra en escribir programas que puedan ejecutarse simultáneamente para aprovechar mejor los recursos del sistema y mejorar el rendimiento.
Programación Declarativa
En este enfoque, se describe lo que debe hacerse en lugar de cómo hacerlo. Un ejemplo es SQL, donde se describe la consulta que se debe realizar en lugar de los pasos detallados para realizarla.
Programación Estructurada
Se basa en el uso de estructuras de control como condicionales (if-else) y bucles (for, while) para organizar la lógica del programa de manera clara y coherente.
Programación Funcional
La programación funcional se basa en el uso de funciones como elementos principales. Las funciones se tratan como ciudadanos de primera clase y se enfatiza la inmutabilidad y la evaluación de expresiones en lugar de la modificación de estados.
Programación Lógica
Se basa en reglas lógicas y hechos. Los programas se definen en términos de relaciones y restricciones lógicas.
Programación Paralela
Se centra en escribir programas que puedan ejecutarse en paralelo para aprovechar mejor los recursos del sistema y mejorar el rendimiento.
R
REST
La transferencia de estado representacional (en inglés REpresentational State Transfer) o REST es un estilo de arquitectura software utilizado para diseñar aplicaciones de web distribuidas.
(Ver REST)
RESTful
Aplicaciones que cumplen las restricciones REST.
(Ver REST)
S
Servicio web
Proceso cuyo objetivo es intercambiar información con otros sistemas
SOA
SOA (Service-Oriented Architecture) es un paradigma para compartir datos entre aplicaciones por medio de servicios.
(Ver SOA)
SOAP
Se basa en XML y define la estructura que se utilizará para intercambiar la información.
(Ver SOA#Tecnología SOA)
SOLID
Los principios SOLID fueron establecidos por Robert C. Martin (Uncle Bob). Son los siguientes:
- S: #SRS
- O: #OCP
- L: #LSP
- I: #ISP
- D: #DIP
SRS
SRS (Single responsibility principle) o Principio de responsabilidad única. Establece que una clase solo debe tener una responsabilidad. Seguir el principio SRS garantiza que escribimos código conciso, legible y mantenible.
Es uno de los principios #SOLID
Synapse
Apache Synapse es un bus de integración (ESB). WSO2 está basado en Synapse.
U
URI
Uniform Resource Identifier. Se utiliza para identificar recursos de forma única en la Web.
(Ver REST#Recursos)
W
WSDL
WSDL (Web Services Description Language) permite definir un servicio web basado en SOAP.