SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Go 101: Primeros Pasos   @oscar_lopez
Presentación: Go
•    Programación imperativa, estructurada y libre
•    También: programación funcional básica
•    Compilado, estática y fuertemente tipado
•    Seguro: tipos y memoria
•    Programación del sistema -> propósito general
•    Desarrollado por Google, apareció en 2009, diseñado por Robert
     Griesemer, Rob Pike y Ken Thompson
•    Influencias: C, Limbo, Modula, Newsqueak, Oberon, Pascal,
     Python
•    Recolector de basura eficiente, libre de latencia
•    Primitivas de concurrencia modernas
•    Compilación muy rápida, interacción con C
•    Soportado en Google App Engine
                        OLAP-2012 All Rights Reserved             2
Estructura Básica

•    Hola, Mundo!
•    Paquetes
•    Imports
•    Tipos de datos
•    Funciones I
•    Constantes
•    Variables

                 OLAP-2012 All Rights Reserved   3
Instrucciones de Control

•    If
•    Switch
•    For
•    Range




               OLAP-2012 All Rights Reserved   4
Estructuras de Datos

•    Structs
•    Apuntadores
•    Arreglos
•    Slices
•    Mapas
•    Listas doblemente encadenadas, heap
•    Funciones II

                 OLAP-2012 All Rights Reserved   5
Estructura Avanzada

•  Métodos
•  Interfaces
•  Manejo de errores
  defer(), panic(), recover()




               OLAP-2012 All Rights Reserved   6
Concurrencia

•    Goroutines
•    Channels
•    Close, Range
•    Select




                OLAP-2012 All Rights Reserved   7
Otros Paquetes y Funciones

•    Paquetes
•    Servidor web
•    Imágenes
•    Funciones predefinidas:
     close(), len(), cap(), make(),
     new(), append(), copy(), delete(),
     complex(), real(), imag(),
     panic(), recover()

                 OLAP-2012 All Rights Reserved   8
Bibliografía
•  Documentación http://golang.org/doc/
•  Instalación y ejecución de programas en Go
   http://golang.org/cmd/go/
•  App Engine
   https://developers.google.com/appengine/
   docs/go/gettingstarted/
•  Mejores prácticas
   http://golang.org/doc/effective_go.html
•  Especificación del lenguaje
   http://golang.org/ref/spec
                OLAP-2012 All Rights Reserved   9
Bibliografía
•  Tutorial programación funcional
   http://golang.org/doc/codewalk/functions/
•  Tutorial aplicaciones web
   http://golang.org/doc/articles/wiki/
•  Tutorial concurrencia
   http://golang.org/doc/codewalk/sharemem/
•  Manejo de errores
   http://golang.org/doc/articles/
   defer_panic_recover.html
•  Uso de slices
   http://golang.org/doc/articles/
   slices_usage_and_internals.html
                  OLAP-2012 All Rights Reserved   10
Reto
La posada “La Vecindad del Chavo” lleva más de diez años brindando servicio de alojamiento
a un conjunto de personas. Con el fin de organizar sus finanzas, quiere implementar un
Sistema de Información que le permita administrar los dineros aportados por sus inquilinos por
concepto de Arriendo.

Para el cobro del arriendo se debe tener en cuenta.

El pago del arriendo es de $450.000 mensuales, sin embargo tendrá un incremento del 10% si
no es pagado en los 5 primeros días del mes.

El sistema deberá entonces:

1. Permitir el ingreso de los datos básicos de los arrendatarios en cada lugar:   Nombres,
documento, lugar de residencia.
2. Permitir el ingreso de los pagos mensuales de cada inquilino

Enunciado:
https://docs.google.com/document/d/1c6EEDyryYFa4Uydv-T00VMhXYobTmiQplttxuhPtMtw/
edit?pli=1
                                  OLAP-2012 All Rights Reserved                              11

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (12)

Trabajo Ejemplos Textos Apa
Trabajo Ejemplos Textos  ApaTrabajo Ejemplos Textos  Apa
Trabajo Ejemplos Textos Apa
 
Presentacion Acupuntura
Presentacion AcupunturaPresentacion Acupuntura
Presentacion Acupuntura
 
Acupuntura
AcupunturaAcupuntura
Acupuntura
 
La acupuntura
La acupunturaLa acupuntura
La acupuntura
 
Acupuntura
AcupunturaAcupuntura
Acupuntura
 
Acupuntura
AcupunturaAcupuntura
Acupuntura
 
Atlas de acupuntura
Atlas de acupunturaAtlas de acupuntura
Atlas de acupuntura
 
Transporte aereo
Transporte aereoTransporte aereo
Transporte aereo
 
Blogs Educativos Final
Blogs Educativos FinalBlogs Educativos Final
Blogs Educativos Final
 
Norma APA con ejemplos
Norma APA con ejemplosNorma APA con ejemplos
Norma APA con ejemplos
 
Ejemplo de ensayo con normas apa
Ejemplo de ensayo con normas apaEjemplo de ensayo con normas apa
Ejemplo de ensayo con normas apa
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Ähnlich wie Go 101: Primeros Pasos

Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12cEdelweiss Kammermann
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
 
Drupal mas que un cms
Drupal mas que un cmsDrupal mas que un cms
Drupal mas que un cmseccutpl
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaDomingo Suarez Torres
 
EasyData: OpenData and easy access
EasyData: OpenData and easy accessEasyData: OpenData and easy access
EasyData: OpenData and easy accessJuan Vazquez Murga
 
Polybase
PolybasePolybase
PolybaseSolidQ
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8Julian Valero
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadIván Campaña Naranjo
 
Software OpenERP & Metodología ERP
Software OpenERP & Metodología ERPSoftware OpenERP & Metodología ERP
Software OpenERP & Metodología ERPGustavo González
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Cómo crear un RESTful API con Go
Cómo crear un RESTful API con GoCómo crear un RESTful API con Go
Cómo crear un RESTful API con GoSoftware Guru
 
Capacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel BermudezCapacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel BermudezDaniel Bermudez
 
Herramientas para el diseño e implementación de Cubos .pptx
Herramientas para el diseño e implementación de Cubos .pptxHerramientas para el diseño e implementación de Cubos .pptx
Herramientas para el diseño e implementación de Cubos .pptxAlejandroGuerrero892330
 

Ähnlich wie Go 101: Primeros Pasos (20)

Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
Drupal mas que un cms
Drupal mas que un cmsDrupal mas que un cms
Drupal mas que un cms
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
Drupal
DrupalDrupal
Drupal
 
EasyData: OpenData and easy access
EasyData: OpenData and easy accessEasyData: OpenData and easy access
EasyData: OpenData and easy access
 
Paralela9
Paralela9Paralela9
Paralela9
 
Polybase
PolybasePolybase
Polybase
 
Code Igniter
Code IgniterCode Igniter
Code Igniter
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Software OpenERP & Metodología ERP
Software OpenERP & Metodología ERPSoftware OpenERP & Metodología ERP
Software OpenERP & Metodología ERP
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
 
Cómo crear un RESTful API con Go
Cómo crear un RESTful API con GoCómo crear un RESTful API con Go
Cómo crear un RESTful API con Go
 
Capacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel BermudezCapacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel Bermudez
 
Herramientas para el diseño e implementación de Cubos .pptx
Herramientas para el diseño e implementación de Cubos .pptxHerramientas para el diseño e implementación de Cubos .pptx
Herramientas para el diseño e implementación de Cubos .pptx
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 

Kürzlich hochgeladen

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Kürzlich hochgeladen (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Go 101: Primeros Pasos

  • 1. Go 101: Primeros Pasos @oscar_lopez
  • 2. Presentación: Go •  Programación imperativa, estructurada y libre •  También: programación funcional básica •  Compilado, estática y fuertemente tipado •  Seguro: tipos y memoria •  Programación del sistema -> propósito general •  Desarrollado por Google, apareció en 2009, diseñado por Robert Griesemer, Rob Pike y Ken Thompson •  Influencias: C, Limbo, Modula, Newsqueak, Oberon, Pascal, Python •  Recolector de basura eficiente, libre de latencia •  Primitivas de concurrencia modernas •  Compilación muy rápida, interacción con C •  Soportado en Google App Engine OLAP-2012 All Rights Reserved 2
  • 3. Estructura Básica •  Hola, Mundo! •  Paquetes •  Imports •  Tipos de datos •  Funciones I •  Constantes •  Variables OLAP-2012 All Rights Reserved 3
  • 4. Instrucciones de Control •  If •  Switch •  For •  Range OLAP-2012 All Rights Reserved 4
  • 5. Estructuras de Datos •  Structs •  Apuntadores •  Arreglos •  Slices •  Mapas •  Listas doblemente encadenadas, heap •  Funciones II OLAP-2012 All Rights Reserved 5
  • 6. Estructura Avanzada •  Métodos •  Interfaces •  Manejo de errores defer(), panic(), recover() OLAP-2012 All Rights Reserved 6
  • 7. Concurrencia •  Goroutines •  Channels •  Close, Range •  Select OLAP-2012 All Rights Reserved 7
  • 8. Otros Paquetes y Funciones •  Paquetes •  Servidor web •  Imágenes •  Funciones predefinidas: close(), len(), cap(), make(), new(), append(), copy(), delete(), complex(), real(), imag(), panic(), recover() OLAP-2012 All Rights Reserved 8
  • 9. Bibliografía •  Documentación http://golang.org/doc/ •  Instalación y ejecución de programas en Go http://golang.org/cmd/go/ •  App Engine https://developers.google.com/appengine/ docs/go/gettingstarted/ •  Mejores prácticas http://golang.org/doc/effective_go.html •  Especificación del lenguaje http://golang.org/ref/spec OLAP-2012 All Rights Reserved 9
  • 10. Bibliografía •  Tutorial programación funcional http://golang.org/doc/codewalk/functions/ •  Tutorial aplicaciones web http://golang.org/doc/articles/wiki/ •  Tutorial concurrencia http://golang.org/doc/codewalk/sharemem/ •  Manejo de errores http://golang.org/doc/articles/ defer_panic_recover.html •  Uso de slices http://golang.org/doc/articles/ slices_usage_and_internals.html OLAP-2012 All Rights Reserved 10
  • 11. Reto La posada “La Vecindad del Chavo” lleva más de diez años brindando servicio de alojamiento a un conjunto de personas. Con el fin de organizar sus finanzas, quiere implementar un Sistema de Información que le permita administrar los dineros aportados por sus inquilinos por concepto de Arriendo. Para el cobro del arriendo se debe tener en cuenta. El pago del arriendo es de $450.000 mensuales, sin embargo tendrá un incremento del 10% si no es pagado en los 5 primeros días del mes. El sistema deberá entonces: 1. Permitir el ingreso de los datos básicos de los arrendatarios en cada lugar: Nombres, documento, lugar de residencia. 2. Permitir el ingreso de los pagos mensuales de cada inquilino Enunciado: https://docs.google.com/document/d/1c6EEDyryYFa4Uydv-T00VMhXYobTmiQplttxuhPtMtw/ edit?pli=1 OLAP-2012 All Rights Reserved 11