Programación en GO

Autor: Mario Macías Lloret

ISBN: 9788426734495

Editorial: Marcombo, S.A.

Edición: 1

Páginas: 263

Formato: 17x24x1.5

Cant. tomos: 1

Año: 2022

Idioma: España

Origen: España

Disponibilidad.: Disponible

Gs 417.600
Incluye programación con genéricos. Contenido Web
Cantidad:
Incremente su cotización profesional con uno de los lenguajes de programación de Google con más empuje de la última década: Go.

Go es el lenguaje presentado por Google en 2009, concebido y diseñado para aumentar la productividad y la calidad de su propio software. Su rapidez y ligereza no obvian las características deseables de todo buen lenguaje de alto nivel: expresividad, limpieza, seguridad y potentes abstracciones que simplifican conceptos que hasta ahora eran sinónimo de complejidad. Todo ello, acompañado por un impresionante conjunto de herramientas gratuitas, han convertido a Go en la elección de grandes proyectos, como Docker o Kubernetes, y a sus programadores, en un solicitado grupo de profesionales.

Este libro le permitirá realizar un recorrido a través de las principales características de Go, en cuanto a sintaxis y funcionalidad, así como:

- Conocer las funcionalidades más utilizadas de su inmensa biblioteca estándar.
- Ahondar en la filosofía de su sistema de tipos de datos, que ha contribuido a dar la vuelta al modo en que el software se diseña.
- Crear software que es capaz de aprovechar al máximo los actuales computadores multiprocesador y multinúcleo.
- Coordinar y comunicar, con extrema sencillez, miles de procesos que se ejecutan en paralelo.
- Empezar rápidamente a crear aplicaciones profesionales, y adquirir sólidas bases sobre servicios web, serialización de datos o conexión a bases de datos, entre otras.

Además, en el apéndice de esta segunda edición se describe el mecanismo de funciones y tipos de datos genéricos, una de las últimas y más demandadas inclusiones, que amplía el paradigma del lenguaje y lo equipara en funcionalidades a los lenguajes de mayor implantación en la industria.

No pierda la oportunidad de mejorar su cotización como profesional, a través de un itinerario temático diseñado para facilitar su toma de contacto con el lenguaje y acelerar su profundización en los conceptos más avanzados de Go. Amortizará decenas de veces la adquisición de este libro con el tiempo que ahorrará en la búsqueda de documentación y tutoriales en línea. Este libro le proporciona, ya compilado y pulido, todo el conocimiento que necesita para consolidarse como programador en Go.
INTRODUCCIÓN
Acerca de este libro
Organización del libro
Convenciones de formato
Acerca del autor

Capítulo 1. INSTALACIÓN Y USO DE GO
1.1 Instalando Go
1.2 Comandos básicos de Go
1.3 Editando su código en Go
1.4 Compilando y ejecutando su primer programa

Capítulo 2. SINTAXIS BÁSICA DE GO
2.1 Tipos de datos básicos
2.2 Cadenas de texto. El tipo string
2.3 Definición de variables
2.4 Conversiones explícitas de tipos
2.5 Constantes
2.6 Bases de numeración
2.7 Operadores numéricos
2.8 Operadores numéricos de comparación
2.9 Operadores aplicables al tipo string
2.10 Operadores lógicos con bool
2.11 Operadores lógicos a nivel de bit
2.12 Salida estándar de datos
2.13 Entrada estándar de datos

Capítulo 3. CONTROL DE FLUJO
3.1 Bloques condicionales
3.1.1 if
3.1.2 if
3.1.3 switch case
3.2 Órdenes iterativas (bucles for)
3.3 Contexto y ocultación de variables

Capítulo 4. APUNTADORES
4.1 Definición de un apuntador
4.2 La referencia a nil
4.3 Apuntando hacia una variable
4.4 Leyendo o modificando el valor apuntado
4.5 Valores versus referencias

Capítulo 5. FUNCIONES
5.1 Definición e invocación
5.2 Retorno de valores
5.3 Retorno de múltiples valores
5.4 Retorno de múltiples valores nombrados
5.5 El identificador vacío
5.6 Paso por valor vs. paso por referencia
5.7 Literales de función
5.8 Otras consideraciones

Capítulo 6. ESTRUCTURAS DE DATOS LINEALES
6.1 Vectores
6.2 Porciones
6.3 Declarando variables a porciones
6.4 Añadir elementos a una porción. Función append
6.5 Medir dimensiones con len y cap
6.6 Controlar el tamaño inicial con make
6.7 Copia de porciones con copy

Capítulo 7. CADENAS DE TEXTO
7.1 Diferencias con porciones y vectores
7.2 Obteniendo la longitud de un string
7.3 De string a porción
7.4 Construcción dinámica de cadenas
7.4.1 Concatenación de cadenas
7.4.2 Construcción con strings.Builder
7.4.3 Paquete fmt

Capítulo 8. DICCIONARIOS (MAPAS)
8.1 Declaración de mapas
8.2 Acceso a elementos
8.3 Eliminando entradas con delete
8.4 Recorriendo mapas con range
8.5 Contando el número de elementos
8.6 Conjuntos
8.7 Detalles internos de map

Capítulo 9. ORGANIZACIÓN DE CÓDIGO
Paquetes y módulos
9.1 Paquetes (package)
9.2 Módulos
9.3 Creando módulos y paquetes
9.4 Importando paquetes del módulo local
9.4.1 Dependencias circulares
9.5 Incorporando paquetes de módulos externos
9.6 Copias locales de módulos. El directorio vendor
9.7 Elementos públicos y privados a nivel de paquete
9.8 Alias de paquete
9.9 La función init

Capítulo 10. DEFINICIÓN DE TIPOS DE DATOS
10.1 Tipos a partir de porciones
10.2 Tipos a partir de mapas
10.3 Tipos funcionales
10.4 Receptores de función. Métodos
10.5 Tipos pseudoenumerados
10.5.1 El operador iota
10.6 Caso de estudio: time.Duration

Capítulo 11. TIPOS DE DATOS ESTRUCTURADOS
Struct
11.1 Tipos de datos estructurados: struct
11.2 Punteros a struct
11.3 Receptores de función y creación de métodos
11.4 Incrustado de estructuras
11.5 La estructura vacía: struct{}
11.6 Caso práctico: opciones funcionales como alternativa a constructores

Capítulo 12. INTERFACES
12.1 Caso de estudio: la interfaz Stringer
12.2 La filosofía del tipado estructural
12.3 Implementando interfaces: receptores ¿mediante apuntadores o mediante valores?
12.4 La interfaz vacía interface{}
12.5 Manejo seguro de tipos de datos
12.6 Incrustando interfaces

Capítulo 13. GESTIÓN DE ERRORES
13.1 La interfaz error
13.2 Instanciando errores de manera genérica
13.3 Comprobación de tipos de error
13.3.1 Errores centinela
13.3.2 Distintas implementaciones de error
13.4 Envolviendo errores
13.5 Verificando la cadena de errores: errors.As
13.6 defer
13.7 Entrando en pánico
13.8 Función panic
13.9 Función recover

Capítulo 14. ENTRADA Y SALIDA
Flujos de datos
14.1 Interfaces io.Writer e io.Reader
14.2 Archivos de disco
14.3 Entrada y salida formateada
14.4 Paquete bufio
14.5 Paquete ioutil

Capítulo 15. PARALELISMO Y CONCURRENCIA 175Gorrutinas
15.1 Un poco de historia
15.2 Gorrutinas
15.3 Sincronización mediante sync.WaitGroup
15.4 Problemas de concurrencia: condiciones de carrera
15.5 Sincronización mediante sync.Mutex
15.5.1 sync.RWMutex
15.6 Sincronización mediante atomic
15.7 Conclusiones: ¿cuándo y cómo sincronizar gorrutinas?

Capítulo 16. CANALES
16.1 Creación, uso y cierre
16.2 Canales solo de lectura y de escritura
16.3 Bloqueo en la escritura: canales con o sin búfer
16.4 Iterando canales con for
16.5 Múltiples receptores
16.6 Sincronización mediante canales
16.7 Demultiplexión con select
16.8 Cancelando lecturas después de un tiempo de espera

Capítulo 17. SERVICIOS WEB
17.1 HTTP explicado en 3 minutos
17.2 REST explicado en 3 minutos
17.3 Creación de un servicio HTTP en Go
17.3.1 Interfaz http.Handler
17.3.2 Funciones http.ListenAndServe y http.ListenAndServeTLS
17.3.3 Ejemplo de servidor HTTP
17.4 Creación de un cliente HTTP en Go
17.4.1 Ejemplo de cliente HTTP
17.5 Ejemplo práctico de servicio REST
17.5.1 Probando el servicio REST

Capítulo 18. SERIALIZACIÓN DE DATOS
18.1 Serialización de tipos Go a JSON
18.2 Deserialización de JSON a tipos Go
18.3 Serializando y deserializando documentos JSON sin formato
18.4 Serialización de porciones y arrays
18.5 Serialización y deserialización en otros formatos

Capítulo 19. CONEXIÓN A BASES DE DATOS SQL
19.1 Carga de controlador
19.2 Abriendo una base de datos
19.3 Modificando la base de datos
19.4 Consultando datos
19.5 Declaraciones preparadas
19.6 Transacciones
19.7 Reserva de conexiones

Capítulo 20. PRUEBAS AUTOMATIZADAS DE SOFTWARE
20.1 Código a probar: la función Factorial
20.2 El paquete testing
20.3 Probando servicios HTTP
20.4 Pruebas de rendimiento
20.5 Cobertura de las pruebas

APÉNDICE. PROGRAMACIÓN GENÉRICA
Tipos de datos genéricos
Valor cero de un tipo genérico
Funciones genéricas
Restricciones sobre argumentos de tipo
Restricciones como interfaces
Definiendo nuevas restricciones
Múltiples argumentos de tipo
Ejemplo: MultiMapa
No hay enlaces disponible
Libros Relacionados