Страница 4 из 8
Re: Go : инструментарий (продолжение)
Добавлено: 16 фев 2022, 17:56
Olej
Книга:
Титмус, М. А.
Облачный GO : создание надежных сервисов в ненадежных окружениях
ISBN:978-5-97060-965-1
Серия:O'Reilly
Издательство:ДМК ПРЕСС
Год издания:2022
Количество страниц:417
Тираж:200
Цена интернет-магазина:
3480₽
Не слабо!
P.S. Знаю, непосредственно от издателей, что тираж книги заканчивается в продаже ... возможно будет допечатка.
P.P.S. Эта книга, не взирая на 2022г. издания
, свободно скачивается
здесь (это torrent, трекер).
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/Go/BOOKs$ ls -l Титмус\ М.\ -\ Облачный\ Go\ -\ 2022.pdf
-rw-r--r-- 1 olej olej 11860274 фев 16 20:21 'Титмус М. - Облачный Go - 2022.pdf'
Re: Go : инструментарий (продолжение)
Добавлено: 16 фев 2022, 18:08
Olej
Книга:
Цукалос М.
Golang для профи: работа с сетью, многопоточность, структуры данных и машинное обучение с Go
Издательство Питер,
серия Для профессионалов
2020 г.,
мягкая обложка,
720 страниц,
ISBN 978-5-4461-1617-1
тираж 700 экз.
Golang для профи. Работа с сетью, многопоточность, структуры данных и машинное обучение с Go. Второе издание
3662 ₽
P.S. Эту книгу можно свободно загрузить
здесь (это torrent, трекер)... и ещё поиск даёт достаточно ссылок - книга представлена.
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/Go/BOOKs$ ls -l Цукалос\ М.\ -\ Golang\ для\ профи\ \(Для\ профессионалов\)\ -\ 2020.pdf
-rw-r--r-- 1 olej olej 7765601 фев 16 19:58 'Цукалос М. - Golang для профи (Для профессионалов) - 2020.pdf'
Re: Go : инструментарий (продолжение)
Добавлено: 22 фев 2022, 12:47
Olej
Olej писал(а): ↑26 янв 2022, 03:08
Можно его (в редакции 1.44) можно скачать здесь: конспект Go (обновление).
Сегодня, по случаю, проверил всё относящееся к внешнему проекту gorun в Go - запуск исходного кода Go
как скрипта в системе ... описанного в своё время (2013-2014) в конспекте.
Закачиваю проект:
Код: Выделить всё
olej@R420:~$ go get launchpad.net/gorun
olej@R420:~$ ls -l `go env GOPATH`/src/launchpad.net/gorun
итого 44
-rw-rw-r-- 1 olej olej 35147 янв 20 03:02 COPYING
-rw-rw-r-- 1 olej olej 7597 янв 20 03:02 gorun.go
Получил исходные коды проекта...
В
произвольном каталоге собираю проект:
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/BHV$ pwd
/home/olej/2022/own.BOOKs/BHV
olej@R420:~/2022/own.BOOKs/BHV$ go build `go env GOPATH`/src/launchpad.net/gorun
olej@R420:~/2022/own.BOOKs/BHV$ ls -l gorun
-rwxrwxr-x 1 olej olej 2420120 фев 22 10:27 gorun
olej@R420:~/2022/own.BOOKs/BHV$ file gorun
gorun: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=CFpfqnmOf2RG81MYJEHX/mSSa10XTD_juUZZlT-U-/H6KfB8Tid3IKYy0Xe6Sf/WfKZe7JI30S8qJMYzHat, not stripped
Собрался бинарный файл.
Теперь откопирую его в любой каталог, прописанный в переменной окружения $PATH, например, /usr/local/bin :
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/BHV$ sudo mv gorun /usr/local/bin
olej@R420:~/2022/own.BOOKs/BHV$ which gorun
/usr/local/bin/gorun
Готовлю минимальный тестовый пример tiny.go ... 1-й строкой прописываем вызов интерпретатора /usr/local/bin/gorun :
Код: Выделить всё
#!/usr/local/bin/gorun
package main
import "fmt"
func main() { fmt.Println("Hello, 世界") }
Установим этому файлу
исходных кодов, как это делается для скриптов, флаги исполнимости:
Выполняю:
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/BHV/examples/tools$ time ./tiny.go
go tool: no such tool "6g"
error: failed to run go: exit status 2
real 0m0,008s
user 0m0,007s
sys 0m0,003s
Облом-с
Re: Go : инструментарий (продолжение)
Добавлено: 22 фев 2022, 12:58
Olej
Olej писал(а): ↑22 фев 2022, 12:47
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/BHV/examples/tools$ time ./tiny.go
go tool: no such tool "6g"
error: failed to run go: exit status 2
real 0m0,008s
user 0m0,007s
sys 0m0,003s
Облом-с
По сообщению о "6g" - это дочерний tool из предыдущих версий (1.1, 1.5 ?), когда именование ещё шло заимствованием из OS Plan9.
Т.е. всё, что относится к gorun - уже не актуально.
Но есть такая возможность:
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/BHV/examples/tools$ go run tiny.go
Hello, 世界
Код: Выделить всё
olej@R420:~/2022/own.BOOKs/BHV/examples/tools$ time go run tiny.go
Hello, 世界
real 0m0,257s
user 0m0,298s
sys 0m0,114s
Re: Go : инструментарий (продолжение)
Добавлено: 21 апр 2022, 13:18
Olej
Ещё одна книга:
Lex Sheehan
Learning Functional Programming in Go
Copyright © 2017 Packt Publishing
973 стр.
Это, пожалуй, лучшее, что я видел по
функциональному программированию на Go.
Читать-скачать
свободно здесь (PDF).
(или EPUB
здесь)
Я
с большим трудом обыскался архивов кодов к книге. В конце концов находится здесь, на Github:
PacktPublishing/Learning-Functional-Programming-in-Go
Re: Go : инструментарий (продолжение)
Добавлено: 25 апр 2022, 15:17
Olej
Совсем недавно вышла новая версия GoLang.
Вот оригинальные страницы документации (из-за важности, показываю не ссылками форума, а явно выписывая URL)^
1. The Go Programming Language Specification:
https://go.dev/ref/spec
Version of March 10, 2022
2. Standard library:
https://pkg.go.dev/std
Version: go1.18.1
Published: Apr 12, 2022
(Обратите внимание на даты документов!)
Re: Go : инструментарий (продолжение)
Добавлено: 25 апр 2022, 21:01
Olej
Olej писал(а): ↑25 апр 2022, 15:17
Совсем недавно вышла новая версия GoLang.
А вот очень неплохое перечисление существенных новинок Go -
Релиз Go 1.18:
Go 1.18 включает в себя реализацию дженериков (общих типов). Это включает в себя серьезные, но полностью совместимые с предыдущими версиями, изменения языка.
Ниже приведен список наиболее заметных изменений.
* Синтаксис объявлений функций и типов теперь принимает параметры типа.
* Параметризованные функции и типы могут быть созданы, если за ними следует список аргументов типа в квадратных скобках.
* В набор операторов и знаков препинания добавлен новый токен ~.
* Синтаксис типов интерфейсов теперь позволяет встраивать произвольные типы (а не только имена типов интерфейсов), а также элементы типа union и ~T. Такие интерфейсы могут использоваться только как ограничения типа. Интерфейс теперь определяет набор типов, а также набор методов.
* Новый предварительно объявленный идентификатор any является псевдонимом для пустого интерфейса. Его можно использовать вместо interface{}.
* Новый предварительно объявленный идентификатор compare — это интерфейс, обозначающий набор всех типов, которые можно сравнивать с помощью == или !=. Его можно использовать только как (или встроенное) ограничение типа.
Re: Go : инструментарий (продолжение)
Добавлено: 27 апр 2022, 16:42
Olej
Olej писал(а): ↑25 апр 2022, 21:01
А вот очень неплохое перечисление существенных новинок Go - Релиз Go 1.18:
И сразу же
перевод "в жилу" относительно главной новинки Go 1.18:
Дженерики могут замедлить ваш код на Go
9 апреля в 23:52
Sivchenko
Re: Go : инструментарий (продолжение)
Добавлено: 30 апр 2022, 15:04
Olej
Olej писал(а): ↑25 апр 2022, 15:17
Совсем недавно вышла новая версия GoLang.
А вот это мне не совсем понятно?
Код: Выделить всё
olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 20.3
Release: 20.3
Codename: una
Код: Выделить всё
olej@R420:~$ aptitude search golang-1.
p golang-1.12-race-detector-runtime - Runtime support for Go's race detector
i A golang-1.13 - Go programming language compiler - metapackage
i A golang-1.13-doc - Go programming language - documentation
i A golang-1.13-go - Go programming language compiler, linker, compiled stdlib
i A golang-1.13-race-detector-runtime - Runtime support for Go's race detector
i A golang-1.13-src - Go programming language - source files
p golang-1.14 - Компилятор языка программирования Go — метапакет
p golang-1.14-doc - Go programming language - documentation
p golang-1.14-go - Go programming language compiler, linker, compiled stdlib
p golang-1.14-src - Go programming language - source files
p golang-1.16 - Go programming language compiler - metapackage
p golang-1.16-doc - Go programming language - documentation
p golang-1.16-go - Go programming language compiler, linker, compiled stdlib
p golang-1.16-src - Go programming language - source files
Почему при наличии в репозитории 1.16 устанавливается (по умолчанию) 1.13?
Re: Go : инструментарий (продолжение)
Добавлено: 30 апр 2022, 15:07
Olej
Olej писал(а): ↑30 апр 2022, 15:04
Почему при наличии в репозитории 1.16 устанавливается (по умолчанию) 1.13?
Код: Выделить всё
olej@R420:~$ sudo apt install golang-1.16
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
golang-1.16-doc golang-1.16-go golang-1.16-src
Следующие НОВЫЕ пакеты будут установлены:
golang-1.16 golang-1.16-doc golang-1.16-go golang-1.16-src
Обновлено 0 пакетов, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 65,7 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 377 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive focal-updates/universe amd64 golang-1.16-src amd64 1.16.2-0ubuntu1~20.04 [14,2 MB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive focal-updates/universe amd64 golang-1.16-go amd64 1.16.2-0ubuntu1~20.04 [51,4 MB]
Пол:3 http://ubuntu.volia.net/ubuntu-archive focal-updates/universe amd64 golang-1.16-doc all 1.16.2-0ubuntu1~20.04 [88,6 kB]
Пол:4 http://ubuntu.volia.net/ubuntu-archive focal-updates/universe amd64 golang-1.16 all 1.16.2-0ubuntu1~20.04 [11,3 kB]
Получено 65,7 MB за 24с (2.778 kB/s)
Выбор ранее не выбранного пакета golang-1.16-src.
(Чтение базы данных … на данный момент установлено 420124 файла и каталога.)
Подготовка к распаковке …/golang-1.16-src_1.16.2-0ubuntu1~20.04_amd64.deb …
Распаковывается golang-1.16-src (1.16.2-0ubuntu1~20.04) …
Выбор ранее не выбранного пакета golang-1.16-go.
Подготовка к распаковке …/golang-1.16-go_1.16.2-0ubuntu1~20.04_amd64.deb …
Распаковывается golang-1.16-go (1.16.2-0ubuntu1~20.04) …
Выбор ранее не выбранного пакета golang-1.16-doc.
Подготовка к распаковке …/golang-1.16-doc_1.16.2-0ubuntu1~20.04_all.deb …
Распаковывается golang-1.16-doc (1.16.2-0ubuntu1~20.04) …
Выбор ранее не выбранного пакета golang-1.16.
Подготовка к распаковке …/golang-1.16_1.16.2-0ubuntu1~20.04_all.deb …
Распаковывается golang-1.16 (1.16.2-0ubuntu1~20.04) …
Настраивается пакет golang-1.16-src (1.16.2-0ubuntu1~20.04) …
Настраивается пакет golang-1.16-go (1.16.2-0ubuntu1~20.04) …
Настраивается пакет golang-1.16-doc (1.16.2-0ubuntu1~20.04) …
Настраивается пакет golang-1.16 (1.16.2-0ubuntu1~20.04) …
Код: Выделить всё
olej@R420:~$ go version
go version go1.13.8 linux/amd64
Код: Выделить всё
olej@R420:~$ which go
/usr/bin/go
olej@R420:~$ ls -l `which go`
lrwxrwxrwx 1 root root 21 апр 16 2020 /usr/bin/go -> ../lib/go-1.13/bin/go
Код: Выделить всё
olej@R420:~$ ls -ld /lib/go*
lrwxrwxrwx 1 root root 7 апр 16 2020 /lib/go -> go-1.13
drwxr-xr-x 4 root root 4096 янв 19 23:35 /lib/go-1.13
drwxr-xr-x 4 root root 4096 апр 30 15:06 /lib/go-1.16
drwxr-xr-x 2 root root 4096 окт 25 2021 /lib/gold-ld