En el mundo del desarrollo web (como en otros tantos) existen una serie palabras, que realmente son acrónimos o palabras técnicas en inglés y que de primeras no sabes muy bien qué pueden significar.
Mi idea con este artículo es justo la de recopilar todas esas palabras y definiciones para esas personas que están empezando o que llevan un tiempo pero quieren recordar qué significa cada cosa.
Importante: La lista no sigue ningún orden en particular, puedes leer cada definición en el orden que quieras.
Acrónimos
- API: Application Programming Interface. Set de interfaces definidas (para clases, métodos, funciones) que definen el propietario de las APIs y que permiten a otros usuarios o clientes su uso. Por ejemplo una empresa puede dar una API HTTP para poder hacer llamadas a sus servicios desde sus clientes.
- DOM: Document Object Model. Es el mecanismo que usan los nevagdores para modelar el conjunto de nodos del HTML de las páginas web. El DOM representa todo el árbol de nodos que tiene una página web.
- IDE: Integrated Development Environment. Programa que usan los desarrolladores para escribir código y que a diferencia de un editor de textos, contiene una serie de herramientas que ayudan al programador a escribir más y mejor código.
- JSON: JavaScript Object Notation. JSON es una forma de modelar datos muy habitual en Javascript pero que también se usa para compartir datos entre servicios y aplicaciones. El JSON se modela como un objeto clave-valor con dobles comillas, similar a la de los propios objetos de Javascript.
- MEAN: MongoDB, Express.js, Angular, Node.js: MEAN es un stack específico de librerías para construir webs que fue muy popular hace años. La gracia de este stack es que usa para todo el lenguaje de Javascript, el problema es que hoy en día Angular usa Typescript 🚧 en lugar de Javascript
- MVC: Modelo, Vista, Controlador. Es un patrón de diseño muy usado en programación de objetos y que su misión es la de separar la representación de los datos de la propia lógica de los mismos.
- OOP: Object-Oriented Programming. Paradigma de programación en el que la idea es la de crear clases, instancias y objetos para tratar de reutilizar código.
- REST: Representational State Transfer. Este término es usado habitualmente con el de API. En concreto hablamos de API REST a una serie de rutas (endpoints) a las que la web (o otros servicios) mandan peticiones para adquirir o modificar datos.
- WYSIWYG: What You See Is What You Get. Esto se refiere a los típicos editores que hay en páginas webs y programas en el que puedes redactar texto con formato (enlaces, títulos, listas...) sin tener que escribir código o etiquetas. Suele ser típico de foros, páginas para escribir blogs, docs tipo Google Drive, etc.
- GUI: Graphical User Interface. Interfaz gráfica de usuario. Es la parte gráfica que permite a los usuarios interaccionar con los sistemas de forma visual.
- CLI: Command User Interface. A diferencia de GUI esto significa que se interactúa con el sistema usando comandos en una terminal.
- CTA: Call To Action: Típicos botones grades que hay en muchas webs para incitar al usuario a hacer click.
- CRUD: Create, Read, Update, Delete. La 4 funciones más básicas que se pueden implementar para una API o una base de datos. La idea es crear función de crear, leer, modificar o borrar un dato.
- CMS: Content Management System. Software de una web que permte gestionar de forma visual el propio contenido de la misma. Wordpress es el típico ejemplo de CMS, pero hay muchos más.
- CDN: Content Delivery Network. Una red de servidores normalmente distribuidos en varios paíes cuya función es servir lo más rápido posible (gracias a sistemas de caché y minificación) imágenes, vídeos, librerías JS y otro tipo de cosas.
- ARIA: Accessible Rich Internet Applications. Etiquetas aria usadas para añadir accesibilidad al contenido de las páginas web.
- SPA: Single Page Applications. Es una forma de construir webs en la que cargan, gracias a Javascript, todas las páginas que contienen la web para que navegar luego entre ellas se haga de forma instantánea: Angular o VueJS son ejemplos de librerías para hacer webs SPA.
- SSR: Server Side Rendering. Concepto muy de moda últimamente. La idea es crear un servicio intermedio en servidor, entre el frontend y el backend, cuya función sea prerenderizar las páginas en servidor para enviarlas ya cargadas a los usuarios. Esto facilita también el SEO.
- SEO: Search Engine Optimization. Conjunto de estrategias a la hora de crear páginas webs para facilitar el trabajo a los robots de los buscadores (como Google por ejemplo) y así tratar de conseguir mejores posiciones en las búsquedas.
- SSG: Static Site Generator. En lugar de que el usuario entre en una web y se hagan las peticiones al backend y a la base de datos para montar la página, la idea con SSG es que las páginas se generen una sola vez con los datos ya cargados. Lo malo de esto es que claro, los datos no pueden cambiar muy amenudo porque por cada cambio en los datos hay que generar nuevamente todas las páginas.
- JAMStack: Javascript APIs and Markup. Término muy de moda últimamente. La idea con JAMStack es aprovechar las ventajas de SSG para montar una web con datos pero generada de forma estática. Se suele usar mucho para webs tipo blogs o de noticias. La idea es escribir el contenido en ficheros con sintaxis markdown para luego generar la web con un comando y servirla ya renderizada a los usuarios.
- A11Y: Accessibility. El 11 es porque la palabra tiene 11 letras. Se refiere a todas las estrategias de accesibilidad para que lo que se programe sirva para todo tipo de personas.
- TDD: Testing Driven Development. Técnica que consiste en crear primeros los tests antes que el código para asegurar que todo el código que escribimos está testeado.
- LTS: Long term support: Normalmente se usa para el versionado de librerías o de cualquier software. Se trata de versiones espciales que sacan y que te aseguran que van a tener soporte alargado, normalmente de años.
Terminología técnica o en inglés
- HTML: HTML Lenguaje de marcado de etiquetas que sirve para construir el contenido de las páginas webs.
- CSS: CSS es el lenguaje para dar estilos (colores, tamaños, posición) a los elementos del HTML. Aunque en HTML se pueden crear estilos también lo mejor es crear ficheros CSS para tener separado el contenido de la representación del mismo.
- Javascript. Javascript es el lenguaje que sirve para hacer que los elementos de las webs sean interactuables. También se usa para lógica de negocio, modificar elementos de la página, borrar elementos o crearlos, etc. Se suele abreviar como JS.
- Frontend: Frontend es la parte que ven los usuarios de la página web, es decir, la parte cliente. Tiene la maquetación de todas las rutas de la web y además suele conectarse al Backend para pedir datos o hacer acciones que pueda necesitar.
- Backend: Backend 🚧 es la parte servidor de una página web. Suele contener bases de datos, lógica de negocio y más cosas internas que pueda necesitar el Frontend.
- Fullstack: Fullstack se le suele llamar a un rol o puesto de trabajo en el que el programador/a trabaja tanto en Frontend como en Backend.
- Stack: Stack puede significar una pila en la que meter datos, pero también se usa para referirse al stack que se usa para algo, por ejemplo, el stack de una web sería el conjunto de lenguajes, liberrías y herramientas que se usan para su funcionamiento.
- Landing: Landing Page. Una landing es la página a la que "aterrizan" los usuarios, es decir, es la página que suele tener más marketing y que intentan convencer al usuario con botones CTA para que siga navegando o haga una acción.
- Endpoint: Endpoint se suele llamar a una ruta que expone una API a la que se puede mandar peticiones para hacer acciones.
- Responsive: Que una web sea responsive quiere decir que se ve bien para cualquier tamaño de pantalla o dispositivo.
- Librería/dependencia: Código que puede ser importado u utilizado en otros proyectos. Es bastante habitual usar librerías creados por otros para no tener que hacerlo todo desde cero, muchas veces mejor no reinventar la rueda.
- Framework: Se podría decir que es como una librería muy grande. Te da un conjunto de utilidades y herramientas que normalmente condicionan tu forma de programar al usarla en un proyecto.
- Reactividad: Sistemas que permiten poder reaccionar (ejecutar código o actualizar vistas) a cambios en datos y objetos.
- Changelog: Un changelog es una lista con los cambios/mejoras que se han realizado en un lapso de tiempo, normalmente entre versiones.
- Bug: Un bug es un fallo en el código que hace que algo no funcione como se esperaría. Viene de los primeros servidores y ordenadores, cuando un bicho literalmente hizo que un aparato debajara de funcionar bien.
- Debugging: Consiste en una técnica para ejecutar el código línea por línea para facilitar la tarea de localizar bugs.
- Deployment: Hacer un deploy consiste en coger el código que has programado para subirlo a un servidor (público o privado). Muchas veces en esta fase hace falta ejecutar comandos para compilar/construir el proyecto.
- Minificar: Técnica que consiste en transformar un fichero para que ocupe lo menos posible (eliminando espacios y saltos de línea, reduciendo nombres de variables, etc).
- Middleware: Un middleware es una capa intermedia. Dependiendo del contexto en el que estemos puede significar una cosa o otra. Por ejemplo, el middleware de una API se encarga de ejecutar código antes de el propio handler del endpoint.
- Mock: Un mock es una pieza de código que se construye para simular una real. Por ejemplo es muy normal hacer mock o mockear librerías o servicios a la hora de hacer tests.
- Placeholder: Un placeholder es una parte que se pone cuando todavía no existe la definitiva. Un ejemplo típico de placeholder es el Lorem Ipsum que es un texto de ejemplo que se usa para ver como queda hasta que se pongan los definitivos.
- Daily: Reunión diaria con el equipo de trabajo, normalmente todos los días por la mañana en la que cada integrante explica qué hizo durante el día anterior y qué problemas ha tenido.
- Push: Terminología de Git. Significa subir los cambios que has hecho en tu ordenador a un repositorio en la nube.
- Request: Petición o llamada que se hace, normalmente a un endpoint de una API REST para consultar o modificar datos.