Skip to content

Commit a0b771f

Browse files
committed
remove typo fix
2 parents 542dcd6 + 31210b3 commit a0b771f

File tree

262 files changed

+2531
-74
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

262 files changed

+2531
-74
lines changed

LANGS.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
* [English](en/)
2+
* [French](fr/)
23
* [中文](zh/)
3-
* [日本語](ja/)
4+
* [日本語](ja/)

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Multiple Language Versions
22
* [English](en/)
3+
* [French](fr/)
4+
* [Spanish](es/)
35
* [中文](zh/)
46
* [日本語](ja/)
57

book.json

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"output": null,
3+
"generator": "site",
4+
"title": "Build Web Application with golang",
5+
"description": "Build Web Application with golang",
6+
"extension": null,
7+
"plugins": [],
8+
"pluginsConfig": {
9+
"fontSettings": {
10+
"theme": "sepia", "night" or "white",
11+
"family": "serif" or "sans",
12+
"size": 1 to 4
13+
}
14+
},
15+
"pdf": {
16+
"toc": true,
17+
"pageNumbers": true,
18+
"fontSize": 18,
19+
"paperSize": "a4",
20+
"margin": {
21+
"right": 36,
22+
"left": 36,
23+
"top": 36,
24+
"bottom": 36
25+
}
26+
}
27+
"links": {
28+
"home": "https://github.com/astaxie/build-web-application-with-golang",
29+
"about": "https://github.com/astaxie/build-web-application-with-golang",
30+
"issues": "https://github.com/astaxie/build-web-application-with-golang/issues",
31+
"edit": null,
32+
"sharing": {
33+
"google": null,
34+
"facebook": null,
35+
"twitter": null,
36+
"weibo": null
37+
}
38+
}
39+
}

es/01.0.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# 1 Configurando el entorno de Go
2+
3+
Bienvenido al mundo de Go, empecemos a explorar!
4+
5+
Go es un lenguaje de programación para sistemas concurrentes con garbage-collector y compilado-rápido. Tiene las siguientes ventajas:
6+
7+
- Compila un gran proyecto en pocos segundos
8+
- Proporciona un modelo de desarrollo de software con el que es fácil razonar, evitando la mayoría de problemas asociados con archivos de cabecera al estilo C.
9+
- Es un lenguaje estático que no tiene niveles en su sistema de tipos, de esa forma sus usuarios no necesitan gastar tiempo lidiando con las relaciones entre los tipos. Es más parecido a un lenguaje orientado a objetos ligero.
10+
- Realiza garbage collection. Provee soporte básico para comunicación y concurrencia.
11+
- Diseñado para computadoras multi core.
12+
13+
Go es un lenguaje compilado. Combina la eficiencia en desarrollo de lenguajes interpretados o dinámicos con la seguridad de lenguajes estáticos. Será el lenguaje de elección para computadoras modernas con múltiples core y red. Para este propósito, existen algunos problemas que necesitan ser resueltos al nivel del lenguaje elegido, cómo un sistema de tipo ligero y abundantemente expresivo, un modelo de concurrencia nativo, y un garbage collector estrictamente regulado. Por algún tiempo, no habían emergido paquetes o herramientas que apuntaran a resolver todos estos problemas de una forma pragmática; de esa forma surgió la motivación para el lenguaje Go.
14+
15+
En este capítulo, te mostraremos cómo instalar y configurar tu propio ambiente de desarrollo en Go.
16+
17+
## Links
18+
19+
- [Directorio](preface.md)
20+
- Sección siguiente: [Instalación](01.1.md)

es/01.1.md

+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# 1.1 Instalación
2+
3+
## Tres formas de instalar Go
4+
5+
Existen muchas formas de configurar el entorno de desarrollo de Go en tu computadora, y puedes escoger la que más te guste. Las tres formas más comunes son las siguientes:
6+
7+
- Paquetes oficiales de instalación
8+
- El equipo de Go provee packetes de instalación convenientes para Windows, Linux, Mac y otros sistemas operativos. Este es probablemente el método más fácil para iniciar.
9+
- Instalarlo desde el código fuente
10+
- Es popular con los desarrolladores que están familiarizados con sistemas tipo Unix.
11+
- Usando herramientas de terceros.
12+
- Existen muchas herramientas de terceros y manejadores de paquetes para instalar Go, como apt-get en Ubuntu y Homebrew en la Mac.
13+
14+
En el caso que desees instalar más de una versión de Go en la misma computadora, deberías revisar la herramienta llamada [GVM](https://github.com/moovweb/gvm). Es la mejor herramienta que he visto hasta el momento para cumplir esta tarea, de otra forma tendrás que lidiar con eso tu mismo.
15+
16+
## Instalando desde el código fuente
17+
18+
Debido a que algunas partes de Go están escritas en Plan 9 C y ensamblador AT&T, debes instalar un compilador de C antes de continuar.
19+
20+
Si tienes una Mac y ya tienes instalado Xcode, entonces ya cuentas con el compilador.
21+
22+
En sistemas tipo Unix, debes instalar gcc o un compilador similar. Por ejemplo, usando el manejador de paquetes apt-get (incluído con Ubuntu) puedes instalar los compiladores requeridos de la siguiente forma:
23+
24+
`sudo apt-get install gcc libc6-dev`
25+
26+
En Windows, debes instalar MinGW antes para poder instalar gcc. No olvides configurar tus variables de entorno después de que la instalación se ha completado. (Si estás utilizando una versión de Windows de 64 bits, entonces debes instalar la versión de 64 bits de MinGW)
27+
28+
El equipo Go usa [Mercurial](http://mercurial.selenic.com/downloads/) para manejar su código fuente, por lo que debes instalar esta herramienta para poder bajar el código fuente de Go.
29+
30+
En este punto ejecuta los siguientes comandos para clonar el código fuente de Go y compilarlo. (Clonará el código fuente en tú directorio actual. Cambia tu ruta actual antes de continuar. Esto puede tomar algún tiempo.)
31+
32+
hg clone -u release https://code.google.com/p/go
33+
cd go/src
34+
./all.bash
35+
36+
Una instalación exitosa finalizará con el mensaje "ALL TESTS PASSED."
37+
38+
En Windows puedes lograr lo mismo ejecutando `all.bat`.
39+
40+
Si estas usando Windows el paquete de instalación establecerá tus variables de entorno automáticamente. En sistemas tipo Unix necesitas establecer estas variables de la siguiente manera. (Si tu versión de Go es mayor que 1.0 no debes establecer $GOBIN ya que estará relacionada automáticamente a tu $GOROOT/bin del que hablaremos en la sección siguiente)
41+
42+
export GOROOT=$HOME/go
43+
export GOBIN=$GOROOT/bin
44+
export PATH=$PATH:$GOROOT/bin
45+
46+
Si ves la siguiente información en tu pantalla, todo está listo.
47+
48+
![](images/1.1.mac.png?raw=true)
49+
50+
Imagen 1.1 Información después de instalar desde el código fuente
51+
52+
Una vez que veas la información de uso de Go significa que has instalado exitosamente Go en tu computadora. Si dice "no such command", verifica que tu variable de entorno $PATH contiene la ruta de instalación de Go.
53+
54+
## Usando los paquetes de instalación estándar
55+
56+
Go tiene paquetes de instalación de un solo click para todo sistema operativo soportado. Estos paquetes instalarán Go en `/usr/local/go` (`c:\Go` en Windows) por defecto. Por supuesto esto puede ser modificado, pero también necesitas cambiar todas las variables de entorno manualmente a cómo mostramos anteriormente.
57+
58+
### Cómo revisar si tu sistema operativo es de 32-bits ó 64-bits?
59+
60+
Nuestro siguiente paso depende en el tipo de tu sistema operativo, así que debemos revisar esto antes de bajar los paquetes de instalación estándar.
61+
62+
Si estás usando Windows, presiona `Win+R` y luego ejecuta la herramienta de comandos. Escribe el comando `systeminfo` y te mostrará información útil. Busca la línea que dice "system type" si ves "x64-based PC" eso significa que tu sistema operativo es de 64-bits, de otra forma es de 32-bits.
63+
64+
Si eres un usuario de Mac recomiendo fuertemente que bajes el paquete de 64-bits, debido a que Go ya no soporta procesadores puros de 32-bits en Mac OSX.
65+
66+
Los usuarios de Linux pueden escribir `uname -a` en la terminal para ver la información del sistema.
67+
68+
Un sistema operativo de 64-bits mostrará lo siguiente:
69+
70+
<alguna descripción> x86_64 x86_64 x86_64 GNU/Linux
71+
// algunas versiones como Ubuntu 10.04 mostrarán de la siguiente forma
72+
x86_64 GNU/Linux
73+
74+
En cambio los sistemas operativos de 32-bits mostrarán:
75+
76+
<alguna descripción> i686 i686 i386 GNU/Linux
77+
78+
### Mac
79+
80+
Ve a la [página de descarga](http://code.google.com/p/go/downloads/list), escoge `go1.0.3.darwin-386.pkg` para sistemas de 32-bits y `go1.0.3.darwin-amd64.pkg` para sistemas de 64-bits. Ve hasta el final presionando "next",`~/go/bin` será agregado al $PATH de tu sistema al finalizar la instalación. Ahora abre la terminal y escribe `go`. Debes ver el mismo resultado que se muestra en la imagen 1.1.
81+
82+
### Linux
83+
84+
Ve a la [página de descarga](http://code.google.com/p/go/downloads/list), escoge `go1.0.3.linux-386.tar.gz` para sistemas de 32-bits y `go1.0.3.linux-amd64.tar.gz` para sistemas de 64-bits. Supongamos que quieres instalar Go en la ruta `$GO_INSTALL_DIR`. Descomprime el archivo `tar.gz` a la ruta que escojas usando el comando `tar zxvf go1.0.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`. Luego configura tu $PATH con el siguiente comando: `export PATH=$PATH:$GO_INSTALL_DIR/go/bin`. Ahora abre la terminal y escribe `go`. Debes ver el mismo resultado que se muestra en la imagen 1.1.
85+
86+
### Windows
87+
88+
Ve a la [página de descarga](http://code.google.com/p/go/downloads/list), escoge `go1.0.3.windows-386.msi` para sistemas de 32-bits y `go1.0.3.windows-amd64.msi` para sistemas de 64-bits. Ve hasta el final presionando "next", `c:/go/bin` será agregado al `path`. Ahora abre la terminal y escribe `go`. Debes ver el mismo resultado que se muestra en la imagen 1.1.
89+
90+
## Usando herramientas de terceros
91+
92+
### GVM
93+
94+
GVM es una herramienta de control de múltiples versiones de Go desarrollado por terceros, parecida a rvm para ruby. Es bien fácil de utilizar. Instala gvm escribiendo los siguientes comandos en tu terminal:
95+
96+
bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
97+
98+
Luego instalamos Go usando los siguientes comandos:
99+
100+
gvm install go1.0.3
101+
gvm use go1.0.3
102+
103+
Cuando el proceso ha finalizado estamos listos.
104+
105+
### apt-get
106+
107+
Ubuntu es la versión de escritorio más popular de Linux. Utiliza `apt-get` para manejar paquetes. Podemos instalar Go usando los siguientes comandos.
108+
109+
sudo add-apt-repository ppa:gophers/go
110+
sudo apt-get update
111+
sudo apt-get install golang-stable
112+
113+
### Homebrew
114+
115+
Homebrew es una herramienta para manejar software comúnmente usada en la Mac. Simplemente escribe lo siguiente para instalar Go.
116+
117+
brew install go
118+
119+
## Links
120+
121+
- [Directorio](preface.md)
122+
- Sección anterior: [Configurando el entorno de Go](01.0.md)
123+
- Sección siguiente: [$GOPATH y el ambiente de trabajo](01.2.md)

es/01.2.md

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
#1.2 $GOPATH y el ambiente de trabajo
2+
3+
## $GOPATH
4+
5+
Todos los comandos de Go dependen de una importante variable de entorno llamada $GOPATH. Favor notar que esta no es la variable $GOROOT que es la que muestra dónde Go está instalado. Esta variable apunta al ambiente de trabajo de Go en tu computadora (You uso esta ruta en mi computadora; si no tienes la misma estructura de directorios, por favor reemplaza por la que tengas).
6+
7+
En sistemas tipo Unix, la variable debe usar así:
8+
9+
export GOPATH=/home/apple/mygo
10+
11+
En Windows, necesitas crear una nueva variable de entorno llamada GOPATH, luego estable su valor a `c:\mygo` (Este valor depende dónde tu ambiente de trabajo esté ubicado)
12+
13+
Está bien tener más de una ruta de ambiente de trabajo en $GOPATH, pero recuerda que debes usar `:`(`;` en Windows) para separarlos. En este punto, `go get` guardará el contenido de tu primera ruta en $GOPATH.
14+
15+
En $GOPATH, debes tener los siguientes tres directorios:
16+
17+
- `src` para archivos fuentes cuyo sufijo es .go, .c, .g, .s.
18+
- `pkg` para archivos compilados cuyo sufijo es .a.
19+
- `bin` para archivos ejecutables
20+
21+
En este libro, utilizo `mygo` cómo mi única ruta en $GOPATH.
22+
23+
## Directorio de paquetes
24+
25+
Crea archivos de código fuente de paquetes de la siguiente forma `$GOPATH/src/mymath/sqrt.go` (`mymath` es el nombre del paquete) ( ***El autor utiliza `mymath` cómo su nombre de paquete, el mismo nombre para el directorio que contiene los archivos de código fuente del paquete)
26+
27+
Cada vez que creas un paquete, deberías crear un nuevo folder en el directorio `src`. Los nombres de los directorios usualmente son los mismos que el paquete que vas a utilizar. Puedes tener directorios de múltiples niveles si lo deseas. Por ejemplo, si creas el directorio `$GOPATH/src/github.com/astaxie/beedb`, entonces la ruta del paquete sería `github.com/astaxie/beedb`. El nombre del paquete será el último directorio en tu ruta, que es `beedb` en este caso.
28+
29+
Ejecuta los siguientes comandos. (Ahora el autor mostrará unos ejemplos)
30+
31+
cd $GOPATH/src
32+
mkdir mymath
33+
34+
Crea un nuevo archivo llamado `sqrt.go`, escribe el siguiente contenido en el archivo.
35+
36+
// Código fuente de $GOPATH/src/mymath/sqrt.go
37+
package mymath
38+
39+
func Sqrt(x float64) float64 {
40+
z := 0.0
41+
for i := 0; i < 1000; i++ {
42+
z -= (z*z - x) / (2 * x)
43+
}
44+
return z
45+
}
46+
47+
Ahora el directorio de mi paquete ha sido creado y su código ha sido escrito. Recomiendo que uses el mismo nombre para tus paquetes y sus directorios correspondientes y que los directorios contenga todo el código fuente del paquete.
48+
49+
## Compilar paquetes
50+
51+
Ya hemos creado nuestra paquete, pero cómo lo compilamos para propósitos prácticos? hay dos formas de hacer esto.
52+
53+
1. Cambia tu ruta de trabajo al directorio de tu paquete, luego ejecuta el comando `go install`.
54+
2. Ejecuta el comando de arriba, con la diferencia de que suministras el nombre del archivo como parámetro `go install mymath`.
55+
56+
Después de compilar podemos abrir el siguiente directorio.
57+
58+
cd $GOPATH/pkg/${GOOS}_${GOARCH}
59+
// puedes ver que el archivo fue generado
60+
mymath.a
61+
62+
Este archivo cuyo sufijo es `.a`, es el archivo binario de nuestro paquete. Cómo lo usamos?
63+
64+
Obviamente, necesitamos crear una nueva aplicación para utilizarlo.
65+
66+
Crea una nueva aplicación llamada `mathapp`.
67+
68+
cd $GOPATH/src
69+
mkdir mathapp
70+
cd mathapp
71+
vim main.go
72+
73+
código
74+
75+
//$GOPATH/src/mathapp/main.go código fuente
76+
package main
77+
78+
import (
79+
"mymath"
80+
"fmt"
81+
)
82+
83+
func main() {
84+
fmt.Printf("Hello, world. Sqrt(2) = %v\n", mymath.Sqrt(2))
85+
}
86+
87+
Para compilar esta aplicación necesitas cambiar al directorio de la aplicación que en este caso es `$GOPATH/src/mathapp`, luego ejecuta el comando `go install`. Ahora deberías ver un archivo ejecutable llamado `mathapp` que se ha generado en el directorio `$GOPATH/bin/`. Para correr este programa usa el comando `./mathapp`. Deberías de ver el siguiente contenido en tu terminal:
88+
89+
Hello world. Sqrt(2) = 1.414213562373095
90+
91+
## Instala paquete remotos
92+
93+
Go tiene una herramienta para instalar paquetes remotos, es el comando llamado `go get`. Soporta la mayoría de comunidades de código libre, incluyendo Github, Google Code, BitBucket y Launchpad.
94+
95+
go get github.com/astaxie/beedb
96+
97+
Puedes usar `go get -u …` para actualizar tus paquetes remotos e incluso instalará todas sus dependencias.
98+
99+
Esta herramienta usará diferente herramientas de control de versiones para las diferentes plataformas de código libre. Por ejemplo, `git` para Github y `hg` para Google Code. Debido a esto, debes instalar estas herramientas de control de versiones antes de usar `go get`.
100+
101+
Después de ejecutar los comandos anteriormente descritos, la estructura de directorios debería verse de la siguiente forma:
102+
103+
$GOPATH
104+
src
105+
|-github.com
106+
|-astaxie
107+
|-beedb
108+
pkg
109+
|--${GOOS}_${GOARCH}
110+
|-github.com
111+
|-astaxie
112+
|-beedb.a
113+
114+
Actualmente, `go get` clona el código fuente a la ruta $GOPATH/src, luego ejecuta `go install`.
115+
116+
Puedes usar paquetes remotos de la misma forma que usas paquetes locales.
117+
118+
import "github.com/astaxie/beedb"
119+
120+
## Estructura completa del directorio
121+
122+
Si has seguido todos los pasos anteriores, la estructura de tu directorio se debería ver de la siguiente forma.
123+
124+
bin/
125+
mathapp
126+
pkg/
127+
${GOOS}_${GOARCH}, como darwin_amd64, linux_amd64
128+
mymath.a
129+
github.com/
130+
astaxie/
131+
beedb.a
132+
src/
133+
mathapp
134+
main.go
135+
mymath/
136+
sqrt.go
137+
github.com/
138+
astaxie/
139+
beedb/
140+
beedb.go
141+
util.go
142+
143+
Ahora puedes ver la estructura de directorios claramente; `bin` contiene los archivos ejecutables, `pkg` contiene los archivos compliados y `src` los archivos de código fuente del paquete.
144+
145+
(El formato de las variables de entorno en Windows es `%GOPATH%`, sin embargo este libro sigue principalmente el estilo Unix, así que si eres un usuario Windows debes reemplazarlo apropiadamente)
146+
147+
## Links
148+
149+
- [Directorio](preface.md)
150+
- Sección anterior: [Instalación](01.1.md)
151+
- Sección siguiente: [Comandos Go](01.3.md)

0 commit comments

Comments
 (0)