Saltar al contenido
siglas-y-jerga.en · devschool

Siglas y jerga de programadores en inglés

Lección 17 de 23 · 13 min de lectura · Actualizado el

En esta lección
  1. Siglas de herramientas y tecnologías
  2. Principios de programación
  3. Siglas de comunicación
  4. Producto y equipo
  5. Jerga de código: palabras que no son siglas
  6. Etiquetas de commits y de issues
  7. Cómo se usa en el día a día
  8. Errores frecuentes
  9. Resumen

Cuando entras en un equipo, o en un repositorio de GitHub, te encuentras con frases como LGTM, merging after QA o WIP: refactor legacy code, TL;DR below. No son difíciles: son siglas y palabras de uso diario que se aprenden en una tarde. Esta lección reúne las más habituales, cómo se dicen en voz alta, qué significan y dónde las verás.

Las siglas se deletrean casi siempre: A-P-I, no “api”. Si necesitas repasar las letras del alfabeto inglés, mira Pronunciación.

Siglas de herramientas y tecnologías

SiglaSe diceSignificaQué es
API/ei-pi-ái/Application Programming Interfaceforma de que un programa hable con otro
SDK/es-di-quéi/Software Development Kitconjunto de herramientas para desarrollar para una plataforma
IDE/ai-di-í/Integrated Development Environmenteditor completo (VS Code, IntelliJ)
CLI/si-el-ái/Command Line Interfaceprograma que usas desde la terminal
GUI/gúi/ (“gooey”)Graphical User Interfaceinterfaz con ventanas y botones
OS/ou-és/Operating Systemsistema operativo
DB/di-bí/Databasebase de datos
UI/iu-ái/User Interfacelo que ve el usuario
UX/iu-éks/User Experiencecómo se siente usarlo
SQL/es-cu-él/ o /síkuel/Structured Query Languagelenguaje de bases de datos
JSON/yéison/JavaScript Object Notationformato de datos
URL/iu-ar-él/Uniform Resource Locatordirección web
CSS / HTML/si-es-és/, /eich-ti-em-él/Cascading Style Sheets / HyperText Markup Language
CI/CD/si-ái, si-dí/Continuous Integration / Deliverypruebas y despliegue automáticos
VCS/vi-si-és/Version Control Systemsistema de control de versiones (Git)
OOP/ou-ou-pí/Object-Oriented Programmingprogramación orientada a objetos

Ejemplos de uso:

The SDK includes a CLI and examples for every language.
Use the REST API instead of scraping the website.
I prefer a CLI over a GUI for deployments.

Traducción: el SDK incluye una CLI y ejemplos para cada lenguaje. Usa la API REST en vez de rascar la web. Prefiero una CLI a una GUI para desplegar.

Principios de programación

Estas tres siglas son filosofías de código muy repetidas:

SiglaSignificaIdeaEjemplo
DRYDon’t Repeat Yourself (“no te repitas”)no copies lógica; ponla en una funciónsi calculas el IVA en cinco sitios, crea addTax()
KISSKeep It Simple, Stupid (“hazlo simple”)la solución más sencilla que funcioneno uses un framework para un botón
YAGNIYou Ain’t Gonna Need It (“no lo vas a necesitar”)no construyas lo que aún no se necesitano añadas soporte para 10 idiomas si hoy hay uno
SOLIDcinco principios de diseño orientado a objetos
WETWrite Everything Twicela broma contraria a DRY (código repetido)

Se pronuncian como palabras: DRY /drái/ (“seco”), KISS /quis/ (“beso”), YAGNI /iág-ni/. Se usan en revisiones de código:

This block is duplicated three times. Let's keep it DRY.
Do we really need a plugin system? YAGNI.
KISS: a simple if statement is enough here.

Traducción: “Este bloque está duplicado tres veces; mantengámoslo DRY”. “¿De verdad necesitamos un sistema de plugins? YAGNI”. “KISS: aquí basta un if sencillo”.

Siglas de comunicación

Las verás en GitHub, Slack y correos:

SiglaSe diceSignificaEjemplo
TL;DR/ti-él-di-ár/Too Long; Didn’t Read: “demasiado largo; no lo leí” (resumen)TL;DR: use const instead of var.
LGTM/el-yí-ti-ém/Looks Good To Me: “me parece bien”LGTM! Merging now.
WIP/dábliu-ai-pí/Work In Progress: “en curso”, no está terminadoWIP: add login form
PR/pi-ár/Pull Request: propuesta de cambios en GitHubOpened a PR for the fix.
MR/em-ár/Merge Request (GitLab)
FYI/ef-uái-ái/For Your Information: “para tu información”FYI, the server restarts at 3 am.
ASAP/éi-sap/As Soon As Possible: “lo antes posible”Fix it ASAP.
ETA/i-ti-éi/Estimated Time of Arrival: “hora estimada”ETA: Friday.
BTW/bi-ti-dábliu/By The Way: “por cierto”
IMO / IMHO/ai-em-óu/In My (Humble) Opinion: “en mi opinión”IMO, this name is confusing.
AFAIK/ei-ef-ei-ai-kéi/As Far As I Know: “que yo sepa”
IIRC/ai-ai-ar-sí/If I Remember Correctly
NIT/nit/detalle menor, quisquillanit: extra space here
OOO/ou-ou-ou/Out Of Office: “fuera de la oficina”
EOD/i-ou-dí/End Of Day: “a final del día”I'll finish it by EOD.
PTO/pi-ti-óu/Paid Time Off: vacaciones
AFK/ei-ef-quéi/Away From Keyboard: “no estoy”AFK for 10 minutes.
ICYMI/ai-si-uái-em-ái/In Case You Missed It
RFC/ar-ef-sí/Request For Comments: propuesta técnica
POC/pi-ou-sí/ o /pok/Proof Of Concept: prueba de concepto

Un ejemplo de PR:

Title: WIP: add dark mode toggle

TL;DR: adds a button in the header that switches the theme.
Still missing: save the choice in localStorage.

Y la revisión que recibes:

nit: rename `x` to `isDark`.
Otherwise LGTM, thanks!

Traducción: “nit: renombra x a isDark. Por lo demás me parece bien, ¡gracias!”.

Producto y equipo

SiglaSe diceSignificaCuándo
MVP/em-ví-pí/Minimum Viable Product: producto mínimo viableprimera versión útil
QA/quiú-éi/Quality Assurance: control de calidad (equipo que prueba)QA found two bugs.
UAT/iu-ei-tí/User Acceptance Testingprueba final del cliente
KPI/quéi-pi-ái/Key Performance Indicatormétricas clave
SLA/es-el-éi/Service Level Agreementacuerdo de nivel de servicio
PM/pi-ém/Product Manager o Project Managerquien organiza
SaaS/sas/Software as a Servicesoftware por suscripción
B2B / B2C/bi-tu-bí/Business to Business / Consumera quién vendes
OKR/ou-quéi-ár/Objectives and Key Resultsobjetivos
FTE/ef-ti-í/Full-Time Equivalentjornada completa

Mira cómo salen en una conversación:

We need an MVP by the end of the month.
QA will test it on Monday.
The SLA says the server must be up 99.9% of the time.

“Necesitamos un MVP para finales de mes. QA lo probará el lunes. El SLA dice que el servidor debe estar disponible el 99,9 % del tiempo.”

Jerga de código: palabras que no son siglas

Mucha jerga son palabras normales con un sentido propio:

InglésPronunciaciónSignificadoEjemplo
bug/bag/fallo en el programaThere's a bug in the login.
feature/fícher/funcionalidadA new feature: dark mode.
fix/fiks/arreglo / arreglarFix: typo in the footer.
hotfix/jótfiks/arreglo urgente en producciónDeploy a hotfix tonight.
patch/pach/parcheVersion 2.1.1 is a patch.
workaround/uérkaraund/apaño temporalUse this workaround for now.
refactor/rifáktor/reescribir sin cambiar lo que haceRefactor the date helpers.
legacy/léguesi/código antiguo heredadoThis is legacy code.
boilerplate/bóilerpleit/código repetitivo que siempre hay que escribirA lot of boilerplate.
spaghetti code/espagueti coud/código enredadoThis function is spaghetti code.
technical debt/téknical det/deuda técnica: atajos que se pagan despuésWe have too much technical debt.
code smell/coud esmel/señal de código mal diseñadoA 300-line function is a code smell.
hack/jak/solución chapuceraIt's a hack, but it works.
edge case/edy keis/caso extremo o raroWhat about an empty list? That's an edge case.
corner case/córner keis/caso extremo (varios a la vez)
nightly build/náitli bild/compilación automática diaria
to ship/ship/entregar, publicarWe shipped it on Friday.
to merge/merdy/fusionar ramasMerge the branch.
to push / to pull/push/, /pul/subir / traer cambios con GitPush your changes.
to revert/rivért/deshacer un cambioRevert the last commit.
to deprecate/déprikeit/marcar algo como obsoletoThis API is deprecated.
breaking change/bréikin chéindy/cambio que rompe compatibilidadv3 has breaking changes.
to hardcode/jardcoud/escribir un valor fijo en el códigoDon't hardcode the password.
to mock/mok/simular algo en pruebasMock the API.
stub/stab/sustituto simple en pruebas
snippet/snípet/trozo de códigoHere's a snippet.
gotcha/gócha/trampa que no esperasOne gotcha: arrays start at 0.
rubber duck/raber dak/explicarle el problema a un patito de gomaTry rubber duck debugging.
yak shaving/iak shéivin/tareas secundarias interminables antes de la principal
bikeshedding/báikshedin/discutir detalles triviales

Un par de frases reales de trabajo:

It's not a bug, it's a feature.
This is a quick hack. We should refactor it later.
The old billing module is legacy code with no tests.

“No es un bug, es una característica (broma). Es un hack rápido: deberíamos refactorizarlo luego. El módulo de facturación antiguo es código legacy sin pruebas.”

Nota: to ship significa “enviar” pero en desarrollo es “publicar una versión”. We ship on Fridays = “publicamos los viernes”. Un clásico: “don’t deploy on Friday” (no despliegues los viernes).

Etiquetas de commits y de issues

Las verás en el título de un commit o en las etiquetas (labels) de un issue:

EtiquetaSignificado
feat:nueva funcionalidad
fix:arreglo de un bug
docs:cambios en documentación
refactor:reescritura interna
chore:tarea de mantenimiento
test:pruebas
style:formato, sin cambios de lógica
good first issuebuen primer issue para empezar en un proyecto
help wantedse busca ayuda
wontfixno se va a arreglar
duplicaterepetido
invalidno es válido

Más sobre esto en Git y commits.

Cómo se usa en el día a día

Slack:
A: Hey, can you review my PR? It's small.
B: Sure. TL;DR?
A: Fixes a bug in the checkout. No new features.
B: LGTM! Ship it.

Traducción:

  • A: Oye, ¿puedes revisar mi PR? Es pequeña.
  • B: Claro. ¿Resumen?
  • A: Arregla un bug en el pago. Sin funcionalidades nuevas.
  • B: Me parece bien. Publícalo.

Errores frecuentes

  • Pronunciar las siglas como palabras. API, SDK, CLI, PR, QA se deletrean. Solo DRY, KISS, YAGNI, SaaS, WIP y poco más se dicen como palabra o mezcla.
  • Confundir “bug” con “error”. Un bug es el fallo en el código; error también es el mensaje que muestra.
  • Creer que “legacy” es insulto. Solo significa heredado; muchas veces es código que funciona y da dinero.
  • Usar “eventually” como “eventualmente”. Es un falso amigo; mira Falsos amigos.
  • Poner siglas desconocidas sin explicar. Con un cliente o con gente nueva, escribe la primera vez Minimum Viable Product (MVP).
  • Confundir PR con MR. Es lo mismo: GitHub dice Pull Request y GitLab Merge Request.
  • Pensar que “refactor” es arreglar un bug. Refactorizar es mejorar el código sin cambiar su comportamiento.

Resumen

Quiero decir…Se dice
Resumen cortoTL;DR
Me parece bienLGTM
Todavía no está terminadoWIP
Propuesta de cambios en GitHubPR (pull request)
No te repitas / hazlo simple / no lo necesitasDRY / KISS / YAGNI
Primera versión mínimaMVP
Pruebas de calidadQA
Arreglo urgentehotfix
Reescribir sin cambiar el comportamientorefactor
Código antiguo heredadolegacy
Código repetitivoboilerplate

Siguiente lección: Falsos amigos.

Pon a prueba lo que has aprendido

[Inglés] En una revisión de código te escriben: 'LGTM, merging after QA'. ¿Qué significa?

[Inglés] ¿Qué principio expresa la sigla DRY?

[Inglés] ¿Qué es un hotfix?

[Inglés] ¿Qué hace un refactor?

¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.