djeanne / hello-go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hello, Go!

Способы изучать Go

  • Если нравится формат FAQ, читайте дальше и пропустите эту секцию.
  • Если любите решать задачки на leetcode, Codewars, CodinGame или HackerRank, есть возможность отправлять решения на Go. Окружающие вас смогут помочь вам заполнить пробелы в знании языка и, возможно, подсказать оптимальное решение.
  • Если любите смотреть уже готовые примеры решений и сравнивать их с решениями на знакомых вам языках программирования, загляните в rosettacode. Аналогичным ресурсом является Go by example.
  • Для rosettacode есть сайт с side-by-side сравнением решений на двух языках. Вот, например, страница для Go<->Python.
  • Для уверенных в себе есть learnxinyminutes, который, правда, может быть недоступен без прокси для некоторых провайдеров интернета. На всякий случай, у нас есть локальная копия, но GitHub отображает контент менее привлекательным образом.
  • Если есть опыт с другими языками программирования, можно попробовать go tour.
  • Если опыт работы с Go уже есть, попробуйте сформулировать что вам было бы интересно узнать вдобавок. С чем вы не работали? С чем у вас возникали проблемы?

И самое главное - общение, контакты и положительные эмоции.

Как установить Go?

Скачать нужный дистрибутив по ссылке: https://golang.org/dl/. Есть версии под Windows, Linux и macOS.

Качать последнюю стабильную версию (1.13.3).

Какой текстовой редактор использовать для Go?

  • Visual studio code + плагин для Go
  • Если знакомы продукты JetBrains Intellij, то Goland IDE
  • Если всё выше звучит непонятно, то используйте https://play.golang.org/

Как проверить, что Go установлен?

Набрать в терминале go version. Если не работает, то нужно добавить путь к папке с исполняемым файлом go в переменную окружения PATH.

Если не понятно, позовите ментора или пользуйтесь онлайн-редактором типа https://play.golang.org/.

Как запускать программы на Go?

Создайте файл hello.go следующего содержания:

package main

import "fmt"

func main() {
  fmt.Println("Hello, World!")
}

Для запуска нужно сначала скомпилировать программу, а затем её запустить:

$ go build -o hello.exe hello.go
$ ./hello.exe
Hello, World!

Но для таких простых случаев есть команда run, выполняющая эти два шага за вас:

$ go run hello.go
Hello, World!

Что такое GOPATH? Как узнать его значение?

GOPATH указывает на директорию, куда будут устанавливаться пакеты и в которой будут искаться импортируемые (подключаемые) пакеты.

Если переменной окружения GOPATH нет, Go всё равно будет иметь некоторое значение по умолчанию. Узнать текущее значение GOPATH проще всего командой:

go env GOPATH

На системах типа Linux директория по умолчанию ~/go.

Что такое пакет?

Пакет - это набор файлов, который образует логическую группу. Можно называть пакет словом "библиотека" (хотя библиотека может состоять из нескольких пакетов).

Где найти документацию по стандартной библиотеке Go?

Документация по пакетам: https://golang.org/pkg/.

Можно установить godoc и смотреть документацию оффлайн:

go get -v golang.org/x/tools/cmd/godoc

Теперь можно запустить godoc:

godoc -http=:8080

Если открыть в браузере адрес http://localhost:8080/pkg/, то вы увидите ту же документацию, что была доступна онлайн.

Сайт godoc.org можно использовать для поиска Go пакетов и/или их документации.

Какие ещё есть полезные ресурсы?

Большинство ссылок легко найти в гугле по запросу "golang learning resources".
Самое главное правило - всегда искать по слову golang, а не go.

Ниже наиболее стоящие результаты с описаниями:

Книги по Go

Многие книги имеют переводы на русский язык.

  • Get programming with Go - хорошая книга если Go один из первых ваших языков программирования.
  • The Go Programming Language - очень известная книга, довольно хороша, но подойдёт только тем, кто уже более-менее комфортно программирует на одном или более языках программирования.
  • Go in practice - книга, которая может дополнить книги, перечисленные выше.

Что такое "сообщество Go"?

GolangShow - русскоязычный подкаст о Go. Крутые ведущие, интересные гости.

Сообщество стоит понимать как "группа людей со схожими интересами и/или целями".

golang-ru Slack - русскоязычное Go сообщество. Там можно задавать вопросы, обсуждать Go, библиотеки под него и прочее.

Для вопросов лучше всего подходит канал #school (при формулировке вопроса можно опираться на How To Ask Questions The Smart Way).

Всем участникам следует соблюдать кодекс норм поведения.

Для Казани есть группа GolangKazan.

About


Languages

Language:Go 100.0%