Wpis z mikrobloga

@sokytsinolop:
- scope isolation w goroutines
- locks/mutexes
- panic vs. error values, kiedy i dlaczego
- pointers vs. values, kiedy i dlaczego
- wykorzystanie context package zarowno w goroutine jak i http

Ogólnie staram się dowiedzieć jak wygląda na codzień pisanie w Go przez kogoś doświadczonego, tak aby to co ja piszę (SDK) było dla niego użyteczne. Przenoszenie doświadczeń z innych języków to jednak trochę inna para kaloszy, bo Go
@shdw: 1 / 2: https://golang.org/ref/mem
2. locki i mutexy jak w każdym innym języku, skomplikowany temat, ale jest pełno informacji w necie
3. panic używasz jak błąd, który wystąpił nie pozwala na kontynuowanie pracy programu, sam musisz zdecydować kiedy taka sytuacja ma miejsce. Error używasz jeśli błąd chcesz przekazać dalej i obsłużyć / zignorować. Możesz tworzyć swoje "errory" wystarczy zaimplementować metodę Error w strukturze.
Później można wygodnie to obsłużyć w taki
@shdw:

- pointers vs. values, kiedy i dlaczego


- Wskaźniki używaj dla dużych struktur. Kopiowanie całej struktury żeby dokonać w niej zmian jest zbyt kosztowne. Value receivers operują na oryginalnej kopii elementu, a im więcej tych kopii utworzysz tym wiadomo, że będzie to mniej opłacalne dla wydajności.

- Slices, maps, channels,interface value, strings, function values są implementowae wewnętrznie ze wskaźnikami więc tutaj wskaźnik jest zazwyczaj zbędnym elementem.

- Jeżeli chcesz zmienić