Guía de Golang: Una lista de los mejores frameworks, IDEs y herramientas de Golang

Desde su introducción, el lenguaje de programación Go de Google (Golang) ha experimentado una creciente popularidad entre los usuarios principales. En una encuesta realizada en diciembre de 2016, el 89% de los 3.595 encuestados afirmó que programaba en Go en el trabajo o fuera de él.

Además, Go ocupa el primer puesto entre los lenguajes de programación en términos de experiencia y preferencia. En este mes de julio de 2017, Go ocupa el 10º puesto en el ranking de Lenguaje de Programación del Año de Tiobe, saltando desde el 55º puesto que ocupaba el año pasado.

Está claro que Go está atrayendo a muchos programadores de diversas disciplinas y profesionales de la externalización del desarrollo de software. Y es seguro que esto se debe a la facilidad de uso de Go.

Como lenguaje de programación compilado y de código abierto, Go facilita a los desarrolladores la creación de software sencillo, fiable y eficiente. Es el producto de la innovación y la evolución de los lenguajes más conservadores como C y C++.

Con Go, se reduce la cantidad de tipado de código y se facilita la escritura de APIs robustas sin sacrificar su rendimiento. Diseñado para la escalabilidad y la concurrencia, Go hace posible las optimizaciones. Un compilador puede realizar todo el trabajo de inspección de código antes del tiempo de ejecución.

Hemos compilado una lista de los mejores frameworks, IDEs y herramientas para Golang para su rápida referencia. Márcala en tu navegador para que puedas volver siempre que trabajes con Go.

Frameworks para Golang

Los frameworks web ayudan a los desarrolladores a construir aplicaciones de la forma más fácil y rápida posible. Go es todavía relativamente nuevo, por lo que es importante utilizar frameworks con suficiente documentación.

Aquí tienes 9 frameworks que puedes usar para ayudarte a construir proyectos usando el lenguaje Go.

Revel

Como framework de alta productividad para Go, Revel incluye una herramienta Hot Code Reload que te permite reconstruir tu proyecto en cada cambio de archivo. También incluye una amplia variedad de características completas y de alto rendimiento, por lo que no necesita encontrar bibliotecas externas para integrar en el marco.

Beego

Beego es un marco MVC completo con su propia biblioteca de registro, ORM y marcos web. No es necesario encontrar e instalar bibliotecas de terceros. Cuenta con una herramienta incorporada llamada Bee Tool que vigila los cambios de código y ejecuta tareas cuando se detectan cambios.

Beego le ahorrará un montón de horas, especialmente al principio de un proyecto, cuando está averiguando el marco de registro o la estructura de la aplicación.

Martini

Inspirado en Sinatra, Martini es un marco extremadamente ligero pero potente. Fue desarrollado para escribir aplicaciones y servicios web modulares en Golang.

Cuenta con un diseño no intrusivo que es rápido y fácil de usar e incluye una amplia gama de manejadores y middleware. Es capaz de realizar el enrutamiento básico, el manejo de excepciones y el servicio de documentos por defecto para las aplicaciones de AngularJS en modo HTML5.

La mejor característica de Martini es su uso de la reflexión, que permite a los desarrolladores insertar dinámicamente los datos en las funciones de los manejadores y añadir nuevos servicios. Martini también es totalmente compatible con la interfaz http.HandlerFunc. La desventaja, sin embargo, es que el framework Martini ya no se mantiene.

Gin Gonic

Gin Gonic es un framework web con una API similar a la de Martini, pero con un rendimiento mucho mejor. Si has usado Martini antes, entonces estarás familiarizado con Gin Gonic. De lo contrario, sólo le tomará 10 minutos para aprender Gin. Es así de fácil!

Gin Gonic es un framework minimalista que incluye sólo las librerías y características más esenciales. Esto lo hace perfecto para desarrollar APIs REST de alto rendimiento. Además, es 40 veces más rápido que Martini.

Puedes añadir middleware, grupos anidados, validación JSON y renderizado, pero sigue manteniendo su rendimiento óptimo. Gin Gonic utiliza httprouter, el router HTTP más rápido para Go.

Buffalo

Construir nuevas aplicaciones web con Go es rápido y sencillo con Buffalo. Cuando se inicia un nuevo proyecto, Buffalo ya tiene todo preparado para usted, desde el desarrollo del front-end hasta el back-end.

Cuenta con Hot Reloading, lo que significa que el comando dev vigilará sus archivos .go y .html automáticamente. Entonces reconstruirá y reiniciará su binario para usted. Sólo tienes que ejecutar el comando dev, y verás los cambios en directo ante tus ojos.

Buffalo es más que un framework – es un ecosistema de desarrollo web holístico que te permite ir directamente a la construcción de tu aplicación.

Goji

Goji es un framework web ligero y rápido que tiene la composibilidad y la simplicidad como su principal prioridad. Al igual que net/http.ServeMux, Goji es un multiplexor de peticiones HTTP minimalista. Incluye soporte para Einhorn, lo que hace posible tener soporte para websocket en Goji.

Características adicionales incluyen patrones de URL, pila de middleware reconfigurable, graceful shutdown, y más. Goji puede ser utilizado en producción y ha servido miles de millones de solicitudes a través de varias organizaciones.

Tiger Tonic

Inspirado por Dropwizard, Tiger Tonic es un framework Go para desarrollar servicios web JSON y construir APIs REST de alto rendimiento. Para mantenerse fiel a los principios de Golang, Tiger Tonic se esfuerza por mantener las características ortogonales.

La desventaja de Tiger Tonic es su insuficiencia cuando se trata de construir grandes aplicaciones de back-end.

Gocraft

Otro potente pero minimalista marco, Gocraft ofrece un rendimiento de enrutamiento rápido y escalable. Añade enrutamiento al paquete net/http de la biblioteca estándar.

Gocraft es un paquete Go mux y middleware que cuenta con capacidades de casting y reflection para que puedas escribir tu código de forma estática. También puedes añadir una funcionalidad opcional con el middleware incorporado o escribir el tuyo propio.

Dado que el rendimiento es siempre una de las principales preocupaciones para los desarrolladores, Gocraft es una gran opción para los desarrolladores. Es muy fácil escribir aplicaciones web backend utilizando el framework Gocraft.

Mango

Aunque Mango no es mantenido activamente por su creador, Paul Bellamy, muchos usuarios de Go lo siguen utilizando. Lo mejor de Mango es su modularidad. Puedes elegir entre una variedad de librerías para incluir en tu proyecto.

Mango te permite construir módulos reutilizables de funcionalidad HTTP de la forma más rápida y sencilla posible. Compila una lista de middleware y aplicación en un único objeto de servidor http para mantener su código autocontenido.

Entorno de Desarrollo Integrado (IDEs) para Golang

Los IDEs para Golang están ganando popularidad, junto con el lenguaje Go. Aunque muchos desarrolladores siguen prefiriendo usar editores de texto, muchos prefieren usar también IDEs.

Si estás trabajando en un proyecto a gran escala con una extensa base de código, un IDE puede ayudarte a organizar tu código y navegarlo con facilidad. Además, los IDEs pueden ayudarte a probar tu código y editarlo en consecuencia.

Aquí están los principales IDEs que funcionan muy bien con Golang.

Gogland

La compañía de desarrollo de software JetBrains lanzó otro IDE fiable, pero esta vez, para Golang. Gogland es un IDE comercial que proporciona un entorno ergonómico robusto para los desarrolladores de Go. También cuenta con asistencia de codificación, depurador y un terminal integrado.

Debido a que una empresa establecida creó Gogland, cuenta con un extenso ecosistema de plugins de IntelliJ donde puedes obtener herramientas adicionales en caso de que necesites más.

Visual Studio Code

Creado por Microsoft, Visual Studio Code es un IDE y editor de código completo y de código abierto que soporta una amplia variedad de lenguajes de programación. Cuenta con finalización inteligente con IntelliSense; depuración mediante puntos de ruptura, pilas de llamadas y una consola interactiva; integración Git incorporada; y explorador de carpetas y archivos jerárquicos.

Como otro IDE popular, Visual Studio Code tiene una comunidad de apoyo de desarrolladores de Go que contribuyen regularmente. Con Visual Studio Code, se pueden ampliar las funcionalidades con la serie de plugins disponibles.

LiteIDE

LiteIDE es uno de los primeros IDE de código abierto centrados en Golang que se creó hace más de 5 años. Como una aplicación C++ Qt con un aspecto único, LiteIDE ofrece gestión de código, comandos de construcción configurables, depurador gdb y Delve, autocompletado y tematización con WordApi, sistema basado en tipos MIME, y más. También proporciona soporte para JSON y Golang.

Wide

Wide es un IDE basado en web para programadores de Golang. Está diseñado para el desarrollo colaborativo y funciona mejor para equipos y agencias de desarrollo web. Las características de Wide incluyen resaltado de código, depuración, integración con Git y mucho más.

Debido a que Wide está creado y mantenido por un desarrollador chino, la mayor parte de su documentación y soporte están en chino.

Atom con el plugin go-plus

Si ya estás usando Atom, tu experiencia de edición de código en Golang puede mejorarse con un paquete de código abierto llamado go-plus. Con go-plus, obtendrá información instantánea y en tiempo real sobre su sintaxis y errores de construcción.

El paquete go-plus ofrece casi todo el soporte de Golang en Atom. También se puede utilizar para las herramientas, los flujos de construcción, linters, vet y herramientas de cobertura.

Go-plus también incluye varios fragmentos de código y características como el autocompletado con gocode, el formateo de código con gofmt, goreturns, o goimports, y mucho más.

Eclipse con GoClipse

Debido a que Eclipse es un IDE muy popular, se han creado numerosos plugins para él. GoClipse es un plugin de Eclipse para Golang que ofrece edición de código fuente en Go con resaltado de sintaxis configurable y completado automático de sangría y llaves.

GoClipse también sirve como un asistente y constructor de proyectos que informa de los errores de sintaxis y construcción al instante. Las características adicionales de GoClipse incluyen la funcionalidad de depuración y asistencia de código.

Sublime Text con GoSublime

Sublime Text es otro sofisticado editor de texto con una gran comunidad de colaboradores y desarrolladores. Como tal, se ha creado una gran variedad de plugins para este IDE.

GoSublime es un plugin de Golang para Sublime Text 3 que ofrece completado de código desde Gocode, comprobación de lint/sintaxis mientras se cablea el código, adición y eliminación automática de importaciones de paquetes, y mucho más.

Vim con el plugin vim-go

Vim es un IDE gratuito y de código abierto que se puede personalizar y configurar con varios plugins. Si eres un programador de Golang, puedes usar Vim con el plugin vim-go creado por Fatih Arslan. Vim-go instala automáticamente todos los binarios necesarios para proporcionar una integración fluida de Vim para Golang.

Vim-go es una potente suite de plugins para escribir y desarrollar Go. Sus características incluyen el análisis avanzado de código fuente, la adición y eliminación de las rutas de importación, el soporte de múltiples 3ª línea, la definición de goto, las ejecuciones rápidas de archivos, y mucho más.

Vim-go es altamente personalizable, con características individuales que se pueden activar o desactivar de acuerdo a su necesidad.

Komodo

Komodo es un IDE con todas las funciones del lenguaje Go que soporta otros lenguajes de programación como Node.js, Python, Ruby, Perl, y más. Con este IDE de Go, puedes escribir código limpio fácilmente. Sus características incluyen un editor de código avanzado, finalización de código inteligente, comprobación de sintaxis, control de versiones y pruebas unitarias, y una Inteligencia de Código Go que permite la navegación de código y sugerencias de código.

Lo mejor de Komodo es que funciona muy bien para la colaboración en equipo, ya que varios desarrolladores pueden editar un documento simultáneamente. Komodo se puede instalar en Mac, Windows o Linux con una sola licencia.

IntelliJ IDEA con el plugin de soporte del lenguaje Go (golang.org)

IntelliJ IDEA (la misma empresa que JetBrains) es un IDE que se puede utilizar con Golang a través del plugin de soporte del lenguaje Go. Si quieres usar IntelliJ IDEA con Golang, necesitas instalar este plugin, aunque con características limitadas a diferencia de Gogland.

Herramientas para Golang

Las herramientas de Golang se pueden usar para una gran variedad de proyectos y aplicaciones web. Los desarrolladores pueden escribir código y construir aplicaciones tan rápida y fácilmente como sea posible con estas herramientas útiles.

Aquí hay una lista de las principales herramientas de Golang para su referencia.

Apicompat

Apicompat es una nueva herramienta de lenguaje Go que ayuda a los desarrolladores a detectar retrocesos, cambios incompatibles y declaraciones exportadas.

Con Apicompat, puedes evitar falsos positivos. Sin embargo, no todos los cambios incompatibles hacia atrás pueden ser detectados por Apicompat. El intercambio de parámetros de argumentos y otros cambios todavía deben ser considerados por el autor de la biblioteca.

Checkstyle

Inspirado en Java Checkstyle, Checkstyle para Golang imprime sugerencias de estilo de codificación. También permite a los desarrolladores comprobar el número de líneas/funciones y líneas/parámetros de los archivos, que pueden ser configurados por el usuario.

Depth

Depth es otra útil herramienta de Golang que ayuda a los desarrolladores web a recuperar y visualizar los árboles de dependencias del código fuente de Go. Se puede utilizar como una aplicación de línea de comandos independiente o como un paquete particular dentro de su propio proyecto. Puede añadir personalizaciones simplemente estableciendo las banderas apropiadas en el árbol antes de resolver.

Go-Swagger

Este conjunto de herramientas incluye una amplia variedad de características y funciones. Go-Swagger es una implementación de Swagger 2.0, y puede serializar y deserializar especificaciones swagger. Es una representación minimalista pero potente de su API RESTful.

Con Go-Swagger, puede swagger documento de especificaciones, validar contra jsonschema, y otras reglas adicionales. Otras características incluyen la generación de código, la generación de la API basada en las especificaciones swagger, la generación del documento de especificaciones basado en el código, los formatos de cadena extendidos, y mucho más.

Go Meta Linter

Si necesita ejecutar herramientas Go lint y normalizar su salida simultáneamente, eso es exactamente lo que Go Meta Linter puede hacer por usted. Go Meta Linter está pensado para ser utilizado con un editor de texto o una integración IDE como el plugin Sublime Linter, el paquete Atom go-plus, el comprobador Emacs Flycheck, Vim/Neovim, y Go para Visual Studio Code. También soporta una amplia variedad de linters y archivos de configuración como JSON.

Go-callvis

Go-callvis es una herramienta de desarrollo web que permite visualizar el gráfico de llamadas de tu programa Go con el formato de puntos de Graphviz. Esta herramienta es especialmente útil cuando se construyen grandes proyectos con bases de código complejas. También es útil cuando se quiere entender la estructura del código de otro desarrollador o reconstruir el proyecto de otra persona.

Con go-callvis, los desarrolladores pueden centrarse en un paquete específico dentro de un programa; agrupar las funciones según el paquete y los métodos según el tipo; y limitar los paquetes a los prefijos de ruta personalizados, e ignorar los que los contienen.

Gonative

Gonative es una sencilla herramienta de Golang que permite construir cadenas de herramientas Go con librerías nativas, que pueden ser compiladas de forma cruzada mientras siguen utilizando las versiones habilitadas para Cgo de los paquetes stdlib.

Gonative descarga las distribuciones binarias para cada plataforma y copia sus librerías en sus lugares adecuados. Al mismo tiempo, Gonative establece el tiempo de modulación correcto para evitar reconstrucciones innecesarias.

Desgraciadamente, Gonative sigue sin ser probado en Windows. Además, no hay soporte para Linux/arm.

Grapes

Grapes es una herramienta ligera de Golang diseñada para distribuir comandos sobre ssh fácilmente. Está escrita y mantenida activamente por Yaron Sumel.

Grapes pronto soportará la validación completa de la clave del host, así que eso es algo que los desarrolladores deben tener en cuenta.

Gosimple

Lo bueno de este linter de Golang es que se centra en simplificar el código fuente de Go. Gosimple siempre apunta a la última versión de Go, por lo que requiere la versión 1.6 o posterior de Go.

Si hay una nueva versión de Go, gosimple sugerirá los métodos más fáciles y sencillos para evitar construcciones complicadas.

Go Vendor

Go Vendor es la herramienta de Golang que trabaja con la carpeta estándar Vendor. Permite a los desarrolladores copiar las dependencias existentes de $GOPATH con govendor add/update. También puedes sacar directamente nuevas dependencias o actualizar las existentes con govendor fetch y mover sistemas heredados con govendor migrate.

Envolviéndolo

Si vienes de un fondo JS/Node, necesitas aprender algunos conceptos nuevos de programación como coroutines, canales, tipado estricto con compilación, interfaces, structs, punteros y algunas otras diferencias. Pero, una vez que te pongas al día, encontrarás que Golang es más fácil y rápido de usar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.