Go: инструментарий (продолжение)

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 16 фев 2022, 17:56

Книга:
Титмус, М. А.
Облачный GO : создание надежных сервисов в ненадежных окружениях
Изображение
ISBN:978-5-97060-965-1
Серия:O'Reilly
Издательство:ДМК ПРЕСС
Год издания:2022
Количество страниц:417
Тираж:200
Цена интернет-магазина:
3480₽
:-o Не слабо! :lol:

P.S. Знаю, непосредственно от издателей, что тираж книги заканчивается в продаже ... возможно будет допечатка.

P.P.S. Эта книга, не взирая на 2022г. издания :lol: , свободно скачивается здесь (это 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'

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 16 фев 2022, 18:08

Книга:
Цукалос М.
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'

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 22 фев 2022, 12:47

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, 世界") }
Установим этому файлу исходных кодов, как это делается для скриптов, флаги исполнимости:

Код: Выделить всё

$ chmod a+x tiny.go 
Выполняю:

Код: Выделить всё

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
Облом-с :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 22 фев 2022, 12:58

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 21 апр 2022, 13:18

Ещё одна книга:
Изображение
Lex Sheehan
Learning Functional Programming in Go
Copyright © 2017 Packt Publishing
973 стр.
Это, пожалуй, лучшее, что я видел по функциональному программированию на Go.

Читать-скачать свободно здесь (PDF).
(или EPUB здесь)

Я с большим трудом обыскался архивов кодов к книге. В конце концов находится здесь, на Github: PacktPublishing/Learning-Functional-Programming-in-Go

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 25 апр 2022, 15:17

Совсем недавно вышла новая версия 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
(Обратите внимание на даты документов!)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 25 апр 2022, 21:01

Olej писал(а):
25 апр 2022, 15:17
Совсем недавно вышла новая версия GoLang.
А вот очень неплохое перечисление существенных новинок Go - Релиз Go 1.18:
Go 1.18 включает в себя реализацию дженериков (общих типов). Это включает в себя серьезные, но полностью совместимые с предыдущими версиями, изменения языка.
Ниже приведен список наиболее заметных изменений.
* Синтаксис объявлений функций и типов теперь принимает параметры типа.
* Параметризованные функции и типы могут быть созданы, если за ними следует список аргументов типа в квадратных скобках.
* В набор операторов и знаков препинания добавлен новый токен ~.
* Синтаксис типов интерфейсов теперь позволяет встраивать произвольные типы (а не только имена типов интерфейсов), а также элементы типа union и ~T. Такие интерфейсы могут использоваться только как ограничения типа. Интерфейс теперь определяет набор типов, а также набор методов.
* Новый предварительно объявленный идентификатор any является псевдонимом для пустого интерфейса. Его можно использовать вместо interface{}.
* Новый предварительно объявленный идентификатор compare — это интерфейс, обозначающий набор всех типов, которые можно сравнивать с помощью == или !=. Его можно использовать только как (или встроенное) ограничение типа.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 27 апр 2022, 16:42

Olej писал(а):
25 апр 2022, 21:01
А вот очень неплохое перечисление существенных новинок Go - Релиз Go 1.18:
И сразу же перевод "в жилу" относительно главной новинки Go 1.18: Дженерики могут замедлить ваш код на Go
9 апреля в 23:52
Sivchenko

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 30 апр 2022, 15:04

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?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Go : инструментарий (продолжение)

Непрочитанное сообщение Olej » 30 апр 2022, 15:07

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

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей