🧱 Actualizar estructura del libro

This commit is contained in:
Iván Ruvalcaba 2023-06-27 05:13:25 +01:00
parent 93f4ad03ca
commit 4c2d7059ea
Signed by: ivanruvalcaba
GPG Key ID: DBB4A5B917E572DE
4 changed files with 46 additions and 51 deletions

View File

@ -1,2 +1,2 @@
SUMMARY.md
introduccion.md
prefacio.md

View File

@ -1,6 +1,6 @@
# Sumario
[Prefacio]()
[Prefacio](./prefacio.md)
[Introducción](./introduccion.md)
- [Módulos, paquetes y dependencias](./20230611222346.md)

View File

@ -2,7 +2,7 @@
## Acerca del lenguaje de programación Go
[Go][golang] es un lenguaje de programación de código abierto creado por Google y [distribuido bajo una licencia tipo BSD][golang-licencia]. Una [licencia BSD ][licencia-bsd] permite a cualquier persona utilizar Go de forma gratuita, siempre y cuando se conserve el aviso de copyright y no se utilice el nombre de Google para promocionarlo o respaldarlo. Go está fuertemente influenciado por el lenguaje de programación C, no obstante tiene una sintaxis mucho más simple y una mejor seguridad de memoria, además de contar con recolección de basura.
[Go][golang] es un lenguaje de programación de código abierto creado por Google y [distribuido bajo una licencia tipo BSD][golang-licencia]. Una [licencia BSD][licencia-bsd] permite a cualquier persona utilizar Go de forma gratuita, siempre y cuando se conserve el aviso de copyright y no se utilice el nombre de Google para promocionarlo o respaldarlo. Go está fuertemente influenciado por el lenguaje de programación C, no obstante tiene una sintaxis mucho más simple y una mejor seguridad de memoria, además de contar con recolección de basura.
### Diseño del lenguaje Go
@ -14,59 +14,12 @@ Las variables se tipan estáticamente y las aplicaciones se compilan rápidament
Go tiene muchas características interesantes. Una característica que destaca es la concurrencia incorporada. Basta con poner la palabra «go» antes de cualquier llamada a una función, y se generará un hilo ligero para ejecutar la función. Otra característica bastante importante es la gestión de dependencias, que es muy eficiente. La gestión de dependencias es parte de la razón por la que Go compila increíblemente rápido. No reincluye los mismos archivos de cabecera varias veces, como hace C++. Go también incorpora seguridad de memoria, y un recolector de basura se encarga de limpiar la memoria no empleada. La biblioteca estándar de Go también es impresionante. Es moderna y contiene paquetes de redes, HTTP, TLS, XML, JSON, bases de datos, manipulación de imágenes y criptografía. Go también soporta Unicode, lo que permite utilizar todo tipo de caracteres en el código fuente.
El conjunto de herramientas Go es fundamental para el ecosistema.
Proporciona herramientas para descargar e instalar dependencias remotas,
ejecutar pruebas unitarias y benchmarks, generar código y formatearlo
según los estándares de formateo de Go. También incluye el compilador,
el enlazador y el ensamblador, que compilan muy rápidamente y permiten
una fácil compilación cruzada con únicamente cambiar las variables de entorno `GOOS` y `GOARCH`.
El conjunto de herramientas Go es fundamental para el ecosistema. Proporciona herramientas para descargar e instalar dependencias remotas, ejecutar pruebas unitarias y benchmarks, generar código y formatearlo según los estándares de formateo de Go. También incluye el compilador, el enlazador y el ensamblador, que compilan muy rápidamente y permiten una fácil compilación cruzada con únicamente cambiar las variables de entorno `GOOS` y `GOARCH`.
Algunas características fueron excluidas del lenguaje Go. Los genéricos, la herencia, las aserciones, las excepciones, la aritmética de punteros y las conversiones de tipo implícitas se omitieron intencionadamente. Los autores decidieron hacer esto, ya sea porque querían mantener el rendimiento, mantener la especificación del lenguaje lo más simple posible, o porque no se ponían de acuerdo sobre la mejor forma de implementarla —o simplemente porque una característica era demasiado controvertida—. La herencia también se omitió intencionadamente en favor del uso de interfaces y composición. Algunas otras características, como los genéricos, se omitieron porque había demasiado debate sobre su correcta implementación; sin embargo, hicieron su aparición en la versión de [Go 1.8][golang-1.8-genericos]. Los autores reconocieron que es mucho más fácil añadir una característica a un lenguaje que quitarla.
## Prefacio
Mi primera elección para el título del libro fue Boring Go porque, bien escrito, Go es aburrido.
Go tiene un pequeño conjunto de características que no está a la altura de la mayoría de los lenguajes de programación modernos. Los programas Go bien escritos tienden a ser sencillos y a veces un poco repetitivos. No hay herencia, no hay genéricos (todavía), no hay programación orientada a aspectos, no hay sobrecarga de funciones, y ciertamente no hay sobrecarga de operadores. No hay concordancia de patrones, ni parámetros con nombre, ni excepciones. Para horror de muchos, hay *punteros*. El modelo de concurrencia de Go es diferente al de otros lenguajes, pero está basado en ideas de los años 70, al igual que el algoritmo utilizado para su recolector de basura. En resumen, Go parece un retroceso. Y de eso se trata.
Aburrido no significa trivial. Usar Go correctamente requiere una comprensión de cómo sus características están destinadas a encajar. Aunque puedes escribir código Go que parezca Java o Python, no estarás contento con el resultado y te preguntarás por qué tanto alboroto. Ahí es donde entra este libro. Recorre las características de Go, explicando cómo utilizarlas mejor para escribir código idiomático que pueda crecer.
Cuando se trata de construir cosas que perduren, ser aburrido es genial. Nadie quiere ser la primera persona que conduce su coche sobre un puente construido con técnicas no probadas que el ingeniero pensó que eran geniales. El mundo moderno depende del software tanto como de los puentes, quizá más. Sin embargo, muchos lenguajes de programación añaden características sin pensar en su impacto en la capacidad de mantenimiento del código base. Go está pensado para construir programas que perduren, programas que sean modificados por docenas de desarrolladores a lo largo de docenas de años.
Go es aburrido y eso es fantástico. Espero que este libro te enseñe a construir proyectos emocionantes con código aburrido.
## Licencia
> La persona que asoció una obra con este resumen ha **dedicado** la obra al dominio público, mediante la renuncia a todos sus derechos a la obra bajo las leyes de derechos autorales en todo el mundo, incluyendo todos los derechos conexos y afines, en la medida permitida por la ley.
<div align="center">
<a href="https://notbyai.fyi/">
<img src="img/cc-zero.png" alt="Licencia CC0 1.0 Universal (CC0 1.0) Dedicación de Dominio Público" title="Esta obra ha sido liberada bajo la licencia CC0 1.0 Universal \(CC0 1.0\) Dedicación de Dominio Público">
</a>
</div>
## AI-free Content
> La Inteligencia Artificial (IA) se entrena utilizando contenidos creados por humanos. Si las personas dejan de producir nuevos contenidos y dependen únicamente de la IA, los contenidos en línea de todo el mundo podrían correr el riesgo de volverse repetitivos y sufrir estancamiento por falta de incentivos para la innovación.
<div align="center">
<a href="https://notbyai.fyi/">
<img src="img/Written-By-Human-Not-By-AI-Badge-white@2x.png" alt="Escrito por humanos, no por una Inteligencia Artificial (IA)" title="Escrito por humanos, no por una Inteligencia Artificial (IA)">
</a>
</div>
## Referencias
[Véase: https://web.archive.org/web/20230624193430/https://wiki.froth.zone/wiki/Referencia_bibliogr%C3%A1fica?lang=es#Cita_de_capítulos_o_fragmentos_de_libros]: #
- Bates, Mark. *Go Fundamentals*. Primera edición. [s. l.]: Pearson Education, Inc., 2023.
- Leon, John Daniel. «About Go», «The Go toolchain». En: *Security with Go: Explore the power of Golang to secure host, web, and cloud services*. Primera edición. [s. l.]: Packt Publishing Ltd, 2018.
- Bodner, Jon. «Preface». En: *Learning Go: An Idiomatic Approach to Real-World Go Programming*. Primera edición. [s. l.]: OReilly Media, Inc., 2021.
[golang]: https://go.dev/ "Sitio oficial del lenguaje de programación Go"
[golang-licencia]: https://go.dev/LICENSE "The Go LICENSE"
[licencia-bsd]: https://web.archive.org/web/20230625195018/https://es.wikipedia.org/wiki/Licencia_BSD "Acerca de la licencia BSD"
[golang-keywords]: https://web.archive.org/web/20230625195657/https://go.dev/ref/spec#Keywords "The Go Programming Language Specification — Keywords"
[golang-1.8-genericos]: https://web.archive.org/web/20230625223000/https://go.dev/blog/intro-generics "The Go Blog — An Introduction To Generics"
[notbyai]: https://notbyai.fyi/
[CC0-1.0]: https://creativecommons.org/publicdomain/zero/1.0/deed.es

42
src/prefacio.md Normal file
View File

@ -0,0 +1,42 @@
# Prefacio
Mi primera elección para el título del libro fue Boring Go porque, bien escrito, Go es aburrido.
Go tiene un pequeño conjunto de características que no está a la altura de la mayoría de los lenguajes de programación modernos. Los programas Go bien escritos tienden a ser sencillos y a veces un poco repetitivos. No hay herencia, no hay genéricos (todavía), no hay programación orientada a aspectos, no hay sobrecarga de funciones, y ciertamente no hay sobrecarga de operadores. No hay concordancia de patrones, ni parámetros con nombre, ni excepciones. Para horror de muchos, hay *punteros*. El modelo de concurrencia de Go es diferente al de otros lenguajes, pero está basado en ideas de los años 70, al igual que el algoritmo utilizado para su recolector de basura. En resumen, Go parece un retroceso. Y de eso se trata.
Aburrido no significa trivial. Usar Go correctamente requiere una comprensión de cómo sus características están destinadas a encajar. Aunque puedes escribir código Go que parezca Java o Python, no estarás contento con el resultado y te preguntarás por qué tanto alboroto. Ahí es donde entra este libro. Recorre las características de Go, explicando cómo utilizarlas mejor para escribir código idiomático que pueda crecer.
Cuando se trata de construir cosas que perduren, ser aburrido es genial. Nadie quiere ser la primera persona que conduce su coche sobre un puente construido con técnicas no probadas que el ingeniero pensó que eran geniales. El mundo moderno depende del software tanto como de los puentes, quizá más. Sin embargo, muchos lenguajes de programación añaden características sin pensar en su impacto en la capacidad de mantenimiento del código base. Go está pensado para construir programas que perduren, programas que sean modificados por docenas de desarrolladores a lo largo de docenas de años.
Go es aburrido y eso es fantástico. Espero que este libro te enseñe a construir proyectos emocionantes con código aburrido.
## Licencia
> La persona que asoció una obra con este resumen ha **dedicado** la obra al dominio público, mediante la renuncia a todos sus derechos a la obra bajo las leyes de derechos autorales en todo el mundo, incluyendo todos los derechos conexos y afines, en la medida permitida por la ley.
<div align="center">
<a href="https://notbyai.fyi/">
<img src="img/cc-zero.png" alt="Licencia CC0 1.0 Universal (CC0 1.0) Dedicación de Dominio Público" title="Esta obra ha sido liberada bajo la licencia CC0 1.0 Universal \(CC0 1.0\) Dedicación de Dominio Público">
</a>
</div>
## AI-free Content
> La Inteligencia Artificial (IA) se entrena utilizando contenidos creados por humanos. Si las personas dejan de producir nuevos contenidos y dependen únicamente de la IA, los contenidos en línea de todo el mundo podrían correr el riesgo de volverse repetitivos y sufrir estancamiento por falta de incentivos para la innovación.
<div align="center">
<a href="https://notbyai.fyi/">
<img src="img/Written-By-Human-Not-By-AI-Badge-white@2x.png" alt="Escrito por humanos, no por una Inteligencia Artificial (IA)" title="Escrito por humanos, no por una Inteligencia Artificial (IA)">
</a>
</div>
## Referencias
[Véase: https://web.archive.org/web/20230624193430/https://wiki.froth.zone/wiki/Referencia_bibliogr%C3%A1fica?lang=es#Cita_de_capítulos_o_fragmentos_de_libros]: #
- Bates, Mark. *Go Fundamentals*. Primera edición. [s. l.]: Pearson Education, Inc., 2023.
- Leon, John Daniel. «About Go», «The Go toolchain». En: *Security with Go: Explore the power of Golang to secure host, web, and cloud services*. Primera edición. [s. l.]: Packt Publishing Ltd, 2018.
- Bodner, Jon. «Preface». En: *Learning Go: An Idiomatic Approach to Real-World Go Programming*. Primera edición. [s. l.]: OReilly Media, Inc., 2021.
[notbyai]: https://notbyai.fyi/
[CC0-1.0]: https://creativecommons.org/publicdomain/zero/1.0/deed.es