PDF de programación - The litte go book

Imágen de pdf The litte go book

The litte go bookgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 26 de Enero del 2018)
212 visualizaciones desde el 26 de Enero del 2018
239,0 KB
54 paginas
Creado hace 3a (10/03/2016)
Sobre este Libro

Licencia

El Pequeño Libro de Go (The Little Go Book) posee una licencia Attribution-NonCommercial-ShareAlike 4.0 Internacional.

No deberías haber pagado por este libro.

Eres libre de copiar, distribuir, modificar o mostrar el libro. Sin embargo, te pido que siempre me atribuyas la autoría

del libro a mí, Karl Seguin, y la traducción a Raúl Expósito, y que no lo utilices con fines comerciales.

Puedes leer el texto completo de la licencia en:

http://creativecommons.org/licenses/by-nc-sa/4.0/

Última Versión

La última versión del código fuente de este libro puede encontrarse en: http://github.com/raulexposito/the-little-go-book

1

Introducción

Siempre he vivido una relación de amor-odio cuando se trata de aprender nuevos lenguajes. Por una parte, los lenguajes

son tan fundamentales en lo que hacemos que incluso pequeños matices pueden provocar un impacto considerable.

Ese momento ajá que se produce cuando algo encaja puede tener un efecto perdurable en nuestra forma de programar

y puede redefinir nuestras expectativas en otros lenguajes. Por contra, el aprender nuevos lenguajes es algo que no

termina nunca. Aprender nuevas palabras reservadas, tipos de datos, estilos de programación y descubrir librerías,

comunidades y paradigmas supone un montón de trabajo a priori difícil de justificar. Comparados con cualquier otra

cosa que tengamos que aprender, los nuevos lenguajes a menudo parecen ser una mala inversión de nuestro tiempo.

Dicho esto, tenemos que seguir adelante. Tenemos que dar los pasos porque, de nuevo, los lenguajes son el elemento

principal de lo que hacemos. Aunque el aprendizaje sea continuo e infinito, éste ayuda a ampliar nuestra visión e

impacta en nuestra productividad, la legibilidad de nuestro código, el rendimiento, la testeabilidad, la forma en la que

gestionamos dependencias, la gestión de errores, la documentación, el profiling, nuestra presencia en comunidades,

nuestro conocimiento de librerías estándar, y mucho más. ¿Hay alguna manera positiva de decir la sarna con gusto no

pica?

Todo esto nos deja con una pregunta importante: ¿Por qué Go? Para mí hay dos motivos convincentes: el primero

es que es un lenguaje relativamente sencillo con una librería estandar relativamente simple. Go tiene la naturaleza de

simplificar la complejidad que hemos visto incluida en los lenguajes de programación en el último par de décadas medi-

ante el uso de varios mecanismos. El otro motivo es que para muchos desarrolladores puede servir como complemento

para su arsenal.

Go fue construido para ser utilizado como un lenguaje orientado a software de sistemas (es decir, sistemas operativos,

drivers de dispositivos), lo cual animó a desarrolladores de C y C++. Según el equipo de Go, y según la percepción

que yo también tengo, los desarrolladores de aplicaciones, y no los desarrolladores de software de sistemas, se han

convertido en los principales usuarios de Go. ¿Por qué? No puedo hablar con autoridad acerca de los desarrolladores de

software de sistemas, pero para todos aquellos que construimos aplicaciones web, servicios, aplicaciones de escritorio

y software por el estilo, nos ha cubierto la necesidad de disponer de algo que nos permita desarrollar aplicaciones de

bajo y de alto nivel.

Quizá sea la mensajería, las cachés, los análisis de datos computacionalmente muy costosos, los interfaces por línea

de comandos, los logs o la monitorización. No sé cómo etiquetarlo, pero a lo largo de mi vida laboral el software de

sistemas ha ido creciendo en complejidad. Es posible construir estos sistemas con Ruby o Python o alguna otra cosa

(como mucha gente hace), pero ese tipo de software puede beneficiarse de un sistema con un tipado rígido que brinde

mejor rendimiento. Del mismo modo, puedes usar Go para construir aplicaciones web (como mucha gente hace),

aunque yo todavía prefiero, con mucho margen, la expresividad de Node o Ruby para este tipo de desarrollos.

Hay otras áreas en las que Go es excelente. Por ejemplo, no existen dependencias a la hora de ejecutar programas

compilados con Go. No hay que preocuparse sobre si los usuarios tienen Ruby o la JVM instalada o, si la tienen, qué

versión tendrán. Por este motivo Go se está convirtiendo en un lenguaje popular con el que desarrollar aplicaciones de

línea de comandos u otro tipo de programas de utilidades que necesiten ser distribuibles (por ejemplo, un recolector

de log).

Hablando claramente, aprender Go es hacer un uso eficiente de tu tiempo. No es necesario invertir muchas horas para

aprender o incluso dominar Go, y obtendrás algo práctico de tu esfuerzo.

2

Una Nota del Autor

He dudado sobre si escribir este libro o no por un par de motivos. El primero es que la propia documentación de Go,

en particular Effective Go, es buena.

El otro es mi malestar por escribir un libro sobre un lenguaje de programación. Cuando escribí El Pequeño Libro de

MongoDB podia dar por supuesto que la mayoría de los lectores entendían los conceptos básicos de bases de datos

relaciones así como su modelado. Con El Pequeño Libro de Redis podía asumir que el lector estaba familiarizado con

los conceptos de clave-valor y empezar por ahí.

Cuando pienso en los párrafos y capítulos que vienen adelante sé que no puedo hacer esas presunciones. ¿Cuánto

tiempo será necesario utilizar para hablar sobre interfaces sabiendo que para algunos el concepto será nuevo, mientras

que otros no necesitan saber más que que Go tiene interfaces? Me tomaré la libertad de pensar que me vas a hacer

saber si algunas partes son demasido superficiales mientras que otras entran demasiado en detalle. Considéralo el

precio a pagar por tener este libro.

3

Comenzando

Si buscas jugar un poco con Go deberías probar el Go Playground, el cual te permite ejecutar código en el navegador

sin tener que instalar nada. Esta es, además, la forma más común de compartir código escrito en Go al pedir ayuda

en los foros de Go y en lugares como StackOverflow.

La instalación de Go es bastante directa. Lo puedes instalar desde el código fuente, pero te aconsejo que utilices los

binarios precompilados. Cuando vayas a la página de descargas verás instaladores para varias plataformas. Vamos a

pasar de ellos y a aprender cómo instalar Go por nosotros mismos. Como verás no es difícil.

Excepto para los ejemplos sencillos, Go ha sido diseñado para funcionar siempre que tu código esté dentro de un
workspace. El workspace es un directorio formado por los subdirectorios bin, pkg y src. Puede que estés tentado a
forzar a Go a usar tu propio estilo - no lo hagas.

Por lo general coloco mis proyectos dentro de ~/code. Por ejemplo, ~/code/blog contiene mi blog. Para Go, mi
workspace es ~/code/go y mi blog vitaminado con Go debe estar en ~/code/go/src/blog. Ya que hay mucho que
escribir utilizo un enlace simbólico para poder acceder directamente desde ~/code/blog:

ln -s ~/code/go/src/blog ~/code/blog

Para resumir, crea un directorio go con un subdirectorio src donde vayas a dejar tus proyectos,

OSX / Linux

Descarga el fichero tar.gz de tu plataforma. Para OSX, el que más te interesa es go#.#.#.darwin-amd64-osx10
.8.tar.gz, donde #.#.# es la última versión de Go.

Descomprime el fichero en /usr/local con el comando tar -C /usr/local -xzf go#.#.#.darwin-amd64-osx10
.8.tar.gz.

Configura dos variables de entorno:

1. GOPATH debe apuntar a tu workspace, para mí es $HOME/code/go.
2. Necesitamos añadir el binario de Go en nuestro PATH.

Para hacer esto desde la terminal lanzamos los comandos:

echo 'export GOPATH=$HOME/code/go' >> $HOME/.profile
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile

Necesitarás activar ambas variables. Para ello puedes cerrar y reabrir tu terminal o puedes ejecutar el comando
source $HOME/.profile.

Escribe go version y tendrás una salida del estilo a go version go#.#.# darwin/amd64.

4

Windows

Descarga la última versión del fichero en formato zip. Si tu máquina es x64 necesitarás bajar go#.#.#.windows-
amd64.zip, donde #.#.# es la última versión de Go.
Descomprímelo en el directorio que prefieras. c:\Go es una buena elección.

Configura dos variables de entorno:

1. GOPATH debe apuntar a tu workspace. Deberá ser algo del estilo c:\users\goku\work\go.
2. Añade c:\Go\bin en tu variable de entorno PATH.

Las variables de entorno se pueden configurar a través del botón Variables de entorno de la pestaña Avanzado
de la opción Sistema del panel de control. Esto puede variar según la versión de Windows.
Abre un terminal y escribe go version. Si todo ha ido bien tendrás una salida del estilo go version go#.#.#
windows/amd64.

5

Capítulo 1 - Lo Básico

Go es un lenguaje compilado y estáticamente tipado, con una sintaxis similar a la de C y recolección de basura. ¿Qué

significa todo esto?

Compilación

La compilación es el proceso de traducir el código fuente que escribas en un lenguaje de más bajo nivel – puede ser

ensamblador (como en el caso de Go) u otro tipo de lenguaje intermedio (como en el caso de Java o C#)

Trabajar con lenguajes compilados puede ser poco gratificante ya que el proceso de compilación puede ser lento.

Es difícil iterar rápidamente cuando tienes que esperar minutos u horas a que el código compile. La velocidad de

compilación es una de las principales metas en el diseño de Go, lo cual es una buena noticia tanto para los que trabajan

con proyectos grandes como para aquellos que estamos acostumbrados a tener el feedback inmediato que ofrecen los

lenguajes interpretados.

Los lenguajes compilados suelen ser más rápidos y los ejecutables pueden funcionar sin depedencias adicionales (al

menos esto es cierto para lenguajes como C, C++ y Go, los cuales compilan directamente en ensamblador)

Estáticamente Tipado

Estar tipado estáticamente implica que las variables deben ser de un tipo específico (int, string, bool, []byte, etc). Esto

se consigue indicando el tipo a la hora de definir la variable o, en muchos
  • Links de descarga
http://lwp-l.com/pdf8477

Comentarios de: The litte go book (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad