Señales y Ranuras
Señales y Ranuras se refiere a una funcionalidad para comunicación entre objetos. En C++ es un término acuñado a Qt enfocado en la comunicación en interfaces...
Una de las dificultades con las que me suelo encontrar cuando llego a un nuevo grupo o equipo de desarrollo de software es adaptarme a la terminología que usan la mayoría de personas.
Cuando uno es el nuevo del grupo y las demás personas ya llevan tiempo en él se pueden identificar patrones en la manera en la que se comunican. Es muy común que se usen siglas, modismos, palabras clave, términos de los cuales se puede pensar que son de conocimiento global. No siempre es intuitivo saber su significado, con frecuencia son en múltiples idiomas (por lo menos en inglés y español) y la mayoría de las veces es complejo adivinar los significados si no se han manejado antes.
Recuerdo cuando llegué a un equipo que llevaba cierto tiempo de estar conformado y hablaban de los objetos invocables (callables) con mucha naturalidad. Yo no entendía bien de lo que estaban hablando debido a cómo la pronunciaban, aunque sí comprendía el contexto. En spanglish el equipo la pronunciaba algo así como coleibol. Al final entendí que se referían a callable, discutimos su pronunciación y todo fue más sencillo.
Esa anécdota me inspiró a crear un vademecum con algunos de los términos que veía o escuchaba con frecuencia, y que quizás no me parecían tan obvios, intuitivos, o globales en su momento.
Me parece relevante también identificar que esos términos pueden ser manejados más fácilmente dependiendo del contexto en el que se tratan.
Sigla | Descripción | Significado |
---|---|---|
ABI | Application Binary Interface | Interfaz binaria de una aplicación |
API | Application Program Interface | Interfaz del programa de una aplicación |
Boilerplate | Boilerplate code | Código repetitivo que se debe copiar y pegar para un funcionamiento mínimo |
c14n | canonicalization | Usar la forma estándar/ canónica |
i18n | internationalization | for string translations to different languages |
IIFE | Immediately Invoked Functional Expression: Lambdas | Expresión Funcional Inmediatamente Invocada |
KISS | Keep It Simple | Principio de diseño: Mantener simplicidad |
LOC | Lines Of Code | Número de líneas de código |
NVI | Non-Virtual Interface | Patrón de diseño de interfaces |
RAII | Resource Acquisition Is Initialization | Tiempo de vida determinístico para objetos |
Sigla | Descripción | Significado |
---|---|---|
ODR | One-Definition Rule | Regla de Una Sola definición |
PIMPL | Pointer to implementation | Puntero a implementación |
SFINAE | Substitution Failure Is Not An Error. For templates | Falla en sustitución no es un error. Para plantillas |
SIOF | Static initialization Order Fiasco | Fiasco en el orden de la inicialización estática |
SSO | Small String Optimization | Optimización de pequeñas cadenas de caracteres |
State-less lambda | A lambda with no parameters | Lambda sin estado, sin parámetros, sin variables miembro |
TU | Translation Unit | Unidad de traducción a lenguaje de máquina. Archivos Objeto *.o |
UB | Undefined Behavior | Comportamiento indefinido |
Como en chats o solicitudes de incorporación de cambios:
Sigla | Descripción | Significado |
---|---|---|
AFAIK | As Far As I Know | Hasta donde llega mi conocimiento |
DRY | Don’t Repeat Yourself | No repitas código |
IMO | In My Opinion | En mi opinión |
IMHO | In My Humble Opinion | En mi humilde opinión |
LGTM | Looks Good To Me | Se ve bien (el MR/PR/Cambio) para mí |
MR | Merge Request | Solicitud de incorporación de cambios |
PR | Pull Request | Solicitud de incorporación de cambios |
PTAL | Please Take Another Look | Revisa de nuevo (al hacer ajustes a MR/PR) |
YAGNI | You Ain’t Gonna Need It | No lo vas a necesitar |
No siempre he encontrado el significado al hacer una búsqueda simple, así que encontré algunos recursos donde se pueden desambiguar acrónimos: All acronyms
Señales y Ranuras se refiere a una funcionalidad para comunicación entre objetos. En C++ es un término acuñado a Qt enfocado en la comunicación en interfaces...
Así como sucede con la mayoría de funcionalidades en C++ hay diversas formas de escribir mensajes en el stdout. A partir del estándar C++23 se puede encontra...
Es una operación aritmética usada para obtener el residuo en una división, usualmente de números enteros positivos, pero no está limitada solamente a ellos, ...
Todo objeto que pueda ser invocado usando la sintaxis de llamado a función es considerado un objeto invocable. Por ejemplo: Punteros a funciones (miembro, y ...
En C++ no hay una biblioteca de gráficos dentro del estándar por lo cual es necesario recurrir a bibliotecas de terceros, como Gtk, Qt, o SFML. Es bastante c...
No es sorpresa ver que Jetbrains tiene muy bien documentada la manera de configurar un intérprete de python en CLion, y que bastan solamente dos sencillos pa...
Son aquellas funciones que bajo ciertas circunstancias se definen automáticamente por el compilador aun si no son declaradas por el usuario.
El orden de construcción es A-B-C. El orden de destrucción es el inverso: C-B-A.
La decisión de usar una convención suele acordarse para un proyecto o equipo. Lo más importante al elegir una es que sea consistente a través de todo el códi...
En programación se suelen usar las benchmarks, o pruebas de referencia, como una técnica para medir el rendimiento de un sistema o de uno de sus componentes.
Una forma sencilla de representar la fecha-hora en el formato estándar ISO 8601 es usando std::chrono y la biblioteca {fmt}.
Hay varias maneras de representar números binarios con signo; una es por medio del Complemento a Dos, con la cual se debe tener en cuenta el número de bits a...
SOCI es una biblioteca de acceso a bases de datos que soporta SQLite, MySQL, Oracle SQL, entre otras. El enfoque en esta publicación es usarla para hacer rea...
SQLite es una biblioteca que implementa un motor de bases de datos pequeño, rápido, auto-contenido, de alta fiabilidad, y de funcionalidad SQL completa.
{fmt} es una biblioteca de código abierto, definida como una alternativa rápida y segura frente a stdio (de C) y iostreams (de C++) para dar formato. std::fo...
Un stream es un canal de flujo de datos; el operador de inserción << se encarga de insertar datos en un flujo de salida std::ostream, como lo es std::c...
Uno de los generadores CMake disponibles se denomina Ninja, y genera los archivos requeridos para el sistema de compilación con el mismo nombre.
Los dos tipos de bibliotecas usualmente creadas en C++ son: estáticas y dinámicas. A diferencia de los binarios ejecutables, estas no tienen punto de entrada...
Una clase vacía es aquella que no contiene variables miembro, y contiene por lo menos una función miembro.
La biblioteca de rangos incluida en C++20 trae finalmente una funcionalidad con la cual realizar ordenamientos en contenedores secuenciales de la STL de una ...
CMake es una herramienta para controlar el proceso de compilación de software de una manera simple, independiente de la plataforma.
Conan es un administrador de paquetes multiplataforma, descentralizado, y de código abierto, que permite crear y compartir paquetes de software para C++
Nave espacial es el nombre con el que se conoce al operador <=> introducido en el estándar C++20; hace referencia al operador de comparación de tres ví...
Un estándar de C++ hace referencia a una versión aprobada por el comité de estandarización. Al 2020 se han aprobado los estándares 98, 03, 11, 14, 17, y 20; ...
Hola mundo en informática hace referencia al primer ejercicio que se hace para visualizar la sintaxis de un lenguaje de programación.