Go Buchempfehlung
-
Hallo,
statt den Amazon-Bewertungen zu vertrauen frag´ ich doch lieber mal die Profis.
Ich möchte mal in GO reinschnuppern, hat da jemand ne Buchempfehlung? Das Buch sollte keine spezielles Thema behandeln, sondern eine allgemeine Einführung sein.
-
Die ersten Google-Ergebnisse:
- Learning Go: An Idiomatic Approach to Real-World Go Programming. ...
- Go – Das Praxisbuch: Einstieg in Go und das Go-Ökosystem. ...
- Go Programming Language, The (Addison-Wesley Professional Computing Series) ...
- Go programmieren für Dummies. ...
- Microservices mit Go: Konzepte, Werkzeuge, Best Practices. ...
- 100 Go Mistakes: How to Avoid Them.
- uvwm.
Keywords: Go Programmiersprache lernen Empfehlung
Aber mir drängt sich die Frage auf... weshalb man in Go reinschnuppern will, wenn man nicht in Go reinschnuppern muss...
Korrigiert mich gerne, aber ich dachte immer, dass sei nur ausschließlich eine high-level Backend-Sprache? Also, wo stehst du und wo willst du hin?
Neulich hatte ich mich mal kurz mit Go befasst, weil sich in folgender "Funktion" (nicht von mir...) ein Laufzeit-Fehler versteckte:
func (conn *Conn) JailStatus(jail string) (currentlyFailed int64, totalFailed int64, fileList []string, currentlyBanned int64, totalBanned int64, IPList []string, err error) { fail2banOutput, err := conn.fail2banRequest([]string{"status", jail}) if err != nil { return } action := fail2banOutput.([]interface{})[1].(ogórek.Tuple)[1] filter := fail2banOutput.([]interface{})[0].(ogórek.Tuple)[1] currentlyFailed = filter.([]interface{})[0].(ogórek.Tuple)[1].(int64) totalFailed = filter.([]interface{})[1].(ogórek.Tuple)[1].(int64) fileList = interfaceSliceToStringSlice(filter.([]interface{})[2].(ogórek.Tuple)[1].([]interface{})) currentlyBanned = action.([]interface{})[0].(ogórek.Tuple)[1].(int64) totalBanned = action.([]interface{})[1].(ogórek.Tuple)[1].(int64) if _, ok := action.([]interface{})[2].(ogórek.Tuple)[1].([]interface{})[0].(ogórek.Call); ok { IPList = callSliceToStringSlice(action.([]interface{})[2].(ogórek.Tuple)[1].([]interface{})) } else { IPList = interfaceSliceToStringSlice(action.([]interface{})[2].(ogórek.Tuple)[1].([]interface{})) } return }... nach einigen Tagen hatte ich aufgegeben, den Fehler zu suchen.