8 acrónimos que todo programador debe saber
Términos o acrónimos que debe conocer al trabajar con un desarrollador
Acrónimos
Los acrónimos son palabras creadas a partir de las iniciales de otras palabras. Hoy en día están por todas partes, y un ámbito en el que proliferan al máximo es en el mundo técnico, donde estamos especialmente dados a concretar y simplificar.
De hecho, son tan comunes que existe un acrónimo para describir los acrónimos, el mítico – TLA (Three Letter Acrónimo), o acrónimo de tres letras, que es el más común. Cuando vea a TLA, ya sabe lo que eso significa.
Aunque hay cientos de acrónimos, hay algunos que son esenciales. Deberíamos saber si nos dedicamos al mundo del desarrollo de aplicaciones sin excusas.
Veremos los acrónimos más básicos a continuación:
1. OOP o POO
Esta es la Programación Orientada a Objetos (OOP). Es necesario conocer ambos ya que son de uso común. Se refiere a un paradigma de programación en el que el código se crea definiendo “objetos” que simulan objetos reales y su comportamiento e interacción con otros objetos.
Por ejemplo, habría una clase (un objeto patrón) en una aplicación de facturación que representaría las facturas y otra clase que serviría para representar las diferentes líneas de factura. Al crear una factura, se crearía un objeto de tipo Factura a partir de la clase anterior, y una serie de objetos de tipo Línea de factura para representar cada línea.
Para calcular el importe de la factura se llamaría a un método del objeto que lo representa (por ejemplo, ‘CalculateTotal’ que a su vez llamaría a un método de cada línea que calcularía de forma transparente el importe parcial teniendo en cuenta importes, impuestos, etc., y quién se encargaría de sumarlos todos para dar el monto total.
La programación orientada a objetos se basa en varios principios que todo lenguaje debe cumplir para trabajar con objetos, como encapsulación, herencia y polimorfismo.
La mayoría de los lenguajes de programación modernos incluyen la programación orientada a objetos entre los paradigmas que admiten.
2. SCM o VCS
Ningún programador que se precie debería trabajar sin utilizar un sistema de control de código fuente o Source Control Management, también conocido como sistema de control de versiones. Verá que los dos términos se usan indistintamente, pero se refieren a lo mismo en ambos casos.
Es un sistema que nos permite almacenar el código fuente de los programas y cualquier otro archivo relacionado que usemos y monitoreamos y guarda todos los cambios y diferentes versiones de cada archivo que se hayan guardado explícitamente.
Es una potente herramienta imprescindible a la hora de colaborar con otros programadores en un mismo proyecto, pero también es casi obligatoria incluso si trabajamos solos. Gracias a su uso, podemos volver a cualquier punto del pasado en nuestras aplicaciones, rastrear los cambios hasta encontrar el que ha provocado que algo falle, trabajar por separado en nuevas funcionalidades sin influir en el producto principal hasta que estén terminadas, etc.
Si no domina al menos uno, ya se está tomando el tiempo. En cualquier empresa te lo pedirán, y si trabajas solo, puedes sacar mucho provecho.
Los más conocidos son Git, Mercurial y Subversion. Los dos primeros también son sistemas distribuidos. Esto significa que es posible trabajar con ellos sin conexión a un repositorio central y son más flexibles.
Git, creado por Linus Torvalds, es sin duda el que está marcando el camino y el que más se está utilizando en todo el mundo, gracias, entre otras cosas, al proyecto GitHub, donde hoy todo el mundo tiene open source.
3. WYSIWYG
Esto se usa para describir cualquier sistema que le permita crear contenido mientras ve cómo funciona. El caso más común es un editor de texto enriquecido en el que, mientras escribimos, vemos exactamente cómo será el resultado final cuando vayamos a imprimirlo o convertirlo a un formato portátil.
4. GUI
Es la abreviatura de Interfaz gráfica de usuario o interfaz gráfica de usuario.
Es cualquier artefacto gráfico que permite a los usuarios interactuar con una aplicación mediante iconos, botones, indicadores visuales, etc. A diferencia de las interfaces más tradicionales basadas en texto o las más avanzadas actualmente basadas en la voz o la interacción a través de movimientos.
Por cierto, se pronuncia “güi” (como en “pin güi no”, es decir, la “u” no es muda, como en español).
5. API
Se refiere a interfaces de programación de aplicaciones o interfaces de programación de aplicaciones. Es cualquier conjunto de funciones y métodos expuestos por un programador para que lo utilicen otros programadores, ya sea haciendo referencia directa a una biblioteca o exponiéndola a través de algún protocolo (HTTP para acceder a través de Internet).
Una característica importante de una API es que es independiente de la implementación subyacente. Una API es como una caja negra para el programador que la usa de modo que mientras la parte expuesta no cambie, lo que se hace debajo y cómo se hace es indiferente.
De esta forma, si creamos una API en un lenguaje (por ejemplo, Java) y la exponemos a través de HTTP como una API REST (otro simpático acrónimo un poco más avanzado, que significa Representational State Transfer, no lo veremos hoy), si luego cambiamos la forma en que funciona o incluso lo volvemos a escribir desde cero con un lenguaje de programación diferente, siempre y cuando no cambiemos la parte expuesta (es decir, las funciones y sus parámetros y la forma de acceder a ellas), por A todos los efectos, sigue siendo la misma API para los programadores que la utilizan.
6. IDE
Un entorno de desarrollo integrado o IDE (entorno de desarrollo integrado) es una aplicación para desarrollar aplicaciones más allá de lo que ofrece un simple editor. Ofrece muchas herramientas avanzadas para ayudarnos en nuestro trabajo, como depuradores, diseño visual, análisis de rendimiento, pruebas de aplicaciones, herramientas de colaboración, inspectores de objetos y clases y otras herramientas.
Algunos IDE son adecuados para trabajar en varios lenguajes y otros se centran en una plataforma específica (como Java). Los más conocidos son Visual Studio, Eclipse, Netbeans o IntelliJ IDEA. Un IDE será tu mejor amigo en tu trabajo, así que elige bien uno y aprende a aprovecharlo al máximo.
7. TDD
Este término se refiere al desarrollo impulsado por pruebas o desarrollo impulsado por pruebas.
Un desarrollo impulsado por pruebas implica probar / probar todo el código que escribe para asegurarse de que funciona, cubre todos los casos y no interfiere con otras partes de la aplicación que quizás no haya considerado en principio.
Pero TDD va más allá de eso, ya que es una filosofía que implica que el desarrollo en realidad comienza con las pruebas. Es decir, un desarrollo TDD implicaría seguir, más o menos, estos pasos:
- Piense en la funcionalidad que necesitamos para una función o una clase.
- Crea la prueba que validará que estás haciendo tu trabajo, incluida toda la casuística. ¡Antes de escribir el código!
- Implementa la función o clase.
- Pasa las pruebas. No terminamos el desarrollo hasta que los supera.
Aunque pueda parecer contraproducente seguir este proceso, muchos estudios demuestran que a la larga es más eficiente que el método tradicional ya que ayuda a diseñar mejor el código, tener mejor en cuenta todos los casos y tener menos errores. Esto hace que el código sea más robusto y más fácil de mantener, y se ahorra tiempo porque hay menos errores que corregir, lo que aumenta la calidad.
8. SDK
Un SDK es un kit de desarrollo de software (Software Development Kit). Es un conjunto de API, ejemplos de código y documentación que los fabricantes de software proporcionan a otros programadores para que lo desarrollen para una plataforma.
Como regla general, los SDK se lanzan para un sistema operativo (Windows, iOS, Android), una plataforma de desarrollo (como .NET, Java) o una consola de juegos (Xbox), para dar ejemplos comunes. Podríamos pensar en un SDK como el intermediario que un fabricante coloca entre sus sistemas y las aplicaciones que crean los desarrolladores externos.
Eso es. Espero que este sencillo artículo sobre acrónimos le resulte educativo.