viernes, 6 de diciembre de 2013

Como comenzar con Beego: web framework para Go!



Hola a todos, en este post les quería presentar este interesante web framework para el lenguaje Go! De los que probé hasta ahora para ese lenguaje, creo que es uno de los más sencillo de utilizar y que mejor armado se encuentra.


Este framework es sencillo, ligero y totalmente libre (más abajo se encuentra el enlace hacia el código fuente) soporta RestFul, diseño MVC, sesiones, etc.  Lo que me gusta de este es, que esta diseñado para trabajar con Go, al estilo del lenguaje y no como varios otros frameworks, que son imitaciones de otros lenguajes. Lo que termina haciendo es que se mezclen estilos quedando un código bastante rebuscado y horrible :D (hay varias imitaciones de frameworks web de Ruby y Python dando vueltas por ahí)

Algo bueno para mi gusto sobre su arquitectura, es el diseño modular, lo que nos permite elegir que queremos o no, utilizar, en la siguiente imagen se ven los 8 mayores módulos que posee.

 Arquitectura del framework


Posible estructura que podríamos utilizar para nuestro proyecto: (no es obligación hacerlo de esta manera, solo es una opción)
 
├── conf
│   └── app.conf   
├── controllers
│   ├── admin
│   └── default.go
├── main.go
├── models
│   └── models.go
├── static
│   ├── css
│   ├── ico
│   ├── img
│   └── js
└── views
    ├── admin
    └── index.tpl

Otra ventaja es que para comenzar ya tenes la opción de que te arme un proyecto básico, de esta manera lo vas a tener andando en muy poco tiempo, y podrás ver como funciona ;)

Para esto solo necesitamos tener instalado una versión de Go 1.1 como mínimo (cualquier cosa acá explico como hacerlo Comenzando con el lenguaje Go)

Entonces para obtener Beego simplemente debemos utilizar un comando:

go get github.com/astaxie/beego
 
Y para que el manejo del proyecto sea más sencillo, instalamos la herramienta bee:

go get github.com/beego/bee

Para crear nuestra primer aplicación solo son unos simples pasos: (recuerden que siempre es recomendable cuando trabajen con Go tener configurado correctamente su GOPATH ;) )

$ cd $GOPATH/src
$ bee new hello
$ cd hello
$ bee run
 
Lo que hacen estos comandos es, movernos a la carpta src de nuestro GOPATH, crear con 
bee un nuevo proyecto llamado hello, movernos dentro del mismo, y correr el servidor para
pruebas que re-compila automáticamente al modificar un archivo y corre nuestra app en
 http://localhost:8080/.
   
Si nos dirigimos en nuestro navegador después de seguir esos pasos a esa dirección, vamos a poder ver el ejemplo que trae por defecto Beego ;)


Actualización 07/12/2013: (GAE: Google App Engine)





Repositorio de Beego modificado para GAE:
https://github.com/astaxie/beegae

Ejemplo:
http://beegogae.appspot.com
Código fuente:
https://github.com/astaxie/beegogae

Si quieren hacer funcionar el ejemplo de manera local, simplemente se descargan el ejemplo:
git clone https://github.com/astaxie/beegogae
Obtienen la versión modificada BeeGAE:
go get https://github.com/astaxie/beegae

Y ahora es cuestión de hacerlo funcionar con el servidor que GAE nos ofrece en el SDK: dev_appserver.py beegogae
Ya con eso vamos a poder ver el ejemplo de Beego sobre GAE de manera local en el puerto por defecto 8080, para eso nos dirigimos al navegador a la siguiente dirección:
http://localhost:8080

Sitio Oficial:

Código fuente: Beego

Post sobre el tema:

Espero que les haya gustado el post, en este caso solo vimos la herramienta, más adelante vamos a hacer cosas más complejas. Otra cosa interesante y que creo que va a ayudar mucho a atraer más gente a utilizarla, es que ya tienen soporte total para Google App Engine ;) Nos vemos en la próxima.


Saludos a todos, Gabriel