Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevRomagna / Golang Intro

389 views

Published on

In queste slide potete trovare una raccolta di informazioni generiche e qualche link a risorse utili per iniziare o per approfondire la conoscenza di questo nuovo linguaggio di programmazione.

Published in: Internet
  • Login to see the comments

DevRomagna / Golang Intro

  1. 1. GOLANG INTRODUZIONE AL LINGUAGGIO
  2. 2. VOLANO WIKIPEDIA ▸“Go (often referred to as golang) is a programming language created at Google[12] in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson."
  3. 3. INTRODUCTION ABSTRACT ▸Late 2012 ▸ Solve ▸ Multicore processor ▸ Networking system ▸Massive computation cluster ▸ Web programming ▸ Built-in ▸ Concurrency ▸ Garbage collection ▸ Dependency management ▸ Testing
  4. 4. PAIN IN GOOGLE PAINS ▸Slow build ▸Uncontrolled dependencies ▸Different subset of language ▸Poor program understanding ▸Difficulty of writing automatic tools
  5. 5. PAIN IN GOOGLE PAINS ▸Development ▸Slow ▸Clumsy ▸Go ▸Faster ▸Improve ▸Scalability ▸Productivity ▸Designed for ▸Large scale software
  6. 6. GOLANG FEATURES ▸Compiled ▸Garbage collected ▸Statically typed ▸Open source ▸Google uses public repository ▸BSD Licence
  7. 7. GOLANG GOALS ▸Scalable ▸Familiar ▸Modern
  8. 8. GOLANG DEPENDENCIES ▸Compile time ▸40x faster than C ▸Unused #include/import ▸Warning (C) - Error (Go)
  9. 9. GOLANG PACKAGES ▸Install ▸Go get github.com/foo/bar ▸Usare ▸import “foo/bar” ▸import alias “vendor/package”
  10. 10. GOLANG PACKAGES
  11. 11. GOLANG SYNTAX ▸Few keywords ▸Declaration ▸Explicit ▸Idiomatic := ▸Function ▸Name ▸Receiver ▸No defaults
  12. 12. GOLANG NAMING ▸Public ▸private ▸Scope ▸Universe ▸God? ▸Package ▸File ▸Function ▸Block
  13. 13. GOLANG SEMANTIC ▸ C-Like ▸ Changes ▸ No pointer arithmetic ▸With some “accrocchio” se po’ fa! ▸ No implicit numeric conversion ▸ No type aliases ▸Some kind of alias were introduced in 1.8 ▸ More ▸ Concurrency ▸ Garbage collection ▸ Interface type ▸ Reflection
  14. 14. GOLANG CONCURRENCY ▸CSP ▸Communicating ▸Sequential ▸Process ▸A model of concurrency in which values are passed between independent activities
  15. 15. GOLANG BANNING … ▸Ternary operator ▸While ▸Implicit conversion ▸Inheritance
  16. 16. GOLANG COMPOSITION NOT INHERITANCE ▸Allow methods in any type ▸No subclassing ▸Interfaces ▸Implicit
  17. 17. GOLANG TOOLS ▸Go build ▸Go test ▸Go fmt -w filename
  18. 18. GOLANG RESOURCES … ?
  19. 19. GOLANG LINKS ▸https://www.cheatography.com/explore/search/?q=golang ▸https://github.com/sensorario/awesome-go ▸https://github.com/sensorario/go-design-patterns ▸https://gobyexample.com/ ▸https://tour.golang.org/welcome/1 ▸https://talks.golang.org/2012/splash.article ▸https://golang.org/ ▸https://gophers.slack.com (#italy)
  20. 20. GOLANG FRAMEWORKS … ?
  21. 21. GOLANG FRAMEWORKS
  22. 22. GOLANG CODE … ?
  23. 23. GOLANG TESTING Fizz buzz is a group word game for children to teach them about division.[1] Players take turns to count incrementally, replacing any number divisible by three with the word "fizz", and any number divisible by five with the word "buzz".
  24. 24. GOLANG
  25. 25. GOLANG

×