Jun. 29th, 2016




развернуть

Сайты



https://golang.org/
https://golang.org/dl/
https://gobyexample.com/
https://4gophers.ru/
https://www.golangprograms.com/

https://vk.com/golang
https://t.me/goproglib
https://t.me/gophernews
https://t.me/gogolang
https://t.me/godevjob

https://groups.google.com/forum/#!forum/golang-nuts
https://groups.google.com/forum/#!forum/golang-ru

Статьи



https://proglib.io/p/language-go/
https://habr.com/ru/hub/go/
С чего начать новичку в Go
https://svv-home.ru/?go=golang
Более 200 избранных ссылок на материалы о языке Go
Материалы по Go (golang)
Программирование на GO - материалы для изучения языка
Изучаем Go: подборка видеозаписей докладов
------------------------------------------------------------------------
Golang: основы для начинающих
Постулаты Go
Golang и ООП
Не без паники в Go
------------------------------------------------------------------------
график популярности языка
https://www.tiobe.com/tiobe-index/
http://roscidus.com/blog/blog/2013/06/09/choosing-a-python-replacement-for-0install/
Кому и зачем все-таки нужен Go?
5 причин, почему мы перешли с Python на Go (перевод)
Чем хорош язык Go и зачем его изучать? Все плюшки Golang
Golang в крупных проектах
Почему бизнес охотится на разработчиков Golang

За что я не люблю Go
Почему Go это плохо продуманный язык программирования
Почему Discord переходит с Go на Rust
Какой язык — D, Go или Rust имеет лучшие перспективы заменить C и почему?
------------------------------------------------------------------------
Топ-10 самых распространенных ошибок, которые мне встречались в Go-проектах
Шпаргалка по структурам данных в Go
Простые методы оптимизации программ Go
------------------------------------------------------------------------
Серия статей (довольно старая) на IBM Developer Works:
Краткий обзор и основы программирования
Разработка Web-приложений
Работа с базами данных
Создание GUI-приложений
------------------------------------------------------------------------
https://github.com/go-park-mail-ru/lecture1/blob/master/readme.md
50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков
Разбираемся в Go: пакет io
Постулаты Go
Лучшие практики Go, шесть лет в деле
Организация кода в Go
Зачем в Go амперсанд и звёздочка (& и *)?
Как не наступать на грабли в Go
Краш-курс по интерфейсам в Go
Горутины: всё, что вы хотели знать, но боялись спросить
Как устроены каналы в Go
------------------------------------------------------------------------
Всё, что вы хотели знать про GOPATH и GOROOT
Всё, что нужно знать о GOPATH
Введение в систему модулей Go
Практичный гайд по переменным окружения в Go
------------------------------------------------------------------------
Обработка ошибок в Go 2
Написание web-приложений на языке Go
Практическое использование в Go: организация доступа к базам данных
------------------------------------------------------------------------
Готовим deb из наших бинарников
Как собрать исполняемые файлы Go для нескольких платформ в Ubuntu 16.04
------------------------------------------------------------------------
Go. Подборка инструментов для построения Web API
Настройка Visual Studio Code для Go
Кросс-компиляция в Go
Кросс-компиляция приложений Go
https://github.com/golang/go/wiki/WindowsCrossCompiling
How To Build Go Executables for Multiple Platforms on Ubuntu 16.04
Транскомпилируемые языки: проекты конвертации код-в-код
------------------------------------------------------------------------
Создание desktop приложения с помощью Golang и Fyne

Книги



http://golang-book.ru
Введение в программирование на Go 2016 pdf
https://vk.com/main.php?subdir=proglib&subsubdir=go
https://codernet.ru/books/go/
Родом из Google: книги для знакомства с Go
30 лучших книг для освоения языка программирования Go
Книги, документация, статьи и курсы по Go
https://github.com/dariubs/GoBooks
Маленькая книга о Go
https://github.com/sefus/the-little-go-book/blob/master/ru/go.md
30 книг для освоения языка программирования Go
Программирование на Go Разработка приложений XXI века Марк Саммерфильд 2013
Язык программирования Go Алан А. А. Донован, Брайан У. Керниган 2016
Язык программирования Go Алан А. А. Донован, Брайан У. Керниган 2016

код из книги Язык программирования Go
go get gopl.io/ch1/helloworld
ls $GOPATH/bin
$GOPATH/bin/helloworld

git clone https://github.com/adonovan/gopl.io.git $HOME/dev/go/gobook
cd $HOME/dev/go/gobook
git remote -v update
git pull

https://git-scm.com/book/ru/v2
https://tproger.ru/translations/git-quick-start/
Эффективное использование Github


Курсы



курс Разработка веб-сервисов на Go - основы языка
курс Разработка веб-сервисов на Golang, часть 2

Самоучители



http://golang-book.ru/
Go в примерах
Golang: основы для начинающих
REST API приложение на Go: пошаговый туториал
тур по языку программирования Go.
------------------------------------------------------------------------
Краткий пересказ Effective Go на русском языке
------------------------------------------------------------------------
Go конспект
https://drive.google.com/file/d/0B__cqmYoRw_6aHZ3QkZjMDB5SzA/view
------------------------------------------------------------------------
https://github.com/astaxie/build-web-application-with-golang/blob/master/ru/preface.md
Руководство по языку Go
Руководство по веб-программированию языку Go
Обзор синтаксиса и возможностей Go
http://espressocode.top/go-language/
Перевод - Эффективный Go
Перевод "Руководство сотрудничества"

Видео



Программирование на Go с нуля: 9 полезных видеоуроков
Технострим Mail.Ru Group Программирование на Go
https://www.youtube.com/playlist?list=PLrCZzMib1e9q-X5V9pTM6J0AemRWseM7I
------------------------------------------------------------------------
Neuro Lab! Algorithms Осваиваем Golang
https://www.youtube.com/playlist?list=PLHUicSITKZEmz2w3zo-aUpxCUZuqONE4c
------------------------------------------------------------------------
Роман Левищенко Погружение в Google Go
https://github.com/index0h/dive-into-golang
https://www.youtube.com/playlist?list=PLBOo6DBmP5V9CAXxxl6EZxZpMmT_4ZOca
------------------------------------------------------------------------
Sergey Gavruk Пишем веб-приложение на Go
https://www.youtube.com/playlist?list=PLGtcqyFrda9474GltUO-7S4KoJVcdLMp4
------------------------------------------------------------------------
Uproger Курс разработчика Golang.
https://www.youtube.com/playlist?list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66
------------------------------------------------------------------------

Посмотреть исходный код



https://github.com/golang/go

Программное обеспечение



https://golang.org/dl/
https://golang.org/pkg/
https://launchpad.net/~gophers/+archive/ubuntu/archive
https://launchpad.net/~longsleep/+archive/ubuntu/golang-backports
http://labix.org/gopkg.in
Пакет yaml можно установить, запустив:
go get gopkg.in/yaml.v1

Ищем пакеты:
https://godoc.org/
https://github.com/golang/go/wiki/Projects

https://www.gorillatoolkit.org/
https://github.com/gorilla/

https://github.com/go-mgo/mgo

https://github.com/gopherjs/gopherjs
https://github.com/goby-lang/goby
http://www.godevtool.com/
https://golang.org/cmd/cgo/
https://blog.golang.org/c-go-cgo

https://github.com/mitchellh/gox

https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins
https://github.com/golang/sublime-config
https://github.com/fatih/vim-go
https://github.com/nsf/gocode
https://atom.io/packages/go-plus
https://github.com/Microsoft/vscode-go
http://go-ide.com/
http://liteide.org/en/
https://github.com/visualfc/liteide
https://sourceforge.net/projects/liteide/files/

Консоль



https://play.golang.org/
https://ideone.com/
https://repl.it/languages/go
https://gopry.rice.sh/ (жручее, go-pry)

https://github.com/gopherdata/gophernotes
http://labix.org/hsandbox
https://github.com/niemeyer/hsandbox

https://github.com/haya14busa/goplay
https://github.com/mkouhei/gosh
https://github.com/d4l3k/go-pry
https://github.com/motemen/gore
https://github.com/cosmos72/gomacro
https://github.com/sbinet/igo
https://github.com/sbinet/go-eval
https://github.com/emicklei/rango

$ echo 'export GOPATH=$HOME/dev/go' >> $HOME/.bashrc
$ echo 'export PATH=${GOPATH}/bin:$PATH' >> $HOME/.bashrc
$ source $HOME/.bashrc


Разное (фреймворки тд.)



https://hub.docker.com/_/golang

https://awesome-go.com/
Кураторский список платформ Go, библиотек и программного обеспечения

Top 6 web frameworks for Go as of 2017
Juju — краткий обзор
Revel — высокопроизводительный веб-фреймворк на языке Go
Фреймворк Gin
https://golang.org/pkg/net/http/
https://beego.me/
https://github.com/astaxie/beego
https://gobuffalo.io/en
https://github.com/gobuffalo/buffalo
http://www.gorillatoolkit.org/
https://echo.labstack.com/
https://github.com/labstack/echo
https://revel.github.io/
https://github.com/revel/revel
https://github.com/alehano/gobootstrap
https://github.com/gin-gonic/gin
https://github.com/kataras/iris
https://github.com/ianberdin/soso-server
https://github.com/qor/qor
https://github.com/juju/juju
https://github.com/boltdb/bolt
https://gobyexample.com/
https://getgophish.com/
https://github.com/gophish/gophish
https://hub.docker.com/r/matteoggl/gophish/
https://github.com/valyala/fasthttp
https://github.com/yudai/gotty
https://github.com/plasma-umass/browsix

https://gogs.io/
https://hub.docker.com/u/gogs
https://gitea.io/en-us/
https://try.gitea.io/
https://hub.docker.com/u/gitea

https://github.com/golang/go/wiki/Mobile
https://github.com/golang/mobile

https://github.com/google/grumpy

Вопросы, ответы, решения



godoc -http=":6060"
открыть адрес
http://localhost:6060/pkg/

Поиск Golang примеров в более чем 1.000.000 open-source проектах

установка
Как установить GoLang (язык программирования Go) в Linux
$ cd ~/Downloads
$ wget -c https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz
$ shasum -a 256 go1.7.3.linux-amd64.tar.gz
ead40e884ad4d6512bcf7b3c7420dd7fa4a96140 go1.7.3.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xvzf go1.7.3.linux-amd64.tar.gz
$ sudo mv /usr/local/go /usr/local/go1.7.3
$ sudo ln -s /usr/local/go1.7.3 /usr/local/go
$ mkdir -p ~/dev/go_projects/{bin,src,pkg}
$ cd ~/dev/go_projects
$ ls
$ export PATH=$PATH:/usr/local/go/bin
$ echo 'export GOPATH="$HOME/dev/go_projects"' >> ~/.profile
$ echo 'export GOBIN="$GOPATH/bin"' >> ~/.profile
$ source ~/.profile

если вы установили GoLang в домашний каталог, добавьте строки приведенные ниже в файл $HOME/.profile
$ echo 'export GOROOT=$HOME/go' >> ~/.profile
$ echo 'export PATH=$PATH:$GOROOT/bin' >> ~/.profile
$ source ~/.profile

Проверьте как прошла установка GoLang
$ go version
$ go env

https://golang.org/dl/

Установка Go и настройка локальной среды разработки в Ubuntu 18.04


GOPATH
Начиная с версии 1.8: вам не нужно устанавливать GOPATH или GOROOT. GOPATH по умолчанию находится в вашем каталоге user/home.

Если GOPATH не задан, предполагается, что он равен $ HOME/go в системах Unix и% USERPROFILE%\go в Windows. Если вы хотите использовать пользовательское местоположение в качестве своего рабочего пространства, вы можете установить переменную среды GOPATH.

GOPATH — такой же как и системный PATH, только для go. И точно также, как и в PATH мы указываем НЕСКОЛЬКО каталогов, в ОДНОМ GOPATH можно указать несколько точек входа к рабочим go-пространствам.

Готовим сборку Go-приложения в продакшн
# По умолчанию GOPATH определен как $HOME/go:
$ go env | grep GOPATH
GOPATH="/home/elena/go"

# Изменим значение переменной окружения GOPATH и посмотрим, что будет:
$ GOPATH=/Users/tmp/something
$ go env | grep GOPATH
GOPATH="/Users/tmp/something"

# Теперь попробуем задать переменную непосредственно в процессе вызова команды go env:
$ GOPATH=/pampam go env | grep GOPATH
GOPATH="/pampam"

А в рамках текущей сессии значение GOPATH по-прежнему не изменилось:
elena:~ $ go env | grep GOPATH
GOPATH="/Users/tmp/test"

# Уберем значение GOPATH вообще и посмотрим, что будет:
$ GOPATH=
$ go env | grep GOPATH
GOPATH="/Users/elena/go"
$ # Мы вернулись к значению по умолчанию :)



https://github.com/moovweb/gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

gvm listall

удалить gvm
gvm implode

https://wiki.archlinux.org/index.php/Go_(Русский)

Кросс-компиляция
$GOOS и $GOARCH

darwin     386
darwin     amd64
darwin     arm
darwin     arm64
dragonfly  amd64
freebsd    386
freebsd    amd64
freebsd    arm
linux      386
linux      amd64
linux      arm
linux      arm64
linux      ppc64
linux      ppc64le
linux      mips64
linux      mips64le
linux      s390x
netbsd     386
netbsd     amd64
netbsd     arm
openbsd    386
openbsd    amd64
openbsd    arm
plan9      386
plan9      amd64
plan9      arm
solaris    amd64
windows    386
windows    amd64

пример
GOOS=windows GOARCH=386 go build -o hello.exe

Компилятор go по умолчанию собирает пакет с дополнительной информацией которая влияет только на отладку и анализ полученного файла.
Чтобы этого избежать можно использовать ключ -ldflags с флагами отвечающими за отключения отладочной информации (-w) и сгенерированной таблицей символов (-s):

$ go build -ldflags '-w -s' test.go

ошибка Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
Кросс-компиляция в Go
Установка Go из исходного кода
cd $(go env GOROOT)/src # например /usr/local/go/
sudo su
export GOROOT_BOOTSTRAP=/usr/local/go/
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./make.bash --no-clean

скомпилируем локально
cd $HOME/dev/go/gobook/ch1/helloworld/
GOOS=windows GOARCH=386 go build -o hello.exe
GOOS=windows GOARCH=amd64 go build -o hello64.exe

скомпилируем из гитхаба
cd ../../../
env GOOS=windows GOARCH=amd64 go build gopl.io/ch1/helloworld
ls

Как собрать исполняемые файлы Go для нескольких платформ в Ubuntu 16.04

https://github.com/golang/go/wiki/WindowsCrossCompiling
cd $GOROOT/src
sudo -E GOOS=windows GOARCH=386 PATH=$PATH ./make.bash


Утилиты Go
http://www.admpub.com:8080/build-web-application-with-golang/ru/01.3.md
go build
Эта утилита компилирует тесты. По необходимости она также скомпилирует зависимости.

go clean
Эта команда удаляет все файлы, созданные компилятором, включая следующие:
_obj/ // старый каталог object, созданный Makefiles
_test/ // старый каталог test, созданный Makefiles
_testmain.go // старый каталог gotest, созданный Makefiles
test.out // старый каталог test, созданный Makefiles
build.out // старый каталог test, созданный Makefiles
*.[568ao] // объектные файлы, созданные Makefiles

DIR(.exe) // создано go build
DIR.test(.exe) // создано go test -c
MAINFILE(.exe) // создано go build MAINFILE.go

go fmt и gofmt
выполните команду go fmt <Имя файла>.go в терминале
go fmt - это алиас(сокращение) для gofmt -l -w для пакетов, указанных в пути команды import.

go install
Эта команда компилирует все пакеты, создает соответствующие файлы и перемещает их в $GOPATH/pkg или $GOPATH/bin.

go test
Эта команда загружает все файлы, чьи имена включают в себя *_test.go и создает исполняемые файлы тестов, а затем печатает на экране информацию

go get
Эта команда служит для установки удаленных пакетов
go get github.com/sbinet/igo

godoc
godoc net/http // ознакомиться с документацией по пакету http
Если Вам нужно больше деталей об отдельных функциях, выполните godoc fmt Printf и godoc -src fmt Printf, чтобы увидеть исходный код функции

go fix // делает апгрейд кода, написанного в версии, старее, чем go1 до новой версии (после go1)
go version // выдает информацию об установленной версии Go
go env // выдает информацию о переменных окружения Go
go list // перечисляет все установленные пакеты
go run // компилирует во временные файлы и запускает приложение

https://www.reddit.com/r/golang/comments/s6t1sf/go_build_go_mod_vendor/
go mod init // создает go.mod файл. Его следует запускать только при первом создании проекта.
go mod tidy // разрешает зависимости и загружает все, что еще не было загружено.
go mod vendor // сохраняет ваши зависимости с вашим проектом. (для локальной сборки без интернета)
go build // компилирует проект go.


https://github.com/pkg/errors
https://2ch.hk/pr/catalog.html#go
простейший сайт
загрузка файла на сервер
file, _, err := c.Request.FormFile("file")

зависимости при сборке пакета go
go mod vendor - добавляет директорию vendor в директорию с исходниками, кроме того в ~/go/pkg/mod остальные зависимости


Разное



Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 15th, 2025 01:23 am
Powered by Dreamwidth Studios