A logo showing the text blog.marcnuri.com
English
Inicio»Go»Cómo Inicializar un Nuevo Proyecto Go con Módulos

Entradas Recientes

  • MCP Tool Annotations: Añadiendo Metadatos y Contexto a Tus Herramientas de IA
  • Fabric8 Kubernetes Client 7.2.0 está disponible!
  • Conectarse a un servidor MCP con JavaScript y AI SDK
  • Conectarse a un servidor MCP con JavaScript y LangChain.js
  • El Futuro de las Herramientas para Desarrolladores en la era de la IA

Categorías

  • Antiguo
  • Front-end
  • Go
  • Herramientas
  • Industria y negocios
  • Inteligencia Artificial
  • Java
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales

Archivos

  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

Cómo Inicializar un Nuevo Proyecto Go con Módulos

2020-02-22 en Go etiquetado Gestión de dependencias / Go por Marc Nuri | Última actualización: 2025-02-11
English version

Introducción

Iniciar un nuevo proyecto Go es sencillo, gracias a las herramientas y convenciones integradas de Go. Desde la introducción de los módulos Go en la versión 1.11, la gestión de dependencias y la organización de proyectos se ha vuelto mucho más sencilla.

Los módulos Go te permiten definir las dependencias de tu proyecto, versionarlas y garantizar la reproducibilidad en diferentes entornos. Esto elimina la necesidad de herramientas de gestión de dependencias más antiguas como GOPATH y proporciona un enfoque moderno para la configuración de proyectos.

En este artículo, te mostraré cómo inicializar un nuevo proyecto Go, configurar su estructura básica y seguir las mejores prácticas para organizar tu código. Ya estés construyendo una herramienta CLI, un servidor web o una librería, estos pasos te darán una base sólida para empezar.

Configuración del entorno

Antes de empezar, asegúrate de tener Go instalado en tu sistema. Puedes descargarlo desde la página web oficial de Go.

Después de la instalación, verifica que todo esté correcto ejecutando el siguiente comando:

bash
go version

Este comando debería mostrar la versión de Go instalada, confirmando que está correctamente configurada en tu sistema.

Consejo

Si es necesario, actualiza tu variable de entorno PATH para incluir los directorios binarios de Go, de modo que las herramientas y los binarios instalados estén disponibles en todo el sistema.

Crear un directorio para el proyecto

Crea un nuevo directorio para tu proyecto y accede a él. Esto aísla tu proyecto y mantiene tu espacio de trabajo organizado:

bash
mkdir my-new-go-project
cd my-new-go-project

Inicializar un nuevo módulo Go

Para empezar un nuevo proyecto Go con módulos, inicializa tu módulo con un nombre único. Puedes hacerlo ejecutando el siguiente comando:

bash
go mod init github.com/your-username-or-organization/my-new-go-project
  • Reemplaza github.com/your-username-or-organization/my-new-go-project con el module path deseado.
  • Este path debe ser único para tu proyecto y seguir las convenciones de nombres de módulos Go.
  • Si planeas publicar tu proyecto como una librería de código abierto, considera usar una URL de repositorio público válida.

Este comando crea un archivo go.mod en el directorio de tu proyecto. El archivo go.mod contiene el nombre de tu módulo y sus dependencias, asegurando que tu proyecto esté versionado y sea reproducible.

module github.com/your-username-or-organization/my-new-go-project

go 1.23

Crear tu primera aplicación Go

Una vez que hayas inicializado tu módulo, puedes empezar a escribir tu aplicación Go.

Crea un nuevo archivo Go en el directorio de tu proyecto y añade el siguiente código:

main.go
package main

import "fmt"

func main() {
    fmt.Println("GREETINGS PROFESSOR FALKEN.")
}

Este sencillo programa imprime un mensaje en la consola al ejecutarse. Observa que el nombre del paquete es main, lo que indica que se trata de un programa ejecutable.

Compilar y ejecutar tu aplicación

Puedes ejecutar tu aplicación Go directamente sin crear un ejecutable usando el comando go run:

bash
go run main.go

Este comando compila y ejecuta tu aplicación, mostrando la salida en tu terminal.

Para compilar tu proyecto en un binario ejecutable, usa el comando go build:

bash
go build

Este comando compila tu aplicación en un binario ejecutable con el nombre de tu directorio de proyecto. Puedes ejecutar este binario directamente desde la línea de comandos:

bash
./my-new-go-project

Organizar tu proyecto

A medida que tu proyecto crece, es útil adoptar una estructura organizada. Una estructura común podría verse así:

my-new-go-project/
├── cmd/
│   └── your-app/
│       └── main.go
├── internal/
│   └── pkg/
│       └── your_private_package/
├── pkg/
│   └── your_public_package/
├── go.mod
├── go.sum
└── README.md
Directorio / ArchivoDescripción
cmd/

Contiene las aplicaciones principales de tu proyecto.
Cada aplicación debe tener su propio directorio que coincida con el nombre del ejecutable que deseas.

internal/Contiene código de aplicación y librerías privadas que no deben ser importadas por otros proyectos.
pkg/Contiene código de librerías que pueden ser importadas por otros proyectos.
go.modDefine la ruta del módulo de tu proyecto y sus dependencias.
go.sumContiene los checksums criptográficos esperados del contenido de versiones específicas de módulos.

Esta estructura promueve la mantenibilidad y escalabilidad del proyecto.

Consejo

Para proyectos más pequeños, puedes mantener todo en el directorio raíz con un único archivo main.go.

Gestionar dependencias

Los módulos Go facilitan la gestión de dependencias. Cuando importas un paquete en tu código, Go descarga y almacena en caché las dependencias necesarias automáticamente.

Para añadir una nueva dependencia a tu proyecto, utiliza el comando go get:

bash
go get github.com/username-or-organization/dependency

Por ejemplo, para añadir gin-gonic a tu proyecto, ejecuta el siguiente comando:

bash
go get github.com/gin-gonic/gin

Este comando descarga el paquete gin y lo añade a tu archivo go.mod como una dependencia.

Después de añadir una nueva dependencia, ejecuta el siguiente comando:

bash
go mod tidy

Este comando se asegura de que tus archivos go.mod y go.sum estén actualizados añadiendo las dependencias faltantes y eliminando cualquier dependencia innecesaria.

Conclusión

Iniciar un nuevo proyecto Go es sencillo y eficiente con su enfoque modular y sus herramientas integradas. Siguiendo estos pasos, tendrás una base sólida para cualquier aplicación, ya sea una herramienta CLI, un servidor web o una librería.

Experimenta con estas técnicas y adapta tu propia estructura para satisfacer las necesidades de tu proyecto. ¡Siéntete libre de compartir esta guía con otros que estén empezando con Go!

Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos
Lanzando GitHub Actions entre distintos repositoriosEnums en Go: Un enfoque alternativo
© 2007 - 2025 Marc Nuri