Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PRIMEIROS PASSOS EM GO

PRIMEIROS PASSOS EM GO

Esta apresentação é um overview uma introdução a linguagem de programação Go, apresentando um pouco desta linguagem fantástica e poderosa.
Fizemos uma linha do tempo, contando um pouco de sua história e sua trajetória de forma humorada e descontraída e não podia deixar de mostrar um pouco da história do sucesso que nosso mascote gopher 😍 faz.

Falamos um pouco dos paradigmas e o por que do designer da linguagem Go ter optado em quebrar diversos paradigmas ao propor o que conhecemos hoje na linguagem Go, nada mais e nada menos o que conhecemos em Engenharia de Software durante décadas ao resolver problemas usando Go a conversa será da forma Go ou jeito Go de fazer as coisas ❤️ e isto é fantástico.

Apresentamos um pouco das comunidades ao redor do universo Go e como são importantes para o sucesso da linguagem.

A apresentação foi feita ao vivo no link baixo:
https://www.youtube.com/user/jeffotoni

O repo com alguns exemplo feitos para apresentação
https://github.com/jeffotoni/first.steps.go

Um post para facilitar o entendimento sobre o assunto
https://jeffotoni.medium.com/primeiros-passos-em-go-e1e28b7ff5d3

Jefferson Otoni Lima

December 18, 2020
Tweet

More Decks by Jefferson Otoni Lima

Other Decks in Technology

Transcript

  1. @jeffotoni 2009 Linux e Mac OS X x86 de 64

    bits, x86 de 32 bits e ARM de 32 bits FreeBSD, NetBSD e OpenBSD, Plan 9 x86 64 bits e 32 bits, e 32bits 2012 Solaris, Android e Plan 9 x86 de 64 bits, ARM de 32 bits e x86 de 64 bits 2014 PowerPC, Linux, IOS 64 bits, ARM de 64 bits, 32bits e 64bits 2015 2016 2017 2018 2019 MIPS, Android, LInux, Raspberry Pi, z Systems (S390x) , Linux, Plan 9 64 bits, x86 32bits, ARM 32bits MIPS, PowerPC, z System 32 bits, x86 64bits Windows 10, IoT Core, Raspberry Pi 3, AIX em PowerPC ARM 32 bits, 64bits RISC-V 64bits
  2. @jeffotoni LANGS CONCORRENTES Go/Golang 2009 Erlang 1998 Elixir 2012 Clojure

    2007 Occam 1983 Oberon 1986 CLOUDS Aws Amazon 2006 Google Cloud 2010 Windows Azure 2010 Web 2009
  3. “Tentativa de combinar a facilidade de programação de uma linguagem

    interpretada dinâmica com a eficiência e segurança de uma linguagem compilada estaticamente.” Em 2007 nasceu a ideia @jeffotoni [origens] (https://golang.org/doc/faq#history)
  4. Lançamento Go @jeffotoni Não possui generics (em breve) Não possui

    OO 2009 - Web Não possui herança Não possui exceção (try-catch-finally) concorrete compilada GC Goroutines e não Threads
  5. Por que da ausência ? @jeffotoni construções lentas depêndencias não

    controladas custo de atualização versão enviesada duplicação de esforços Ineficiência de execução 2009 - web
  6. Telegram https://t.me/go_br https://t.me/go_bh https://t.me/golangcwb Slack https://gophers.slack.com (members >~45k) GopherCon Brasil

    2020 https://2020.gopherconbr.org Wiki Conferencias https://github.com/golang/go/wiki/Conferences Meetup https://www.meetup.com/go-belo-horizonte https://www.meetup.com/pt-BR/golangbr https://www.meetup.com/pt-BR/Women-Who-Go-Sampa https://www.meetup.com/pt-BR/Golang-Campinas/ https://www.meetup.com/pt-BR/golang-poa/ https://www.meetup.com/pt-BR/GolangCWB/ Comunidade @jeffotoni
  7. @jeffotoni Utilizado em: API / RPC services (returning non-HTML) A

    runnable / Interactive program (CLI) Libraries or framewo rks Web services (returning HTML) Automation / Scripts (e.g., deployment, Configuration management) Agents and daemons (e.g., monitoring ) Data Processing (e.g., Pipelines, aggregation ) Desktop / GUI applications Games Mobile apps Other 73% 71% 63% 62% 30% 48% 46% 47% 38% 42% 45% 40% 32% 37% 5% 8% 4% 4% 2% 2% 2% 2% 2018 2019
  8. @jeffotoni break default func interface select case defer go map

    struct chan else goto package switch const fallthrough if range type continue for import return var 25 keywords
  9. /auth POST /user GET /user/{uuid} GET /user/{uuid} DELETE /user/{uuid} PUT

    1M requests/s 50k requests/s 100k requests/s 60k requests/s 1k requests/s service 1 service 2 service 3 service 4 service 5 @jeffotoni